Worked a bit on prefabs of all things

This commit is contained in:
2024-09-10 18:26:14 -05:00
parent e5f3f69120
commit 0e5b85633c
23 changed files with 286 additions and 19 deletions

View File

@ -0,0 +1,7 @@
# Copyright (c) 2024 Dominic Masters
#
# This software is released under the MIT License.
# https://opensource.org/licenses/MIT
add_subdirectory(entity)
add_subdirectory(world)

View File

@ -0,0 +1,9 @@
# Copyright (c) 2024 Dominic Masters
#
# This software is released under the MIT License.
# https://opensource.org/licenses/MIT
target_sources(${DAWN_TARGET_NAME}
PRIVATE
Entity.cpp
)

View File

@ -0,0 +1,18 @@
// Copyright (c) 2024 Dominic Masters
//
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT
#include "Entity.hpp"
#include "assert/assert.hpp"
using namespace Dawn;
void Entity::onInit() {
auto world = this->world.lock();
assertNotNull(world, "World is no longer active.");
}
void Entity::onDispose() {
}

View File

@ -0,0 +1,21 @@
// Copyright (c) 2024 Dominic Masters
//
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT
#pragma once
#include "scene/SceneComponent.hpp"
typedef uint32_t entityid_t;
namespace Dawn {
class World;
class Entity final : public SceneComponent {
public:
std::weak_ptr<World> world;
void onInit() override;
void onDispose() override;
};
}

View File

@ -0,0 +1,9 @@
# Copyright (c) 2024 Dominic Masters
#
# This software is released under the MIT License.
# https://opensource.org/licenses/MIT
target_sources(${DAWN_TARGET_NAME}
PRIVATE
World.cpp
)

View File

@ -0,0 +1,14 @@
// Copyright (c) 2024 Dominic Masters
//
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT
#include "World.hpp"
using namespace Dawn;
void World::onInit() {
}
void World::onDispose() {
}

View File

@ -0,0 +1,18 @@
// Copyright (c) 2024 Dominic Masters
//
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT
#pragma once
#include "component/entity/Entity.hpp"
namespace Dawn {
class World : public SceneComponent {
private:
std::map<entityid_t, std::shared_ptr<Entity>> entities;
public:
void onInit() override;
void onDispose() override;
};
}