75 lines
2.5 KiB
Java
75 lines
2.5 KiB
Java
package appeng.tile.legacy;
|
|
|
|
import appeng.api.implementations.tiles.IColorableTile;
|
|
import appeng.api.networking.events.MENetworkEventSubscribe;
|
|
import appeng.api.networking.events.MENetworkPowerStatusChange;
|
|
import appeng.api.util.AEColor;
|
|
import appeng.tile.TileEvent;
|
|
import appeng.tile.events.TileEventType;
|
|
import appeng.tile.grid.AENetworkTile;
|
|
import io.netty.buffer.ByteBuf;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.nbt.NBTTagCompound;
|
|
import net.minecraftforge.common.util.ForgeDirection;
|
|
|
|
public class TileLegacyDisplay extends AENetworkTile implements IColorableTile {
|
|
private boolean displayPowered;
|
|
protected AEColor paintedColor = AEColor.Transparent;
|
|
|
|
public boolean isDisplayPowered() {
|
|
return displayPowered;
|
|
}
|
|
|
|
@TileEvent(TileEventType.NETWORK_WRITE)
|
|
public void writeToStreamTileLegacyDisplay(ByteBuf data) {
|
|
data.writeBoolean(this.displayPowered);
|
|
data.writeByte(this.paintedColor.ordinal());
|
|
}
|
|
|
|
@TileEvent(TileEventType.NETWORK_READ)
|
|
public void readFromStreamTileLegacyDisplay(ByteBuf data) {
|
|
this.displayPowered = data.readBoolean();
|
|
this.paintedColor = AEColor.values()[data.readByte()];
|
|
this.worldObj.func_147451_t(this.xCoord, this.yCoord, this.zCoord);
|
|
this.worldObj.markBlockRangeForRenderUpdate(
|
|
this.xCoord, this.yCoord, this.zCoord, this.xCoord, this.yCoord, this.zCoord
|
|
);
|
|
}
|
|
|
|
@TileEvent(TileEventType.WORLD_NBT_WRITE)
|
|
public void writeToNBTTileLegacyDisplay(NBTTagCompound nbt) {
|
|
nbt.setByte("color", (byte)this.paintedColor.ordinal());
|
|
}
|
|
|
|
@TileEvent(TileEventType.WORLD_NBT_READ)
|
|
public void readFromNBTTileLegacyDisplay(NBTTagCompound nbt) {
|
|
if (nbt.hasKey("color")) {
|
|
this.paintedColor = AEColor.values()[nbt.getByte("color")];
|
|
}
|
|
}
|
|
|
|
@MENetworkEventSubscribe
|
|
public void powerUpdate(final MENetworkPowerStatusChange changed) {
|
|
this.displayPowered = this.getProxy().isPowered();
|
|
this.worldObj.func_147451_t(this.xCoord, this.yCoord, this.zCoord);
|
|
this.markForUpdate();
|
|
}
|
|
|
|
@Override
|
|
public AEColor getColor() {
|
|
return this.paintedColor;
|
|
}
|
|
|
|
@Override
|
|
public boolean recolourBlock(ForgeDirection side, AEColor newPaintedColor, EntityPlayer who) {
|
|
if (this.paintedColor == newPaintedColor) {
|
|
return false;
|
|
}
|
|
|
|
this.paintedColor = newPaintedColor;
|
|
this.markDirty();
|
|
this.markForUpdate();
|
|
return true;
|
|
}
|
|
}
|