fix: legacy display rendering
This commit is contained in:
parent
285094b2e0
commit
30f0c25502
|
@ -1,2 +1,4 @@
|
|||
- we demultiblocked the transition plane
|
||||
- transition plane doesn't collect items
|
||||
- legacy controller doesn't correctly render energy bar
|
||||
- legacy blocks aren't colorable
|
||||
|
|
|
@ -2,7 +2,6 @@ package appeng.block.legacy;
|
|||
|
||||
import java.util.EnumSet;
|
||||
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.core.sync.GuiBridge;
|
||||
import appeng.tile.legacy.TileCraftingMonitor;
|
||||
|
@ -12,7 +11,7 @@ import net.minecraft.entity.player.EntityPlayer;
|
|||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class BlockCraftMonitor extends AEBaseTileBlock {
|
||||
public class BlockCraftMonitor extends BlockLegacyDisplay {
|
||||
public BlockCraftMonitor() {
|
||||
super(Material.iron);
|
||||
this.setTileEntity(TileCraftingMonitor.class);
|
||||
|
|
|
@ -2,19 +2,17 @@ package appeng.block.legacy;
|
|||
|
||||
import java.util.EnumSet;
|
||||
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.core.sync.GuiBridge;
|
||||
import appeng.tile.legacy.TileCraftTerminal;
|
||||
import appeng.util.Platform;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class BlockCraftTerminal extends AEBaseTileBlock {
|
||||
public class BlockCraftTerminal extends BlockTerminal {
|
||||
public BlockCraftTerminal() {
|
||||
super(Material.iron);
|
||||
super();
|
||||
this.setTileEntity(TileCraftTerminal.class);
|
||||
this.setFeature(EnumSet.of(AEFeature.Legacy));
|
||||
}
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
package appeng.block.legacy;
|
||||
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockLegacyDisplay;
|
||||
import appeng.tile.AEBaseTile;
|
||||
import appeng.tile.legacy.TileLegacyDisplay;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
|
||||
public class BlockLegacyDisplay extends AEBaseTileBlock {
|
||||
public BlockLegacyDisplay(Material mat) {
|
||||
super(mat);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected BaseBlockRender<? extends AEBaseBlock, ? extends AEBaseTile> getRenderer() {
|
||||
return new RenderBlockLegacyDisplay();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLightValue(IBlockAccess world, int x, int y, int z) {
|
||||
TileEntity te = world.getTileEntity(x, y, z);
|
||||
return ((TileLegacyDisplay) te).isDisplayPowered() ? 7 : 0;
|
||||
}
|
||||
}
|
|
@ -2,7 +2,6 @@ package appeng.block.legacy;
|
|||
|
||||
import java.util.EnumSet;
|
||||
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.core.sync.GuiBridge;
|
||||
import appeng.tile.legacy.TileTerminal;
|
||||
|
@ -12,7 +11,7 @@ import net.minecraft.entity.player.EntityPlayer;
|
|||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class BlockTerminal extends AEBaseTileBlock {
|
||||
public class BlockTerminal extends BlockLegacyDisplay {
|
||||
public BlockTerminal() {
|
||||
super(Material.iron);
|
||||
this.setTileEntity(TileTerminal.class);
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
package appeng.client.render.blocks;
|
||||
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.tile.legacy.TileLegacyDisplay;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
|
||||
public class RenderBlockLegacyDisplay
|
||||
extends BaseBlockRender<AEBaseTileBlock, TileLegacyDisplay> {
|
||||
public RenderBlockLegacyDisplay() {
|
||||
super(false, 20);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderInWorld(
|
||||
AEBaseTileBlock b, IBlockAccess world, int x, int y, int z, RenderBlocks renderer
|
||||
) {
|
||||
TileLegacyDisplay tile = (TileLegacyDisplay) world.getTileEntity(x, y, z);
|
||||
renderer.setRenderBounds(0.0, 0.0, 0.0, 1.0, 1.0, 1.0);
|
||||
if (tile.isDisplayPowered()) {
|
||||
//b.dontrender = tile.noScreen();
|
||||
renderer.renderStandardBlock(b, x, y, z);
|
||||
//b.dontrender = tile.screenOnly();
|
||||
int bn = 15;
|
||||
Tessellator.instance.setColorOpaque_F(1.0F, 1.0F, 1.0F);
|
||||
Tessellator.instance.setBrightness(bn << 20 | bn << 4);
|
||||
this.renderFace(
|
||||
x,
|
||||
y,
|
||||
z,
|
||||
b,
|
||||
//b.getIcon(tile.getForward().ordinal(), tile.getBlockMetadata()),
|
||||
b.getIcon(world, x, y, z, tile.getForward().ordinal()),
|
||||
renderer,
|
||||
tile.getForward()
|
||||
);
|
||||
} else {
|
||||
renderer.renderStandardBlock(b, x, y, z);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -1,5 +1,34 @@
|
|||
package appeng.tile.legacy;
|
||||
|
||||
import appeng.api.storage.ITerminalHost;
|
||||
import java.util.EnumSet;
|
||||
|
||||
public class TileCraftingMonitor extends TileTerminal {}
|
||||
import appeng.api.networking.GridFlags;
|
||||
import appeng.api.storage.IMEMonitor;
|
||||
import appeng.api.storage.ITerminalHost;
|
||||
import appeng.api.storage.data.IAEFluidStack;
|
||||
import appeng.api.storage.data.IAEItemStack;
|
||||
import appeng.api.util.IConfigManager;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class TileCraftingMonitor extends TileLegacyDisplay implements ITerminalHost {
|
||||
public TileCraftingMonitor() {
|
||||
this.getProxy().setFlags(GridFlags.REQUIRE_CHANNEL);
|
||||
this.getProxy().setIdlePowerUsage(0.5);
|
||||
this.getProxy().setValidSides(EnumSet.allOf(ForgeDirection.class));
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMEMonitor<IAEItemStack> getItemInventory() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMEMonitor<IAEFluidStack> getFluidInventory() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IConfigManager getConfigManager() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
package appeng.tile.legacy;
|
||||
|
||||
import appeng.api.networking.events.MENetworkEventSubscribe;
|
||||
import appeng.api.networking.events.MENetworkPowerStatusChange;
|
||||
import appeng.tile.TileEvent;
|
||||
import appeng.tile.events.TileEventType;
|
||||
import appeng.tile.grid.AENetworkTile;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class TileLegacyDisplay extends AENetworkTile {
|
||||
private boolean displayPowered;
|
||||
|
||||
public boolean isDisplayPowered() {
|
||||
return displayPowered;
|
||||
}
|
||||
|
||||
@TileEvent(TileEventType.NETWORK_WRITE)
|
||||
public void writeToStreamTileLegacyTerminal(ByteBuf data) {
|
||||
data.writeBoolean(this.displayPowered);
|
||||
}
|
||||
|
||||
@TileEvent(TileEventType.NETWORK_READ)
|
||||
public void readFromStreamTileLegacyTerminal(ByteBuf data) {
|
||||
this.displayPowered = data.readBoolean();
|
||||
this.worldObj.func_147451_t(this.xCoord, this.yCoord, this.zCoord);
|
||||
}
|
||||
|
||||
@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();
|
||||
}
|
||||
}
|
|
@ -7,18 +7,18 @@ import appeng.api.config.SortDir;
|
|||
import appeng.api.config.SortOrder;
|
||||
import appeng.api.config.ViewItems;
|
||||
import appeng.api.networking.GridFlags;
|
||||
import appeng.api.storage.*;
|
||||
import appeng.api.storage.IMEMonitor;
|
||||
import appeng.api.storage.ITerminalHost;
|
||||
import appeng.api.storage.data.IAEFluidStack;
|
||||
import appeng.api.storage.data.IAEItemStack;
|
||||
import appeng.api.util.IConfigManager;
|
||||
import appeng.me.GridAccessException;
|
||||
import appeng.tile.grid.AENetworkTile;
|
||||
import appeng.util.ConfigManager;
|
||||
import appeng.util.IConfigManagerHost;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class TileTerminal
|
||||
extends AENetworkTile implements ITerminalHost, IConfigManagerHost {
|
||||
extends TileLegacyDisplay implements ITerminalHost, IConfigManagerHost {
|
||||
private final IConfigManager cm = new ConfigManager(this);
|
||||
|
||||
public TileTerminal() {
|
||||
|
|
Loading…
Reference in New Issue