Search in sources :

Example 11 with Entity

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();
}
Also used : Entity(net.drewke.tdme.engine.Entity) LevelEditorEntity(net.drewke.tdme.tools.shared.model.LevelEditorEntity) FacesEntity(net.drewke.tdme.engine.model.FacesEntity) Vector3(net.drewke.tdme.math.Vector3) LevelEditorObject(net.drewke.tdme.tools.shared.model.LevelEditorObject)

Example 12 with Entity

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;
}
Also used : Entity(net.drewke.tdme.engine.Entity) LevelEditorEntity(net.drewke.tdme.tools.shared.model.LevelEditorEntity) FacesEntity(net.drewke.tdme.engine.model.FacesEntity) LevelEditorObject(net.drewke.tdme.tools.shared.model.LevelEditorObject)

Example 13 with Entity

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);
    }
}
Also used : Entity(net.drewke.tdme.engine.Entity) PointsParticleSystemEntity(net.drewke.tdme.engine.PointsParticleSystemEntity) ObjectParticleSystemEntity(net.drewke.tdme.engine.ObjectParticleSystemEntity) PropertyModelClass(net.drewke.tdme.tools.shared.model.PropertyModelClass) LevelEditorObject(net.drewke.tdme.tools.shared.model.LevelEditorObject) Properties(net.drewke.tdme.tools.shared.model.Properties) Object3D(net.drewke.tdme.engine.Object3D)

Example 14 with 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);
    }
}
Also used : Entity(net.drewke.tdme.engine.Entity) PointsParticleSystemEntity(net.drewke.tdme.engine.PointsParticleSystemEntity) ObjectParticleSystemEntity(net.drewke.tdme.engine.ObjectParticleSystemEntity) LevelEditorObject(net.drewke.tdme.tools.shared.model.LevelEditorObject)

Example 15 with Entity

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);
    }
}
Also used : Entity(net.drewke.tdme.engine.Entity) PointsParticleSystemEntity(net.drewke.tdme.engine.PointsParticleSystemEntity) ObjectParticleSystemEntity(net.drewke.tdme.engine.ObjectParticleSystemEntity) LevelEditorObject(net.drewke.tdme.tools.shared.model.LevelEditorObject)

Aggregations

Entity (net.drewke.tdme.engine.Entity)32 LevelEditorEntity (net.drewke.tdme.tools.shared.model.LevelEditorEntity)25 FacesEntity (net.drewke.tdme.engine.model.FacesEntity)22 LevelEditorObject (net.drewke.tdme.tools.shared.model.LevelEditorObject)17 Object3D (net.drewke.tdme.engine.Object3D)8 Vector3 (net.drewke.tdme.math.Vector3)8 PropertyModelClass (net.drewke.tdme.tools.shared.model.PropertyModelClass)6 ArrayList (java.util.ArrayList)4 ObjectParticleSystemEntity (net.drewke.tdme.engine.ObjectParticleSystemEntity)4 PointsParticleSystemEntity (net.drewke.tdme.engine.PointsParticleSystemEntity)4 BoundingVolume (net.drewke.tdme.engine.primitives.BoundingVolume)3 Camera (net.drewke.tdme.engine.Camera)2 Rotation (net.drewke.tdme.engine.Rotation)2 Transformations (net.drewke.tdme.engine.Transformations)2 LevelEditorEntityBoundingVolume (net.drewke.tdme.tools.shared.model.LevelEditorEntityBoundingVolume)2 Light (net.drewke.tdme.engine.Light)1 Model (net.drewke.tdme.engine.model.Model)1 BoundingBox (net.drewke.tdme.engine.primitives.BoundingBox)1 ParticleSystemEntity (net.drewke.tdme.engine.subsystems.particlesystem.ParticleSystemEntity)1 GUIKeyboardEvent (net.drewke.tdme.gui.events.GUIKeyboardEvent)1