コード例 #1
0
void AnimationTreeEditor::_notification(int p_what) {
	if (p_what == NOTIFICATION_PROCESS) {
		ObjectID root = 0;
		if (tree && tree->get_tree_root().is_valid()) {
			root = tree->get_tree_root()->get_instance_id();
		}

		if (root != current_root) {
			edit_path(Vector<String>());
		}

		if (button_path.size() != edited_path.size()) {
			edit_path(edited_path);
		}
	}
}
コード例 #2
0
ファイル: input_center.cpp プロジェクト: Savsish/supertux
void
EditorInputCenter::mark_object() {
  delete_markers();

  auto dc1 = dynamic_cast<AmbientSound*>(dragged_object);
  auto dc2 = dynamic_cast<Climbable*>(dragged_object);
  auto dc3 = dynamic_cast<ScriptTrigger*>(dragged_object);
  auto dc4 = dynamic_cast<SecretAreaTrigger*>(dragged_object);
  auto dc5 = dynamic_cast<SequenceTrigger*>(dragged_object);
  auto dc6 = dynamic_cast<Wind*>(dragged_object);
  auto dc7 = dynamic_cast<InvisibleWall*>(dragged_object);

  if (dc1 || dc2 || dc3 || dc4 || dc5 || dc6 || dc7) {
    marked_object = dragged_object;
    dragged_object->edit_bbox();
    return;
  }

  auto coin = dynamic_cast<Coin*>(dragged_object);
  if (coin) {
    if (coin->get_path()) {
      edit_path(coin->get_path(), dragged_object);
    }
    return;
  }

  auto willo = dynamic_cast<WillOWisp*>(dragged_object);
  if (willo) {
    if (willo->get_path()) {
      edit_path(willo->get_path(), dragged_object);
    }
    return;
  }

  auto platform = dynamic_cast<Platform*>(dragged_object);
  if (platform) {
    edit_path(&platform->get_path(), dragged_object);
    return;
  }
}
コード例 #3
0
void AnimationTreeEditor::edit(AnimationTree *p_tree) {

	if (tree == p_tree)
		return;

	tree = p_tree;

	Vector<String> path;
	if (tree->has_meta("_tree_edit_path")) {
		path = tree->get_meta("_tree_edit_path");
		edit_path(path);
	} else {
		current_root = 0;
	}
}
コード例 #4
0
void AnimationTreeEditor::enter_editor(const String &p_path) {

	Vector<String> path = edited_path;
	path.push_back(p_path);
	edit_path(path);
}