parent
8f69574500
commit
e47d08a87e
|
@ -0,0 +1,18 @@
|
|||
package appeng.block.legacy;
|
||||
|
||||
import java.util.EnumSet;
|
||||
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.tile.legacy.TilePowerRelay;
|
||||
import net.minecraft.block.material.Material;
|
||||
|
||||
public class BlockPowerRelay extends AEBaseTileBlock {
|
||||
|
||||
public BlockPowerRelay() {
|
||||
super(Material.iron);
|
||||
this.setTileEntity(TilePowerRelay.class);
|
||||
this.setFeature(EnumSet.of(AEFeature.Legacy));
|
||||
}
|
||||
|
||||
}
|
|
@ -38,6 +38,7 @@ import appeng.block.legacy.BlockCraftTerminal;
|
|||
import appeng.block.legacy.BlockLegacyChest;
|
||||
import appeng.block.legacy.BlockLegacyController;
|
||||
import appeng.block.legacy.BlockPatternEncoder;
|
||||
import appeng.block.legacy.BlockPowerRelay;
|
||||
import appeng.block.legacy.BlockStorageMonitor;
|
||||
import appeng.block.legacy.BlockTerminal;
|
||||
import appeng.block.legacy.BlockTransitionPlane;
|
||||
|
@ -153,6 +154,7 @@ public final class ApiBlocks implements IBlocks {
|
|||
private final ITileDefinition assemblerHeatVent;
|
||||
private final ITileDefinition assemblerCraftingAccelerator;
|
||||
private final ITileDefinition legacyChest;
|
||||
private final ITileDefinition powerRelay;
|
||||
|
||||
public ApiBlocks(final DefinitionConstructor constructor) {
|
||||
final BlockLightDetector lightDetector = new BlockLightDetector();
|
||||
|
@ -341,6 +343,7 @@ public final class ApiBlocks implements IBlocks {
|
|||
this.assemblerCraftingAccelerator
|
||||
= constructor.registerTileDefinition(new BlockAssemblerCraftingAccelerator());
|
||||
this.legacyChest = constructor.registerTileDefinition(new BlockLegacyChest());
|
||||
this.powerRelay = constructor.registerTileDefinition(new BlockPowerRelay());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -0,0 +1,131 @@
|
|||
package appeng.tile.legacy;
|
||||
|
||||
import java.util.EnumSet;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import appeng.api.networking.GridFlags;
|
||||
import appeng.api.networking.IGridNode;
|
||||
import appeng.api.util.AECableType;
|
||||
import appeng.api.util.DimensionalCoord;
|
||||
import appeng.me.helpers.AENetworkProxy;
|
||||
import appeng.me.helpers.IGridProxyable;
|
||||
import appeng.tile.TileEvent;
|
||||
import appeng.tile.events.TileEventType;
|
||||
import appeng.tile.inventory.AppEngInternalInventory;
|
||||
import appeng.tile.inventory.InvOperation;
|
||||
import appeng.tile.powersink.AEBasePoweredTile;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class TilePowerRelay extends AEBasePoweredTile implements IGridProxyable {
|
||||
public static final IInventory NULL_INVENTORY = new AppEngInternalInventory(null, 0);
|
||||
public static final int[] ACCESSIBLE_SLOTS_BY_SIDE = {};
|
||||
private Map<ForgeDirection, AENetworkProxy> proxies = new HashMap<>();
|
||||
|
||||
public TilePowerRelay() {
|
||||
for(ForgeDirection dir : ForgeDirection.values()) {
|
||||
AENetworkProxy proxy = new AENetworkProxy(this, "proxy" + dir.name().toLowerCase(), this.getItemFromTile(this), true);
|
||||
proxy.setFlags(GridFlags.CANNOT_CARRY);
|
||||
if (dir == ForgeDirection.UNKNOWN) {
|
||||
proxy.setValidSides(EnumSet.noneOf(ForgeDirection.class));
|
||||
} else {
|
||||
proxy.setValidSides(EnumSet.of(dir));
|
||||
}
|
||||
proxies.put(dir, proxy);
|
||||
}
|
||||
}
|
||||
|
||||
@TileEvent(TileEventType.WORLD_NBT_READ)
|
||||
public void readFromNBT_PowerRelay(final NBTTagCompound data) {
|
||||
for(ForgeDirection dir : ForgeDirection.values()) {
|
||||
proxies.get(dir).readFromNBT(data);
|
||||
}
|
||||
}
|
||||
|
||||
@TileEvent(TileEventType.WORLD_NBT_WRITE)
|
||||
public void writeToNBT_PowerRelay(final NBTTagCompound data) {
|
||||
for(ForgeDirection dir : ForgeDirection.values()) {
|
||||
proxies.get(dir).writeToNBT(data);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public IInventory getInternalInventory() {
|
||||
return NULL_INVENTORY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChangeInventory(IInventory inv, int slot, InvOperation mc, ItemStack removed, ItemStack added) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getAccessibleSlotsBySide(ForgeDirection whichSide) {
|
||||
return ACCESSIBLE_SLOTS_BY_SIDE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IGridNode getGridNode(ForgeDirection dir) {
|
||||
return proxies.get(dir).getNode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public AECableType getCableConnectionType(ForgeDirection dir) {
|
||||
return AECableType.COVERED;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AENetworkProxy getProxy() {
|
||||
return proxies.get(ForgeDirection.UNKNOWN);
|
||||
}
|
||||
|
||||
public AENetworkProxy getProxyForSide(ForgeDirection dir) {
|
||||
return proxies.get(dir);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DimensionalCoord getLocation() {
|
||||
return new DimensionalCoord(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void gridChanged() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChunkUnload() {
|
||||
super.onChunkUnload();
|
||||
for(ForgeDirection dir : ForgeDirection.values()) {
|
||||
proxies.get(dir).onChunkUnload();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReady() {
|
||||
super.onReady();
|
||||
for(ForgeDirection dir : ForgeDirection.values()) {
|
||||
proxies.get(dir).onReady();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invalidate() {
|
||||
super.invalidate();
|
||||
for(ForgeDirection dir : ForgeDirection.values()) {
|
||||
proxies.get(dir).invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void validate() {
|
||||
super.validate();
|
||||
for(ForgeDirection dir : ForgeDirection.values()) {
|
||||
proxies.get(dir).validate();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -60,6 +60,7 @@ tile.appliedenergistics2.BlockStorageMonitor.name=ME Storage Monitor
|
|||
tile.appliedenergistics2.BlockTerminal.name=ME Access Terminal
|
||||
tile.appliedenergistics2.BlockWirelessAccessPoint.name=Wireless Access Point
|
||||
tile.appliedenergistics2.BlockLegacyChest.name=ME Chest
|
||||
tile.appliedenergistics2.BlockPowerRelay.name=ME Power Relay
|
||||
|
||||
item.appliedenergistics2.ItemMaterial.ConversionMatrix.name=Conversion Matrix
|
||||
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 391 B |
Loading…
Reference in New Issue