BlockRenderComponent.java :  » Game » seed-videogame » seed » field » Java Open Source

Java Open Source » Game » seed videogame 
seed videogame » seed » field » BlockRenderComponent.java
package seed.field;

import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.Image;
import org.newdawn.slick.geom.Vector2f;
import org.newdawn.slick.state.StateBasedGame;

import seed.engine.RenderComponent;
 
public class BlockRenderComponent extends RenderComponent {
  
  Image verticalBorder;
  Image horizontalBorder;
  
  public BlockRenderComponent(String id, Image vertical_border, Image horizontal_border)
  {
    super(id);
    this.verticalBorder = vertical_border;
    this.horizontalBorder = horizontal_border;
  }
 
  @Override
  public void render(GameContainer gc, StateBasedGame sb, Graphics gr) {
    Vector2f pos = owner.getPosition();
    Image texture = ((Block)owner).getTexture();
    float texture_scale = (float)Block.BLOCK_SIZE/texture.getWidth();
    texture.draw(pos.getX(),pos.getY(),texture_scale);
    if(((Block)owner).isBorderVisible()){
      float horizontal_border_scale = (float)(Block.BLOCK_SIZE+verticalBorder.getWidth())/horizontalBorder.getWidth();
      float vertical_border_scale = (float)(Block.BLOCK_SIZE+horizontalBorder.getHeight())/verticalBorder.getHeight();
      
      horizontalBorder.draw(pos.getX(),pos.getY(),horizontal_border_scale);
      horizontalBorder.draw(pos.getX(),pos.getY()+Block.BLOCK_SIZE,horizontal_border_scale);
      verticalBorder.draw(pos.getX(),pos.getY(),vertical_border_scale);
      verticalBorder.draw(pos.getX()+Block.BLOCK_SIZE,pos.getY(),vertical_border_scale);
      
    }
  }
 
  @Override
  public void update(GameContainer gc, StateBasedGame sb, int delta) {
    verticalBorder.rotate(owner.getRotation() - verticalBorder.getRotation());
    horizontalBorder.rotate(owner.getRotation() - horizontalBorder.getRotation());
  }
 
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.