use of net.drewke.tdme.engine.Entity in project tdme by andreasdr.
the class LevelEditorView method objectRotationsApply.
/**
* Apply object rotations
* @param x
* @param y
* @param z
*/
public void objectRotationsApply(float x, float y, float z) {
if (selectedObjects.size() == 0)
return;
// handle single object
if (selectedObjects.size() == 1) {
Entity selectedObject = selectedObjects.get(0);
LevelEditorObject currentEntity = level.getObjectById(selectedObject.getId());
if (currentEntity == null)
return;
currentEntity.getTransformations().getRotations().get(level.getRotationOrder().getAxisXIndex()).setAngle(x);
currentEntity.getTransformations().getRotations().get(level.getRotationOrder().getAxisYIndex()).setAngle(y);
currentEntity.getTransformations().getRotations().get(level.getRotationOrder().getAxisZIndex()).setAngle(z);
currentEntity.getTransformations().update();
selectedObject.fromTransformations(currentEntity.getTransformations());
} else if (selectedObjects.size() > 1) {
// multiple objects
for (Entity selectedObject : selectedObjects) {
LevelEditorObject currentEntity = level.getObjectById(selectedObject.getId());
if (currentEntity == null)
continue;
currentEntity.getTransformations().getRotations().get(level.getRotationOrder().getAxisXIndex()).setAngle(currentEntity.getTransformations().getRotations().get(level.getRotationOrder().getAxisXIndex()).getAngle() + x);
currentEntity.getTransformations().getRotations().get(level.getRotationOrder().getAxisYIndex()).setAngle(currentEntity.getTransformations().getRotations().get(level.getRotationOrder().getAxisYIndex()).getAngle() + y);
currentEntity.getTransformations().getRotations().get(level.getRotationOrder().getAxisZIndex()).setAngle(currentEntity.getTransformations().getRotations().get(level.getRotationOrder().getAxisZIndex()).getAngle() + z);
currentEntity.getTransformations().update();
selectedObject.fromTransformations(currentEntity.getTransformations());
}
// reset controller object properties
levelEditorScreenController.setObject(new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f), 0f, 0f, 0f);
}
level.computeDimension();
updateGUIElements();
}
use of net.drewke.tdme.engine.Entity in project tdme by andreasdr.
the class LevelEditorView method objectPropertySave.
/**
* Save a model property
* @param old name
* @param name
* @param value
* @return success
*/
public boolean objectPropertySave(String oldName, String name, String value) {
if (selectedObjects.size() != 1)
return false;
// handle single object
Entity selectedObject = selectedObjects.get(0);
LevelEditorObject levelEditorObject = level.getObjectById(selectedObject.getId());
if (levelEditorObject == null)
return false;
// try to update property
if (levelEditorObject.updateProperty(oldName, name, value) == true) {
// reload model properties
levelEditorScreenController.setObjectProperties(null, levelEditorObject.getProperties(), name);
//
return true;
}
//
return false;
}
use of net.drewke.tdme.engine.Entity in project tdme by andreasdr.
the class Level method addLevel.
/**
* Add level to engine
* @param engine
* @param level
* @param add empties
* @param add trigger
* @param dynamic shadowing
* @param pickable
* @param translation
*/
public static void addLevel(Engine engine, LevelEditorLevel level, boolean addEmpties, boolean addTrigger, boolean dynamicShadowing, boolean pickable, Vector3 translation) {
// load level objects
for (int i = 0; i < level.getObjectCount(); i++) {
LevelEditorObject object = level.getObjectAt(i);
Properties properties = object.getTotalProperties();
// skip on empties or trigger
if (addEmpties == false && object.getEntity().getType() == EntityType.EMPTY)
continue;
if (addTrigger == false && object.getEntity().getType() == EntityType.TRIGGER)
continue;
// add to 3d engine
Entity entity = null;
if (object.getEntity().getModel() != null) {
entity = new Object3D(object.getId(), object.getEntity().getModel());
} else if (object.getEntity().getType() == EntityType.PARTICLESYSTEM) {
entity = createParticleSystem(object.getEntity().getParticleSystem(), object.getId(), false);
}
// skip if we have no entity
if (entity == null)
continue;
// apply transformations
entity.fromTransformations(object.getTransformations());
// apply translation
if (translation != null) {
entity.getTranslation().add(translation);
}
// pickable
entity.setPickable(pickable);
// dynamic shadowing
PropertyModelClass shadowingProperty = properties.getProperty("shadowing");
boolean omitShadowing = shadowingProperty != null && shadowingProperty.getValue().equalsIgnoreCase("false");
entity.setDynamicShadowingEnabled(omitShadowing == true ? false : dynamicShadowing);
// do not scale empties
if (object.getEntity().getType() == EntityType.EMPTY) {
entity.getScale().set(MathTools.sign(entity.getScale().getX()), MathTools.sign(entity.getScale().getY()), MathTools.sign(entity.getScale().getZ()));
}
// update
entity.update();
// add
engine.addEntity(entity);
}
}
use of net.drewke.tdme.engine.Entity in project tdme by andreasdr.
the class Level method disableLevel.
/**
* Disable level in engine
* @param engine
* @param level
*/
public static void disableLevel(Engine engine, LevelEditorLevel level) {
// load level objects
for (int i = 0; i < level.getObjectCount(); i++) {
LevelEditorObject object = level.getObjectAt(i);
// get from 3d engine
Entity entity = engine.getEntity(object.getId());
// skip if entity not found
if (entity == null)
continue;
// disable
entity.setEnabled(false);
}
}
use of net.drewke.tdme.engine.Entity in project tdme by andreasdr.
the class Level method enableLevel.
/**
* Enable disabled level in engine
* @param engine
* @param level
* @param translation
*/
public static void enableLevel(Engine engine, LevelEditorLevel level, Vector3 translation) {
// load level objects
for (int i = 0; i < level.getObjectCount(); i++) {
LevelEditorObject object = level.getObjectAt(i);
// get from 3d engine
Entity entity = engine.getEntity(object.getId());
// skip if entity not found
if (entity == null)
continue;
// apply transformations
entity.fromTransformations(object.getTransformations());
// apply transformation
if (translation != null) {
entity.getTranslation().add(translation);
}
// do not scale empties
if (object.getEntity().getType() == EntityType.EMPTY) {
entity.getScale().set(MathTools.sign(entity.getScale().getX()), MathTools.sign(entity.getScale().getY()), MathTools.sign(entity.getScale().getZ()));
}
// update
entity.update();
// enable
entity.setEnabled(true);
}
}
Aggregations