Skip to content

Commit

Permalink
Rename instances of the word "theme" to "mesh_library" in GridMap and…
Browse files Browse the repository at this point in the history
… MeshLibrary editors
  • Loading branch information
YeldhamDev committed Aug 22, 2018
1 parent 334acc0 commit 5c6be1a
Show file tree
Hide file tree
Showing 6 changed files with 131 additions and 105 deletions.
44 changes: 22 additions & 22 deletions editor/plugins/mesh_library_editor_plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,11 @@
#include "scene/resources/packed_scene.h"
#include "spatial_editor_plugin.h"

void MeshLibraryEditor::edit(const Ref<MeshLibrary> &p_theme) {
void MeshLibraryEditor::edit(const Ref<MeshLibrary> &p_mesh_library) {

theme = p_theme;
if (theme.is_valid())
menu->get_popup()->set_item_disabled(menu->get_popup()->get_item_index(MENU_OPTION_UPDATE_FROM_SCENE), !theme->has_meta("_editor_source_scene"));
mesh_library = p_mesh_library;
if (mesh_library.is_valid())
menu->get_popup()->set_item_disabled(menu->get_popup()->get_item_index(MENU_OPTION_UPDATE_FROM_SCENE), !mesh_library->has_meta("_editor_source_scene"));
}

void MeshLibraryEditor::_menu_confirm() {
Expand All @@ -53,10 +53,10 @@ void MeshLibraryEditor::_menu_confirm() {

case MENU_OPTION_REMOVE_ITEM: {

theme->remove_item(to_erase);
mesh_library->remove_item(to_erase);
} break;
case MENU_OPTION_UPDATE_FROM_SCENE: {
String existing = theme->get_meta("_editor_source_scene");
String existing = mesh_library->get_meta("_editor_source_scene");
ERR_FAIL_COND(existing == "");
_import_scene_cbk(existing);

Expand Down Expand Up @@ -175,10 +175,10 @@ void MeshLibraryEditor::_import_scene_cbk(const String &p_str) {
ERR_FAIL_COND(ps.is_null());
Node *scene = ps->instance();

_import_scene(scene, theme, option == MENU_OPTION_UPDATE_FROM_SCENE);
_import_scene(scene, mesh_library, option == MENU_OPTION_UPDATE_FROM_SCENE);

memdelete(scene);
theme->set_meta("_editor_source_scene", p_str);
mesh_library->set_meta("_editor_source_scene", p_str);
menu->get_popup()->set_item_disabled(menu->get_popup()->get_item_index(MENU_OPTION_UPDATE_FROM_SCENE), false);
}

Expand All @@ -195,7 +195,7 @@ void MeshLibraryEditor::_menu_cbk(int p_option) {

case MENU_OPTION_ADD_ITEM: {

theme->create_item(theme->get_last_unused_item_id());
mesh_library->create_item(mesh_library->get_last_unused_item_id());
} break;
case MENU_OPTION_REMOVE_ITEM: {

Expand All @@ -213,7 +213,7 @@ void MeshLibraryEditor::_menu_cbk(int p_option) {
} break;
case MENU_OPTION_UPDATE_FROM_SCENE: {

cd->set_text("Update from existing scene?:\n" + String(theme->get_meta("_editor_source_scene")));
cd->set_text("Update from existing scene?:\n" + String(mesh_library->get_meta("_editor_source_scene")));
cd->popup_centered(Size2(500, 60));
} break;
}
Expand Down Expand Up @@ -265,10 +265,10 @@ MeshLibraryEditor::MeshLibraryEditor(EditorNode *p_editor) {
void MeshLibraryEditorPlugin::edit(Object *p_node) {

if (Object::cast_to<MeshLibrary>(p_node)) {
theme_editor->edit(Object::cast_to<MeshLibrary>(p_node));
theme_editor->show();
mesh_library_editor->edit(Object::cast_to<MeshLibrary>(p_node));
mesh_library_editor->show();
} else
theme_editor->hide();
mesh_library_editor->hide();
}

bool MeshLibraryEditorPlugin::handles(Object *p_node) const {
Expand All @@ -279,21 +279,21 @@ bool MeshLibraryEditorPlugin::handles(Object *p_node) const {
void MeshLibraryEditorPlugin::make_visible(bool p_visible) {

if (p_visible) {
theme_editor->show();
theme_editor->get_menu_button()->show();
mesh_library_editor->show();
mesh_library_editor->get_menu_button()->show();
} else {
theme_editor->hide();
theme_editor->get_menu_button()->hide();
mesh_library_editor->hide();
mesh_library_editor->get_menu_button()->hide();
}
}

MeshLibraryEditorPlugin::MeshLibraryEditorPlugin(EditorNode *p_node) {

EDITOR_DEF("editors/grid_map/preview_size", 64);
theme_editor = memnew(MeshLibraryEditor(p_node));
mesh_library_editor = memnew(MeshLibraryEditor(p_node));

p_node->get_viewport()->add_child(theme_editor);
theme_editor->set_anchors_and_margins_preset(Control::PRESET_TOP_WIDE);
theme_editor->set_end(Point2(0, 22));
theme_editor->hide();
p_node->get_viewport()->add_child(mesh_library_editor);
mesh_library_editor->set_anchors_and_margins_preset(Control::PRESET_TOP_WIDE);
mesh_library_editor->set_end(Point2(0, 22));
mesh_library_editor->hide();
}
6 changes: 3 additions & 3 deletions editor/plugins/mesh_library_editor_plugin.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class MeshLibraryEditor : public Control {

GDCLASS(MeshLibraryEditor, Control);

Ref<MeshLibrary> theme;
Ref<MeshLibrary> mesh_library;

EditorNode *editor;
MenuButton *menu;
Expand Down Expand Up @@ -67,7 +67,7 @@ class MeshLibraryEditor : public Control {
public:
MenuButton *get_menu_button() const { return menu; }

void edit(const Ref<MeshLibrary> &p_theme);
void edit(const Ref<MeshLibrary> &p_mesh_library);
static Error update_library_file(Node *p_base_scene, Ref<MeshLibrary> ml, bool p_merge = true);

MeshLibraryEditor(EditorNode *p_editor);
Expand All @@ -77,7 +77,7 @@ class MeshLibraryEditorPlugin : public EditorPlugin {

GDCLASS(MeshLibraryEditorPlugin, EditorPlugin);

MeshLibraryEditor *theme_editor;
MeshLibraryEditor *mesh_library_editor;
EditorNode *editor;

public:
Expand Down
72 changes: 47 additions & 25 deletions modules/gridmap/grid_map.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -208,21 +208,35 @@ bool GridMap::get_collision_layer_bit(int p_bit) const {
return get_collision_layer() & (1 << p_bit);
}

#ifndef DISABLE_DEPRECATED
void GridMap::set_theme(const Ref<MeshLibrary> &p_theme) {

if (!theme.is_null())
theme->unregister_owner(this);
theme = p_theme;
if (!theme.is_null())
theme->register_owner(this);
WARN_PRINTS("GridMap.theme/set_theme() is deprecated and will be removed in a future version. Use GridMap.mesh_library/set_mesh_library() instead.");
set_mesh_library(p_theme);
}

Ref<MeshLibrary> GridMap::get_theme() const {

WARN_PRINTS("GridMap.theme/get_theme() is deprecated and will be removed in a future version. Use GridMap.mesh_library/get_mesh_library() instead.");
return get_mesh_library();
}
#endif // DISABLE_DEPRECATED

void GridMap::set_mesh_library(const Ref<MeshLibrary> &p_mesh_library) {

if (!mesh_library.is_null())
mesh_library->unregister_owner(this);
mesh_library = p_mesh_library;
if (!mesh_library.is_null())
mesh_library->register_owner(this);

_recreate_octant_data();
_change_notify("theme");
_change_notify("mesh_library");
}

Ref<MeshLibrary> GridMap::get_theme() const {
Ref<MeshLibrary> GridMap::get_mesh_library() const {

return theme;
return mesh_library;
}

void GridMap::set_cell_size(const Vector3 &p_size) {
Expand Down Expand Up @@ -469,7 +483,7 @@ bool GridMap::_octant_update(const OctantKey &p_key) {
ERR_CONTINUE(!cell_map.has(E->get()));
const Cell &c = cell_map[E->get()];

if (!theme.is_valid() || !theme->has_item(c.item))
if (!mesh_library.is_valid() || !mesh_library->has_item(c.item))
continue;

//print_line("OCTANT, CELLS: "+itos(ii.cells.size()));
Expand All @@ -488,7 +502,7 @@ bool GridMap::_octant_update(const OctantKey &p_key) {
xform.set_origin(cellpos * cell_size + ofs);
xform.basis.scale(Vector3(cell_scale, cell_scale, cell_scale));
if (baked_meshes.size() == 0) {
if (theme->get_item_mesh(c.item).is_valid()) {
if (mesh_library->get_item_mesh(c.item).is_valid()) {
if (!multimesh_items.has(c.item)) {
multimesh_items[c.item] = List<Pair<Transform, IndexKey> >();
}
Expand All @@ -500,7 +514,7 @@ bool GridMap::_octant_update(const OctantKey &p_key) {
}
}

Vector<MeshLibrary::ShapeData> shapes = theme->get_item_shapes(c.item);
Vector<MeshLibrary::ShapeData> shapes = mesh_library->get_item_shapes(c.item);
// add the item's shape at given xform to octant's static_body
for (int i = 0; i < shapes.size(); i++) {
// add the item's shape
Expand All @@ -515,7 +529,7 @@ bool GridMap::_octant_update(const OctantKey &p_key) {
}

// add the item's navmesh at given xform to GridMap's Navigation ancestor
Ref<NavigationMesh> navmesh = theme->get_item_navmesh(c.item);
Ref<NavigationMesh> navmesh = mesh_library->get_item_navmesh(c.item);
if (navmesh.is_valid()) {
Octant::NavMesh nm;
nm.xform = xform;
Expand All @@ -537,7 +551,7 @@ bool GridMap::_octant_update(const OctantKey &p_key) {

RID mm = VS::get_singleton()->multimesh_create();
VS::get_singleton()->multimesh_allocate(mm, E->get().size(), VS::MULTIMESH_TRANSFORM_3D, VS::MULTIMESH_COLOR_NONE);
VS::get_singleton()->multimesh_set_mesh(mm, theme->get_item_mesh(E->key())->get_rid());
VS::get_singleton()->multimesh_set_mesh(mm, mesh_library->get_item_mesh(E->key())->get_rid());

int idx = 0;
for (List<Pair<Transform, IndexKey> >::Element *F = E->get().front(); F; F = F->next()) {
Expand Down Expand Up @@ -612,11 +626,11 @@ void GridMap::_octant_enter_world(const OctantKey &p_key) {
VS::get_singleton()->instance_set_transform(g.multimesh_instances[i].instance, get_global_transform());
}

if (navigation && theme.is_valid()) {
if (navigation && mesh_library.is_valid()) {
for (Map<IndexKey, Octant::NavMesh>::Element *F = g.navmesh_ids.front(); F; F = F->next()) {

if (cell_map.has(F->key()) && F->get().id < 0) {
Ref<NavigationMesh> nm = theme->get_item_navmesh(cell_map[F->key()].item);
Ref<NavigationMesh> nm = mesh_library->get_item_navmesh(cell_map[F->key()].item);
if (nm.is_valid()) {
F->get().id = navigation->navmesh_add(nm, F->get().xform, this);
}
Expand Down Expand Up @@ -846,8 +860,13 @@ void GridMap::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_collision_layer_bit", "bit", "value"), &GridMap::set_collision_layer_bit);
ClassDB::bind_method(D_METHOD("get_collision_layer_bit", "bit"), &GridMap::get_collision_layer_bit);

#ifndef DISABLE_DEPRECATED
ClassDB::bind_method(D_METHOD("set_theme", "theme"), &GridMap::set_theme);
ClassDB::bind_method(D_METHOD("get_theme"), &GridMap::get_theme);
#endif // DISABLE_DEPRECATED

ClassDB::bind_method(D_METHOD("set_mesh_library", "mesh_library"), &GridMap::set_mesh_library);
ClassDB::bind_method(D_METHOD("get_mesh_library"), &GridMap::get_mesh_library);

ClassDB::bind_method(D_METHOD("set_cell_size", "size"), &GridMap::set_cell_size);
ClassDB::bind_method(D_METHOD("get_cell_size"), &GridMap::get_cell_size);
Expand All @@ -865,7 +884,6 @@ void GridMap::_bind_methods() {
ClassDB::bind_method(D_METHOD("world_to_map", "pos"), &GridMap::world_to_map);
ClassDB::bind_method(D_METHOD("map_to_world", "x", "y", "z"), &GridMap::map_to_world);

//ClassDB::bind_method(D_METHOD("_recreate_octants"),&GridMap::_recreate_octants);
ClassDB::bind_method(D_METHOD("_update_octants_callback"), &GridMap::_update_octants_callback);
ClassDB::bind_method(D_METHOD("resource_changed", "resource"), &GridMap::resource_changed);

Expand All @@ -889,7 +907,11 @@ void GridMap::_bind_methods() {
ClassDB::bind_method(D_METHOD("clear_baked_meshes"), &GridMap::clear_baked_meshes);
ClassDB::bind_method(D_METHOD("make_baked_meshes", "gen_lightmap_uv", "lightmap_uv_texel_size"), &GridMap::make_baked_meshes, DEFVAL(false), DEFVAL(0.1));

ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "theme", PROPERTY_HINT_RESOURCE_TYPE, "MeshLibrary"), "set_theme", "get_theme");
#ifndef DISABLE_DEPRECATED
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "theme", PROPERTY_HINT_RESOURCE_TYPE, "MeshLibrary", PROPERTY_USAGE_NOEDITOR), "set_theme", "get_theme");
#endif // DISABLE_DEPRECATED

ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "mesh_library", PROPERTY_HINT_RESOURCE_TYPE, "MeshLibrary"), "set_mesh_library", "get_mesh_library");
ADD_GROUP("Cell", "cell_");
ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "cell_size"), "set_cell_size", "get_cell_size");
ADD_PROPERTY(PropertyInfo(Variant::INT, "cell_octant_size", PROPERTY_HINT_RANGE, "1,1024,1"), "set_octant_size", "get_octant_size");
Expand Down Expand Up @@ -952,7 +974,7 @@ Array GridMap::get_used_cells() const {

Array GridMap::get_meshes() {

if (theme.is_null())
if (mesh_library.is_null())
return Array();

Vector3 ofs = _get_offset();
Expand All @@ -961,9 +983,9 @@ Array GridMap::get_meshes() {
for (Map<IndexKey, Cell>::Element *E = cell_map.front(); E; E = E->next()) {

int id = E->get().item;
if (!theme->has_item(id))
if (!mesh_library->has_item(id))
continue;
Ref<Mesh> mesh = theme->get_item_mesh(id);
Ref<Mesh> mesh = mesh_library->get_item_mesh(id);
if (mesh.is_null())
continue;

Expand Down Expand Up @@ -1004,7 +1026,7 @@ void GridMap::clear_baked_meshes() {

void GridMap::make_baked_meshes(bool p_gen_lightmap_uv, float p_lightmap_uv_texel_size) {

if (!theme.is_valid())
if (!mesh_library.is_valid())
return;

//generate
Expand All @@ -1015,10 +1037,10 @@ void GridMap::make_baked_meshes(bool p_gen_lightmap_uv, float p_lightmap_uv_texe
IndexKey key = E->key();

int item = E->get().item;
if (!theme->has_item(item))
if (!mesh_library->has_item(item))
continue;

Ref<Mesh> mesh = theme->get_item_mesh(item);
Ref<Mesh> mesh = mesh_library->get_item_mesh(item);
if (!mesh.is_valid())
continue;

Expand Down Expand Up @@ -1137,8 +1159,8 @@ GridMap::GridMap() {

GridMap::~GridMap() {

if (!theme.is_null())
theme->unregister_owner(this);
if (!mesh_library.is_null())
mesh_library->unregister_owner(this);

clear();
}
7 changes: 6 additions & 1 deletion modules/gridmap/grid_map.h
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ class GridMap : public Spatial {

Vector3::Axis clip_axis;

Ref<MeshLibrary> theme;
Ref<MeshLibrary> mesh_library;

Map<OctantKey, Octant *> octant_map;
Map<IndexKey, Cell> cell_map;
Expand Down Expand Up @@ -227,8 +227,13 @@ class GridMap : public Spatial {
void set_collision_mask_bit(int p_bit, bool p_value);
bool get_collision_mask_bit(int p_bit) const;

#ifndef DISABLE_DEPRECATED
void set_theme(const Ref<MeshLibrary> &p_theme);
Ref<MeshLibrary> get_theme() const;
#endif // DISABLE_DEPRECATED

void set_mesh_library(const Ref<MeshLibrary> &p_mesh_library);
Ref<MeshLibrary> get_mesh_library() const;

void set_cell_size(const Vector3 &p_size);
Vector3 get_cell_size() const;
Expand Down
Loading

0 comments on commit 5c6be1a

Please sign in to comment.