diff --git a/Nuake/src/Scripting/NetModules/SceneNetAPI.cpp b/Nuake/src/Scripting/NetModules/SceneNetAPI.cpp index a4fc8535..ab3f0c6f 100644 --- a/Nuake/src/Scripting/NetModules/SceneNetAPI.cpp +++ b/Nuake/src/Scripting/NetModules/SceneNetAPI.cpp @@ -117,8 +117,6 @@ namespace Nuake { bool EntityHasComponent(int id, int componentType) { - uint32_t componentEnumValue = 3; - //Entity entity = Engine::GetCurrentScene()->GetEntityByID(id); Entity entity = { (entt::entity)(id), Engine::GetCurrentScene().get()}; if (!entity.IsValid()) @@ -154,6 +152,41 @@ namespace Nuake { } } + void EntityAddComponent(int id, int componentType) + { + Entity entity = { (entt::entity)(id), Engine::GetCurrentScene().get() }; + + if (!entity.IsValid()) + { + return; + } + + switch (static_cast(componentType)) + { + case PARENT: entity.AddComponent(); break; + case NAME: entity.AddComponent(); break; + case PREFAB: entity.AddComponent(); break; + case TRANSFORM: entity.AddComponent(); break; + case LIGHT: entity.AddComponent(); break; + case CAMERA: entity.AddComponent(); break; + case AUDIO_EMITTER: entity.AddComponent(); break; + case MODEL: entity.AddComponent(); break; + case SKINNED_MODEL: entity.AddComponent(); break; + case BONE: entity.AddComponent(); break; + case BOX_COLLIDER: entity.AddComponent(); break; + case SPHERE_COLLIDER: entity.AddComponent(); break; + case CAPSULE_COLLIDER: entity.AddComponent(); break; + case CYLINDER_COLLIDER: entity.AddComponent(); break; + case MESH_COLLIDER: entity.AddComponent(); break; + case CHARACTER_CONTROLLER: entity.AddComponent(); break; + case PARTICLE_EMITTER: entity.AddComponent(); break; + case QUAKE_MAP: entity.AddComponent(); break; + case BSP_BRUSH: entity.AddComponent(); break; + case SPRITE: entity.AddComponent(); break; + case NAVMESH: entity.AddComponent(); break; + } + } + bool EntityHasManagedInstance(int handle) { Entity entity = { (entt::entity)(handle), Engine::GetCurrentScene().get() }; @@ -324,14 +357,24 @@ namespace Nuake { float LightGetIntensity(int entityId) { - Logger::Log("Get light intensity with id: " + std::to_string(entityId)); + Entity entity = { (entt::entity)(entityId), Engine::GetCurrentScene().get() }; + if (entity.IsValid() && entity.HasComponent()) + { + auto& component = entity.GetComponent(); + return component.Strength; + } - return -10.0f; + return 0.0f; } void LightSetIntensity(int entityId, float intensity) { - Logger::Log("Set light intensity with id: " + std::to_string(intensity)); + Entity entity = { (entt::entity)(entityId), Engine::GetCurrentScene().get() }; + if (entity.IsValid() && entity.HasComponent()) + { + auto& component = entity.GetComponent(); + component.Strength = intensity; + } } void LightSetColor(int entityId, float r, float g, float b) @@ -541,6 +584,7 @@ namespace Nuake { { // Entity RegisterMethod("Entity.EntityHasComponentIcall", &EntityHasComponent); + RegisterMethod("Entity.EntityAddComponentIcall", &EntityAddComponent); RegisterMethod("Entity.EntityHasManagedInstanceIcall", &EntityHasManagedInstance); RegisterMethod("Entity.EntityGetEntityIcall", &EntityGetEntity); RegisterMethod("Entity.EntityGetNameIcall", &EntityGetName);