Added copying
This commit is contained in:
parent
f43807a3a5
commit
7a45cd57e4
20
imgui.ini
20
imgui.ini
@ -21,7 +21,7 @@ DockId=0x00000018,0
|
||||
|
||||
[Window][Scene Tree]
|
||||
Pos=0,19
|
||||
Size=342,589
|
||||
Size=342,579
|
||||
Collapsed=0
|
||||
DockId=0x0000000F,0
|
||||
|
||||
@ -43,7 +43,7 @@ DockId=0x00000016,0
|
||||
|
||||
[Window][Console]
|
||||
Pos=344,680
|
||||
Size=1206,203
|
||||
Size=1206,273
|
||||
Collapsed=0
|
||||
DockId=0x00000013,0
|
||||
|
||||
@ -54,8 +54,8 @@ Collapsed=0
|
||||
DockId=0x00000017,1
|
||||
|
||||
[Window][Profiler]
|
||||
Pos=344,885
|
||||
Size=1206,292
|
||||
Pos=344,955
|
||||
Size=1206,222
|
||||
Collapsed=0
|
||||
DockId=0x00000014,0
|
||||
|
||||
@ -124,8 +124,8 @@ Collapsed=0
|
||||
DockId=0x0000000D,0
|
||||
|
||||
[Window][Resources]
|
||||
Pos=0,610
|
||||
Size=342,567
|
||||
Pos=0,600
|
||||
Size=342,577
|
||||
Collapsed=0
|
||||
DockId=0x00000010,0
|
||||
|
||||
@ -134,8 +134,8 @@ DockSpace ID=0x11111111 Window=0x1BBC0F80 Pos=0,19 Size=1920,1158 Sp
|
||||
DockNode ID=0x00000005 Parent=0x11111111 SizeRef=989,1158 Split=X
|
||||
DockNode ID=0x00000001 Parent=0x00000005 SizeRef=342,701 Split=Y Selected=0x12EF0F59
|
||||
DockNode ID=0x00000003 Parent=0x00000001 SizeRef=342,637 Split=Y Selected=0x12EF0F59
|
||||
DockNode ID=0x0000000F Parent=0x00000003 SizeRef=342,356 HiddenTabBar=1 Selected=0x12EF0F59
|
||||
DockNode ID=0x00000010 Parent=0x00000003 SizeRef=342,343 HiddenTabBar=1 Selected=0x30401527
|
||||
DockNode ID=0x0000000F Parent=0x00000003 SizeRef=342,579 HiddenTabBar=1 Selected=0x12EF0F59
|
||||
DockNode ID=0x00000010 Parent=0x00000003 SizeRef=342,577 HiddenTabBar=1 Selected=0x30401527
|
||||
DockNode ID=0x00000004 Parent=0x00000001 SizeRef=342,519 HiddenTabBar=1 Selected=0x36AF052B
|
||||
DockNode ID=0x00000002 Parent=0x00000005 SizeRef=1484,701 Split=Y Selected=0xC450F867
|
||||
DockNode ID=0x00000007 Parent=0x00000002 SizeRef=606,659 Split=X Selected=0xC450F867
|
||||
@ -144,8 +144,8 @@ DockSpace ID=0x11111111 Window=0x1BBC0F80 Pos=0,19 Size=1920,1158 Sp
|
||||
DockNode ID=0x00000008 Parent=0x00000002 SizeRef=606,497 Split=X Selected=0xEA83D666
|
||||
DockNode ID=0x00000015 Parent=0x00000008 SizeRef=1260,172 Split=X Selected=0xEA83D666
|
||||
DockNode ID=0x00000011 Parent=0x00000015 SizeRef=715,168 Split=Y Selected=0x9B5D3198
|
||||
DockNode ID=0x00000013 Parent=0x00000011 SizeRef=1449,203 HiddenTabBar=1 Selected=0xEA83D666
|
||||
DockNode ID=0x00000014 Parent=0x00000011 SizeRef=1449,292 HiddenTabBar=1 Selected=0x9B5D3198
|
||||
DockNode ID=0x00000013 Parent=0x00000011 SizeRef=1449,273 HiddenTabBar=1 Selected=0xEA83D666
|
||||
DockNode ID=0x00000014 Parent=0x00000011 SizeRef=1449,222 HiddenTabBar=1 Selected=0x9B5D3198
|
||||
DockNode ID=0x00000012 Parent=0x00000015 SizeRef=31,168 HiddenTabBar=1 Selected=0x56009A08
|
||||
DockNode ID=0x00000016 Parent=0x00000008 SizeRef=314,172 HiddenTabBar=1 Selected=0x3FC1A724
|
||||
DockNode ID=0x00000006 Parent=0x11111111 SizeRef=289,1158 Split=Y Selected=0x36DC96AB
|
||||
|
@ -1,3 +1,2 @@
|
||||
[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -Isrc/vendor/xxhash -Isrc/vendor/miniaudio -Isrc/vendor/imguizmo -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\Renderer.cpp -o src\build\Renderer.o
|
||||
[LINK] g++ src\build\Engine.o src\build\main.o src\build\Renderer.o src\build\Components\AnimationComponent.o src\build\Components\AudioPlayerComponent.o src\build\Components\CameraComponent.o src\build\Components\LightComponent.o src\build\Components\ParticleComponent.o src\build\Components\PhysicsComponent.o src\build\Components\ScriptComponent.o src\build\Components\SpriteComponent.o src\build\Components\TextComonent.o src\build\Components\TilemapComponent.o src\build\core\audio\AudioEngine.o src\build\core\utils\AssetManager.o src\build\core\utils\EngineConfig.o src\build\core\utils\ExceptionHandler.o src\build\core\utils\FileDialog.o src\build\core\utils\input.o src\build\core\utils\LoadingWindow.o src\build\core\utils\Logging.o src\build\core\utils\Profiler.o src\build\core\utils\Texture.o src\build\core\utils\utils.o src\build\editor\windows\AssetBrowser.o src\build\editor\windows\AudioInfo.o src\build\editor\windows\Inspector.o src\build\Entitys\Object.o src\build\utils\GameObjectsList.o src\build\utils\Shader.o src\build\utils\UID.o src\build\lapi.o src\build\lauxlib.o src\build\lbaselib.o src\build\lcode.o src\build\lcorolib.o src\build\lctype.o src\build\ldblib.o src\build\ldebug.o src\build\ldo.o src\build\ldump.o src\build\lfunc.o src\build\lgc.o src\build\linit.o src\build\liolib.o src\build\llex.o src\build\lmathlib.o src\build\lmem.o src\build\loadlib.o src\build\lobject.o src\build\lopcodes.o src\build\loslib.o src\build\lparser.o src\build\lstate.o src\build\lstring.o src\build\lstrlib.o src\build\ltable.o src\build\ltablib.o src\build\ltm.o src\build\lua.o src\build\luac.o src\build\lundump.o src\build\lutf8lib.o src\build\lvm.o src\build\lzio.o src\build\imgui.o src\build\imgui_demo.o src\build\imgui_draw.o src\build\imgui_impl_glfw.o src\build\imgui_impl_opengl3.o src\build\imgui_tables.o src\build\imgui_widgets.o src\build\aabb.o src\build\arena_allocator.o src\build\array.o src\build\bitset.o src\build\body.o src\build\broad_phase.o src\build\constraint_graph.o src\build\contact.o src\build\contact_solver.o src\build\core.o src\build\distance.o src\build\distance_joint.o src\build\dynamic_tree.o src\build\geometry.o src\build\hull.o src\build\id_pool.o src\build\island.o src\build\joint.o src\build\manifold.o src\build\math_functions.o src\build\motor_joint.o src\build\mouse_joint.o src\build\mover.o src\build\prismatic_joint.o src\build\revolute_joint.o src\build\sensor.o src\build\shape.o src\build\solver.o src\build\solver_set.o src\build\table.o src\build\timer.o src\build\types.o src\build\weld_joint.o src\build\wheel_joint.o src\build\world.o src\build\xxhash.o src\build\miniaudio.o src\build\ImGuizmo.o -o src\build\app.exe -LC:\msys64\mingw64\lib -lglfw3 -lglew32 -lopengl32 -lgdi32 -lyaml-cpp -lcomdlg32 -lssl -lcrypto -ldbghelp
|
||||
[RUN] Executed app.exe successfully.
|
||||
|
5667
src/assets/scenes/a_cool_isometric_world.cene
Normal file
5667
src/assets/scenes/a_cool_isometric_world.cene
Normal file
File diff suppressed because it is too large
Load Diff
@ -152,7 +152,7 @@ void AnimationComponent::Load(const YAML::Node &node)
|
||||
float duration = node["FrameDuration"].as<float>();
|
||||
int start = node["StartFrame"] ? node["StartFrame"].as<int>() : 0;
|
||||
int end = node["EndFrame"] ? node["EndFrame"].as<int>() : 0;
|
||||
|
||||
|
||||
if (node["renderType"] && node["renderType"].IsScalar())
|
||||
{
|
||||
std::string typeStr = node["renderType"].as<std::string>();
|
||||
|
@ -1345,6 +1345,7 @@ void Engine::DrawObjectNode(const std::shared_ptr<Object> &obj)
|
||||
{
|
||||
if (ImGui::MenuItem("Delete"))
|
||||
pendingDeletion.push_back(obj);
|
||||
|
||||
if (ImGui::MenuItem("Create Child"))
|
||||
{
|
||||
auto child = std::make_shared<Object>("NewObject");
|
||||
@ -1352,6 +1353,24 @@ void Engine::DrawObjectNode(const std::shared_ptr<Object> &obj)
|
||||
selected = child;
|
||||
ImGui::OpenPopup("RenameObject");
|
||||
}
|
||||
if (ImGui::MenuItem("Duplicate"))
|
||||
{
|
||||
auto clone = std::make_shared<Object>(*obj);
|
||||
|
||||
if (auto parent = obj->GetParent())
|
||||
{
|
||||
parent->AddChild(clone);
|
||||
}
|
||||
else
|
||||
{
|
||||
objects.push_back(clone);
|
||||
}
|
||||
|
||||
|
||||
selected = clone;
|
||||
ImGui::OpenPopup("RenameObject");
|
||||
}
|
||||
|
||||
ImGui::EndPopup();
|
||||
}
|
||||
|
||||
|
@ -32,6 +32,40 @@ Object::Object(const std::string& name)
|
||||
parent = nullptr;
|
||||
}
|
||||
|
||||
Object::Object(const Object& other)
|
||||
: name(other.name + " (Copy)"),
|
||||
localPosition(other.localPosition),
|
||||
localRotationDeg(other.localRotationDeg),
|
||||
visable(other.visable),
|
||||
layer(other.layer)
|
||||
{
|
||||
this->uid = UID::Generate();
|
||||
|
||||
this->parent = parent;
|
||||
|
||||
this->children.clear();
|
||||
|
||||
for (const auto& comp : other.components)
|
||||
{
|
||||
if (comp)
|
||||
{
|
||||
auto clone = comp;
|
||||
clone->SetOwner(this);
|
||||
this->components.push_back(std::shared_ptr<Component>(clone));
|
||||
}
|
||||
}
|
||||
|
||||
for (const auto& child : other.children)
|
||||
{
|
||||
auto childCopy = std::make_shared<Object>(*child);
|
||||
childCopy->SetParent(this);
|
||||
this->children.push_back(childCopy);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Object::~Object()
|
||||
|
@ -23,8 +23,9 @@ class Object
|
||||
{
|
||||
public:
|
||||
Object(const std::string &name);
|
||||
~Object();
|
||||
Object(const Object& other);
|
||||
|
||||
~Object();
|
||||
const std::string &GetName() const;
|
||||
void SetName(const std::string &name);
|
||||
|
||||
|
@ -25,6 +25,10 @@ std::string GenerateUUID() {
|
||||
}
|
||||
|
||||
|
||||
UID UID::Generate() {
|
||||
return UID(nextID++, GenerateUUID());
|
||||
}
|
||||
|
||||
|
||||
UID::UID()
|
||||
: id(nextID++), uuid(GenerateUUID()) {}
|
||||
|
@ -9,4 +9,6 @@ struct UID {
|
||||
UID();
|
||||
UID(int id, const std::string& uuid);
|
||||
|
||||
static UID Generate();
|
||||
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user