package com.rebelkeithy.ftl.view;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.rebelkeithy.ftl.systems.DoorsSystem;
public class DoorSystemRenderer extends SubSystemRenderer
{
private Button doorButtonOpen;
private Button doorButtonClose;
private Texture doorsOpen;
private Texture doorsOpenHover;
private Texture doorsClose;
private Texture doorsCloseHover;
private Texture doorButtonBase;
public DoorSystemRenderer(DoorsSystem doors, int systemX)
{
super(doors, systemX);
doorsOpen = TextureRegistry.registerSprite("button_door_top_on", "systemUI/button_door_top_on");
doorsOpenHover = TextureRegistry.registerSprite("button_door_top_select2", "systemUI/button_door_top_select2");
doorsClose = TextureRegistry.registerSprite("button_door_bottom_on", "systemUI/button_door_bottom_on");
doorsCloseHover = TextureRegistry.registerSprite("button_door_bottom_select2", "systemUI/button_door_bottom_select2");
doorButtonBase = TextureRegistry.registerSprite("button_door_base", "systemUI/button_door_base");
doorButtonOpen = new DoorCloseButton(doors, systemX + 16, systemY + 2, systemX + 26, systemY + 51, 20, 20, doorsOpen);
FTLView.inputHandler.registerButton(doorButtonOpen);
doorButtonOpen.setHoverImage(doorsOpenHover);
doorButtonClose = new DoorOpenButton(doors, systemX + 16, systemY + 2, systemX + 26, systemY + 27, 20, 20, doorsClose);
FTLView.inputHandler.registerButton(doorButtonClose);
doorButtonClose.setHoverImage(doorsCloseHover);
}
public void render(SpriteBatch batch)
{
super.render(batch);
batch.draw(doorButtonBase, systemX + 16, systemY + 2);
doorButtonOpen.render(batch);
doorButtonClose.render(batch);
}
@Override
public void setX(int newX)
{
doorButtonOpen.move(newX - systemX, 0);
doorButtonClose.move(newX - systemX, 0);
super.setX(newX);
}
@Override
public void setY(int newY)
{
doorButtonOpen.move(0, newY - systemY);
doorButtonClose.move(0, newY - systemY);
super.setY(newY);
}
@Override
public boolean click(int screenX, int screenY, int mouseButton)
{
if(doorButtonOpen != null && doorButtonOpen.containsPoint(screenX, screenY))
{
if(mouseButton == 0)
doorButtonOpen.leftClick();
if(mouseButton == 1)
doorButtonOpen.rightClick();
return true;
}
if(doorButtonClose != null && doorButtonClose.containsPoint(screenX, screenY))
{
if(mouseButton == 0)
doorButtonClose.leftClick();
if(mouseButton == 1)
doorButtonClose.rightClick();
return true;
}
return false;
}
}