Little component that can be used for Particle Emitter that should be deleted in time
Temporary - will component keep entity pointer to delete it once time is out
Reducing Effect - decrease particles Velocity and Turbulence with time
Duration - time before entity pointer will be deleted
Case uses: explosions, blood hits, bleeding effect etc.
Component to move an entity to WayPoints:
Move Speed - how much velocity entity will have while moving
doDeleteAfterMovement - auto remove entity when it's reach final waypoint. Can be used for door, that goes into walls or floor
Input "DoMove" - make entity move to next point
Output "EndMove" - happens when entity stops after reaching final way point or if this way poiont has enabled doStayOnPoint
Component-controller for top down camera
Apply this component to Camera entity
WASD and mouse near window border moves camera horizontally
QE - to rotate camera
Mouse scroll to lower/raise
Put it in Components\Player folder
Component-controller for top down camera
Apply this component to Camera entity
WASD and mouse near window border moves camera horizontally
QE - to rotate camera
Mouse scroll to lower/raise
Simple component which can be used to naviage bots or objects
nextPoint - null if it's a final onem otherwise add another entity with this component to make a chain
doStayOnPoint - can be checked by object that uses WayPoints to find out if it should stay after reaching this point and wait a command before moving to next one
Put in Components\Logic folder
Component to move an entity to WayPoints:
Move Speed - how much velocity entity will have while moving
doDeleteAfterMovement - auto remove entity when it's reach final waypoint. Can be used for door, that goes into walls or floor
Input "DoMove" - make entity move to next point
Output "EndMove" - happens when entity stops after reaching final way point or if this way poiont has enabled doStayOnPoint
Simple component which can be used to naviage bots or objects
nextPoint - null if it's a final onem otherwise add another entity with this component to make a chain
doStayOnPoint - can be checked by object that uses WayPoints to find out if it should stay after reaching this point and wait a command before moving to next one
Particle effect for explosion or blood hit with another material (and higher turbulence like 10000 and end radius around 0.8).
ParticleEffect component removes (technically temporally keeps) a particle emitter before second particle burst happens.
Code example, included to archive:
#include "UltraEngine.h"
#include "ComponentSystem.h"
using namespace UltraEngine;
int main(int argc, const char* argv[]) {
RegisterComponents();
auto displays = GetDisplays();
auto window = CreateWindow("Ultra Engine", 0, 0, 1280, 720, displays[0], WINDOW_CENTER | WINDOW_TITLEBAR);
auto world = CreateWorld();
auto framebuffer = CreateFramebuffer(window);
auto camera = CreateCamera(world);
camera->SetClearColor(0.125);
camera->SetPosition(0, 5, -4);
camera->SetRotation(50, 0, 0);
auto light = CreateBoxLight(world);
light->SetRange(-10, 10);
light->SetArea(15, 15);
light->SetRotation(45, 35, 0);
light->SetColor(2);
auto ground = CreateBox(world, 10, 1, 10);
ground->SetPosition(0, -0.5, 0);
ground->SetColor(0, 1, 0);
while (window->Closed() == false and window->KeyDown(KEY_ESCAPE) == false) {
if (window->KeyHit(KEY_SPACE)) {
auto particle = LoadPrefab(world, "Prefabs//Explosion.pfb");
particle->SetPosition(0, 2, -2);
for (auto const& component : particle->components) {
component->Start();
}
}
world->Update();
world->Render(framebuffer);
}
return 0;
}
This small component makes it possible to play and stop animations for models. Various settings are available:
AutoPlay: Actually self-explanatory. If this option is activated, the animation is played directly at startup.
Loop: If activated, the animation is played in a loop.
Name: The name of the animation.
Speed: The speed of the animation.
Bleed (255): Animation bleeding.
In addition, there are two inputs for the Nodegraph: "PlayAnimation" and "StopAnimation". These functions can also be called via C++.