package Roguelike.Entity.ActivationAction; import Roguelike.Entity.Entity; import Roguelike.Entity.EnvironmentEntity; import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.XmlReader; /** * Created by Philip on 25-Jan-16. */ public class ActivationActionSetEnabled extends AbstractActivationAction { public String entityName; public String actionName; public boolean enabled; public ActivationActionSetEnabled() { } public ActivationActionSetEnabled( String entity, String action, boolean enabled ) { this.entityName = entity; this.actionName = action; this.enabled = enabled; } @Override public void evaluate( EnvironmentEntity owningEntity, Entity activatingEntity, float delta ) { if (entityName != null) { Array<EnvironmentEntity> all = new Array<EnvironmentEntity>( ); owningEntity.tile[0][0].level.getAllEnvironmentEntities( all ); for (EnvironmentEntity ee : all) { if (ee.name.equals( entityName )) { apply( ee ); } } } else { apply( owningEntity ); } } private void apply( EnvironmentEntity entity ) { Array<ActivationActionGroup> output = new Array<ActivationActionGroup>( ); entity.getAllActivationActions( output ); for (ActivationActionGroup group : output) { if (group.name.equals( actionName )) { group.enabled = enabled; } } } @Override public void parse( XmlReader.Element xml ) { entityName = xml.getAttribute( "Entity", null ); actionName = xml.getText(); enabled = xml.getBooleanAttribute( "Enabled", true ); } }