Package testing

Source Code of testing.ColourChangeComponent

package testing;

import java.io.IOException;
import java.util.Collection;

import org.newdawn.slick.Input;

import framework.collision.CollisionComponent.CollisionEvent;
import framework.component.Component;
import framework.component.ComponentSystem;
import framework.event.Event;
import framework.event.EventListener;
import framework.event.EventSystem;
import framework.io.CustomInputStream;
import framework.rendering.SpriteComponent;
import framework.userinput.MouseListenerSystem.MousePressedEvent;

public class ColourChangeComponent extends Component implements EventListener{

  public ColourChangeComponent() {
    super();
    EventSystem.getInstance().registerEventListener(this, "Collision", null);
    EventSystem.getInstance().registerEventListener(this, "CollisionStopped", null);
    EventSystem.getInstance().registerEventListener(this, "MousePressed", null);
    EventSystem.getInstance().registerEventListener(this, "MouseReleased", null);
  }

  public ColourChangeComponent(CustomInputStream in, int baseID,
      byte versionNum) throws IOException {
    super(in, baseID, versionNum);
    // TODO Auto-generated constructor stub
  }

  @Override
  public boolean allowSameTypedSiblings() {
    return false;
  }

  @Override
  protected byte getDataFormatVersion() {
    return 0;
  }

  @Override
  public void onEvent(Event e) {
    if(e != null){
      if(e.getType().equals("Collision")){
        CollisionEvent collis = (CollisionEvent) e;
        SpriteComponent sprite = (SpriteComponent) collis.getCollidedWith().getSiblingByType(SpriteComponent.class.getName());
        if(sprite != null){
          sprite.setImageFilename("res/img/red_dot.png", true);
        }
      }else if(e.getType().equals("CollisionStopped")){
        CollisionEvent collis = (CollisionEvent) e;
        SpriteComponent sprite = (SpriteComponent) collis.getCollidedWith().getSiblingByType(SpriteComponent.class.getName());
        if(sprite != null){
          sprite.setImageFilename("res/img/dot.png", true);
        }
      }else if(e.getType().equals("MousePressed")){
        Collection<Component> comps = ComponentSystem.getInstance().getAllComponents().getComponentsOfType(SpriteComponent.class.getName()).getAllComponents();
        String filename = ((MousePressedEvent) e).getButton() == Input.MOUSE_LEFT_BUTTON ? "res/img/square.png" : "res/img/line.png";
        for(Component c:comps){
          ((SpriteComponent) c).setImageFilename(filename);
        }
      }else if(e.getType().equals("MouseReleased")){
        Collection<Component> dots = ComponentSystem.getInstance().getComponentsOfType(Dot.class.getName());
        for(Component dot:dots){
          SpriteComponent s = (SpriteComponent) dot.getSiblingByType(SpriteComponent.class.getName());
          if(s != null){
            s.setImageFilename("res/img/dot.png");
            s.scaleToMatchTexture();
          }
        }
      }
    }
  }

}
TOP

Related Classes of testing.ColourChangeComponent

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.