diff options
Diffstat (limited to 'src/main/java')
44 files changed, 388 insertions, 263 deletions
diff --git a/src/main/java/com/github/technus/tectech/Util.java b/src/main/java/com/github/technus/tectech/Util.java index 7746d8dd41..53e9627187 100644 --- a/src/main/java/com/github/technus/tectech/Util.java +++ b/src/main/java/com/github/technus/tectech/Util.java @@ -2,7 +2,7 @@ package com.github.technus.tectech; import com.github.technus.tectech.thing.casing.TT_Container_Casings; import com.github.technus.tectech.thing.metaTileEntity.IFrontRotation; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.HatchAdder; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IHatchAdder; import cpw.mods.fml.common.registry.GameRegistry; import gregtech.api.GregTech_API; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; @@ -396,7 +396,7 @@ public final class Util { String[][] structure,//0-9 casing, +- air no air, A... ignore 'A'-CHAR-1 blocks Block[] blockType,//use numbers 0-9 for casing types byte[] blockMeta,//use numbers 0-9 for casing types - HatchAdder[] addingMethods, + IHatchAdder[] addingMethods, short[] casingTextures, Block[] blockTypeFallback,//use numbers 0-9 for casing types byte[] blockMetaFallback,//use numbers 0-9 for casing types diff --git a/src/main/java/com/github/technus/tectech/chunkData/ChunkDataHandler.java b/src/main/java/com/github/technus/tectech/chunkData/ChunkDataHandler.java index c3818009a4..f7b3895a80 100644 --- a/src/main/java/com/github/technus/tectech/chunkData/ChunkDataHandler.java +++ b/src/main/java/com/github/technus/tectech/chunkData/ChunkDataHandler.java @@ -17,36 +17,27 @@ public class ChunkDataHandler { private final String BASE_TAG_NAME ="TecTechData"; private final HashMap<Integer,HashMap<ChunkCoordIntPair, NBTChunk>> dimensionWiseChunkData=new HashMap<>(); private final HashMap<String,HashMap<Integer,ChunkHashMap >> dimensionWiseMetaChunkData=new HashMap<>(); - private final HashMap<String,ChunkMetaDataHandler> metaDataHandlerHashMap =new HashMap<>(); - private final ArrayList<ChunkMetaDataHandler> clientSyncHandlers =new ArrayList<>(); - private final ArrayList<ChunkMetaDataHandler> serverHandlers=new ArrayList<>(); - private final ArrayList<ChunkMetaDataHandler> worldHandlers=new ArrayList<>(); - private final ArrayList<ChunkMetaDataHandler> playerHandlers=new ArrayList<>(); - @SideOnly(Side.CLIENT) - private final ArrayList<ChunkMetaDataHandler> clientHandlers=new ArrayList<>(); - @SideOnly(Side.CLIENT) - private final ArrayList<ChunkMetaDataHandler> renderHandlers=new ArrayList<>(); + private final HashMap<String, IChunkMetaDataHandler> metaDataHandlerHashMap =new HashMap<>(); + private final ArrayList<IChunkMetaDataHandler> clientSyncHandlers =new ArrayList<>(); + private final ArrayList<IChunkMetaDataHandler> serverHandlers=new ArrayList<>(); + private final ArrayList<IChunkMetaDataHandler> worldHandlers=new ArrayList<>(); + private final ArrayList<IChunkMetaDataHandler> playerHandlers=new ArrayList<>(); + private final ArrayList<IChunkMetaDataHandler> clientHandlers=new ArrayList<>(); + private final ArrayList<IChunkMetaDataHandler> renderHandlers=new ArrayList<>(); @SubscribeEvent public void onWorldLoad(WorldEvent.Load event){ int dim=event.world.provider.dimensionId; dimensionWiseChunkData.computeIfAbsent(dim, m->{ HashMap<ChunkCoordIntPair, NBTChunk> map = new HashMap<>(); - for (String meta : metaDataHandlerHashMap.keySet()) { - dimensionWiseMetaChunkData.get(meta).put(dim, new ChunkHashMap(meta, map)); + for (Map.Entry<String,IChunkMetaDataHandler> meta : metaDataHandlerHashMap.entrySet()) { + dimensionWiseMetaChunkData.get(meta.getKey()).put(dim, new ChunkHashMap(meta.getValue(), map)); } return map; }); } @SubscribeEvent - public void onWorldUnload(WorldEvent.Unload event){ - dimensionWiseChunkData.remove(event.world.provider.dimensionId); - dimensionWiseMetaChunkData.forEach((k,v)->v.remove(event.world.provider.dimensionId)); - } - - @SideOnly(Side.SERVER) - @SubscribeEvent public void handleChunkSaveEvent(ChunkDataEvent.Save event) { HashMap<ChunkCoordIntPair, NBTChunk> dimensionData = dimensionWiseChunkData.get(event.world.provider.dimensionId); NBTChunk chunkData = dimensionData != null ? dimensionData.get(event.getChunk().getChunkCoordIntPair()) : null; @@ -58,7 +49,6 @@ public class ChunkDataHandler { } } - @SideOnly(Side.SERVER) @SubscribeEvent public void handleChunkLoadEvent(ChunkDataEvent.Load event) { NBTTagCompound loadedTag = event.getData().getCompoundTag(BASE_TAG_NAME); @@ -140,36 +130,35 @@ public class ChunkDataHandler { dimensionWiseMetaChunkData.get(chunkMetaDataHandler.getTagName()), aEvent)); } + @SideOnly(Side.SERVER) @SubscribeEvent public void onWorldTickEvent(TickEvent.WorldTickEvent aEvent) { - if(aEvent.side.isServer()){ - int dim=aEvent.world.provider.dimensionId; - clientSyncHandlers.forEach(chunkMetaDataHandler -> { - ChunkHashMap data=dimensionWiseMetaChunkData - .get(chunkMetaDataHandler.getTagName()).get(dim); - int cycle=chunkMetaDataHandler.pushPayloadSpreadPeriod(); - int epoch=(int)(aEvent.world.getTotalWorldTime()%cycle); - ArrayList<ChunkCoordIntPair> work; - if(epoch==0){ - int per=data.dirtyBoys.size()/cycle; - int mod=data.dirtyBoys.size()%cycle; - Iterator<ChunkCoordIntPair> iter=data.dirtyBoys.iterator(); - for (int periodWork = 0; periodWork < cycle; periodWork++) { - work=data.workLoad.get(periodWork); - for (int i = 0; i < per; i++) { - work.add(iter.next()); - } - if(periodWork<mod){ - work.add(iter.next()); - } + int dim=aEvent.world.provider.dimensionId; + clientSyncHandlers.forEach(chunkMetaDataHandler -> { + ChunkHashMap data=dimensionWiseMetaChunkData + .get(chunkMetaDataHandler.getTagName()).get(dim); + int cycle=chunkMetaDataHandler.pushPayloadSpreadPeriod(); + int epoch=(int)(aEvent.world.getTotalWorldTime()%cycle); + ArrayList<ChunkCoordIntPair> work; + if(epoch==0){ + int per=data.dirtyBoys.size()/cycle; + int mod=data.dirtyBoys.size()%cycle; + Iterator<ChunkCoordIntPair> iter=data.dirtyBoys.iterator(); + for (int periodWork = 0; periodWork < cycle; periodWork++) { + work=data.workLoad.get(periodWork); + for (int i = 0; i < per; i++) { + work.add(iter.next()); + } + if(periodWork<mod){ + work.add(iter.next()); } - data.dirtyBoys.clear(); } - work=data.workLoad.get(epoch); - chunkMetaDataHandler.pushPayload(dim,work); - work.clear(); - }); - } + data.dirtyBoys.clear(); + } + work=data.workLoad.get(epoch); + chunkMetaDataHandler.pushPayload(dim,work); + work.clear(); + }); worldHandlers.forEach(chunkMetaDataHandler -> chunkMetaDataHandler.tickWorld( dimensionWiseMetaChunkData.get(chunkMetaDataHandler.getTagName()), aEvent)); @@ -188,36 +177,42 @@ public class ChunkDataHandler { dimensionWiseMetaChunkData.forEach((k,v)->v.clear()); } - public ChunkMetaDataHandler getChunkMetaDataHandler(String s){ + public IChunkMetaDataHandler getChunkMetaDataHandler(String s){ return metaDataHandlerHashMap.get(s); } - public void registerChunkMetaDataHandler(ChunkMetaDataHandler handler){ + public void registerChunkMetaDataHandler(IChunkMetaDataHandler handler){ metaDataHandlerHashMap.put(handler.getTagName(),handler); dimensionWiseMetaChunkData.put(handler.getTagName(),new HashMap<>()); Class clazz=handler.getClass(); try { - if(clazz.getMethod("tickServer", HashMap.class, TickEvent.ServerTickEvent.class).getDeclaringClass()!=ChunkMetaDataHandler.class){ + if(clazz.getMethod("tickServer", HashMap.class, TickEvent.ServerTickEvent.class).getDeclaringClass()!= IChunkMetaDataHandler.class){ serverHandlers.add(handler); } - if(clazz.getMethod("tickWorld", HashMap.class, TickEvent.WorldTickEvent.class).getDeclaringClass()!=ChunkMetaDataHandler.class){ - worldHandlers.add(handler); - } - if(clazz.getMethod("tickPlayer", HashMap.class, TickEvent.PlayerTickEvent.class).getDeclaringClass()!=ChunkMetaDataHandler.class){ + if(clazz.getMethod("tickPlayer", HashMap.class, TickEvent.PlayerTickEvent.class).getDeclaringClass()!= IChunkMetaDataHandler.class){ playerHandlers.add(handler); } - if (clazz.getMethod("requestData", ChunkEvent.Load.class).getDeclaringClass() != ChunkMetaDataHandler.class) { + if (clazz.getMethod("requestData", ChunkEvent.Load.class).getDeclaringClass() != IChunkMetaDataHandler.class) { clientSyncHandlers.add(handler); } } catch (NoSuchMethodException e) { throw new RuntimeException("Cannot register common event handlers!"); } + if(FMLCommonHandler.instance().getEffectiveSide().isServer()) { + try { + if(clazz.getMethod("tickWorld", HashMap.class, TickEvent.WorldTickEvent.class).getDeclaringClass()!= IChunkMetaDataHandler.class){ + worldHandlers.add(handler); + } + } catch (NoSuchMethodException e) { + throw new RuntimeException("Cannot register client event handlers!"); + } + } if(FMLCommonHandler.instance().getEffectiveSide().isClient()) { try { - if (clazz.getMethod("tickClient", HashMap.class, TickEvent.ClientTickEvent.class).getDeclaringClass() != ChunkMetaDataHandler.class) { + if (clazz.getMethod("tickClient", HashMap.class, TickEvent.ClientTickEvent.class).getDeclaringClass() != IChunkMetaDataHandler.class) { clientHandlers.add(handler); } - if (clazz.getMethod("tickRender", HashMap.class, TickEvent.RenderTickEvent.class).getDeclaringClass() != ChunkMetaDataHandler.class) { + if (clazz.getMethod("tickRender", HashMap.class, TickEvent.RenderTickEvent.class).getDeclaringClass() != IChunkMetaDataHandler.class) { renderHandlers.add(handler); } } catch (NoSuchMethodException e) { @@ -226,23 +221,28 @@ public class ChunkDataHandler { } } - public NBTTagCompound getChunkData(ChunkMetaDataHandler handler, int world, ChunkCoordIntPair chunk){ + public NBTTagCompound removeChunkData(IChunkMetaDataHandler handler, int world, ChunkCoordIntPair chunk){ + return dimensionWiseMetaChunkData.get(handler.getTagName()).get(world).remove(chunk); + } + + public NBTTagCompound getChunkData(IChunkMetaDataHandler handler, int world, ChunkCoordIntPair chunk){ return dimensionWiseMetaChunkData.get(handler.getTagName()).get(world).get(chunk); } - public NBTTagCompound putChunkData(ChunkMetaDataHandler handler, int world, ChunkCoordIntPair chunk,NBTTagCompound data){ + public NBTTagCompound putChunkData(IChunkMetaDataHandler handler, int world, ChunkCoordIntPair chunk, NBTTagCompound data){ return dimensionWiseMetaChunkData.get(handler.getTagName()).get(world).put(chunk,data); } - public NBTTagCompound createIfAbsentChunkData(ChunkMetaDataHandler handler, int world, ChunkCoordIntPair chunk){ + + public NBTTagCompound createIfAbsentChunkData(IChunkMetaDataHandler handler, int world, ChunkCoordIntPair chunk){ return dimensionWiseMetaChunkData.get(handler.getTagName()).get(world) .computeIfAbsent(chunk,chunkCoordIntPair -> handler.createData()); } - public HashMap<Integer,ChunkHashMap> getChunkData(ChunkMetaDataHandler chunkMetaDataHandler){ + public HashMap<Integer,ChunkHashMap> getChunkData(IChunkMetaDataHandler chunkMetaDataHandler){ return dimensionWiseMetaChunkData.get(chunkMetaDataHandler.getTagName()); } - public ChunkHashMap getChunkData(ChunkMetaDataHandler chunkMetaDataHandler,int world){ + public ChunkHashMap getChunkData(IChunkMetaDataHandler chunkMetaDataHandler, int world){ return dimensionWiseMetaChunkData.get(chunkMetaDataHandler.getTagName()).get(world); } @@ -253,9 +253,12 @@ public class ChunkDataHandler { private final ArrayList<ArrayList<ChunkCoordIntPair>> workLoad=new ArrayList<>(); private final String meta; - private ChunkHashMap(String meta, HashMap<ChunkCoordIntPair, NBTChunk> storage) { + private ChunkHashMap(IChunkMetaDataHandler meta, HashMap<ChunkCoordIntPair, NBTChunk> storage) { this.storage =storage; - this.meta=meta; + this.meta=meta.getTagName(); + for (int i = 0; i < meta.pushPayloadSpreadPeriod(); i++) { + workLoad.add(new ArrayList<>(128)); + } } public void markForTransmissionToClient(ChunkCoordIntPair chunk){ diff --git a/src/main/java/com/github/technus/tectech/chunkData/ChunkMetaDataHandler.java b/src/main/java/com/github/technus/tectech/chunkData/IChunkMetaDataHandler.java index 543fb080a5..b904f09f33 100644 --- a/src/main/java/com/github/technus/tectech/chunkData/ChunkMetaDataHandler.java +++ b/src/main/java/com/github/technus/tectech/chunkData/IChunkMetaDataHandler.java @@ -10,13 +10,15 @@ import net.minecraftforge.event.world.ChunkEvent; import java.util.ArrayList; import java.util.HashMap; -public interface ChunkMetaDataHandler { +public interface IChunkMetaDataHandler { String getTagName(); void mergeData(NBTTagCompound target, NBTTagCompound loadedData); NBTTagCompound createData(); @SideOnly(Side.CLIENT) default void requestData(ChunkEvent.Load aEvent){} + @SideOnly(Side.SERVER) default void pushData(int world, ChunkCoordIntPair chunk){} + @SideOnly(Side.SERVER) default void pushPayload(int world, ArrayList<ChunkCoordIntPair> chunk){ chunk.forEach(chunkCoordIntPair -> pushData(world,chunkCoordIntPair)); } @@ -28,6 +30,7 @@ public interface ChunkMetaDataHandler { @SideOnly(Side.CLIENT) default void tickClient(HashMap<Integer, ChunkDataHandler.ChunkHashMap> data, TickEvent.ClientTickEvent aEvent){} default void tickServer(HashMap<Integer, ChunkDataHandler.ChunkHashMap> data, TickEvent.ServerTickEvent event){} + @SideOnly(Side.SERVER) default void tickWorld(HashMap<Integer, ChunkDataHandler.ChunkHashMap> data, TickEvent.WorldTickEvent aEvent){} default void tickPlayer(HashMap<Integer, ChunkDataHandler.ChunkHashMap> data, TickEvent.PlayerTickEvent aEvent){} } diff --git a/src/main/java/com/github/technus/tectech/chunkData/WorldData.java b/src/main/java/com/github/technus/tectech/chunkData/WorldData.java new file mode 100644 index 0000000000..42641a015e --- /dev/null +++ b/src/main/java/com/github/technus/tectech/chunkData/WorldData.java @@ -0,0 +1,52 @@ +package com.github.technus.tectech.chunkData; + +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraft.world.World; +import net.minecraft.world.chunk.Chunk; + +import java.util.Objects; + +public final class WorldData { + private final World world; + private final Chunk chunk; + private final ChunkCoordIntPair coordIntPair; + + public WorldData(World world, Chunk data) { + this.world = world; + this.chunk = data; + coordIntPair=data.getChunkCoordIntPair(); + } + + public WorldData(World world, ChunkCoordIntPair data) { + this.world = world; + this.coordIntPair = data; + chunk= world.getChunkFromChunkCoords(data.chunkXPos,data.chunkZPos); + } + + public World getWorld() { + return world; + } + + public Chunk getChunk() { + return chunk; + } + + public ChunkCoordIntPair getCoordIntPair() { + return coordIntPair; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + WorldData worldData = (WorldData) o; + return world.provider.dimensionId==worldData.world.provider.dimensionId && + coordIntPair.chunkXPos==worldData.coordIntPair.chunkXPos && + coordIntPair.chunkZPos==worldData.coordIntPair.chunkXPos; + } + + @Override + public int hashCode() { + return Objects.hash(world.provider.dimensionId, coordIntPair); + } +} diff --git a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java index 6cec48c41f..3d64ceee62 100644 --- a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java +++ b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaDequantizer.java @@ -10,7 +10,7 @@ import com.github.technus.tectech.thing.casing.TT_Container_Casings; import com.github.technus.tectech.thing.metaTileEntity.IConstructable; import com.github.technus.tectech.thing.metaTileEntity.multi.GT_MetaTileEntity_EM_quantizer; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.HatchAdder; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IHatchAdder; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; @@ -46,7 +46,7 @@ public class GT_MetaTileEntity_EM_essentiaDequantizer extends GT_MetaTileEntity_ }; private static final Block[] blockType = new Block[]{QuantumGlassBlock.INSTANCE, sBlockCasingsTT, sBlockCasingsTT, sBlockCasingsTT}; private static final byte[] blockMeta = new byte[]{0,0,4,8}; - private final HatchAdder[] addingMethods = new HatchAdder[]{ + private final IHatchAdder[] addingMethods = new IHatchAdder[]{ this::addClassicToMachineList, this::addElementalInputToMachineList, this::addElementalMufflerToMachineList}; diff --git a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java index fd56305d5f..9bd16c959b 100644 --- a/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java +++ b/src/main/java/com/github/technus/tectech/compatibility/thaumcraft/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_essentiaQuantizer.java @@ -10,7 +10,7 @@ import com.github.technus.tectech.thing.casing.TT_Container_Casings; import com.github.technus.tectech.thing.metaTileEntity.IConstructable; import com.github.technus.tectech.thing.metaTileEntity.multi.GT_MetaTileEntity_EM_quantizer; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.HatchAdder; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IHatchAdder; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; @@ -46,7 +46,7 @@ public class GT_MetaTileEntity_EM_essentiaQuantizer extends GT_MetaTileEntity_Mu }; private static final Block[] blockType = new Block[]{QuantumGlassBlock.INSTANCE, sBlockCasingsTT, sBlockCasingsTT, sBlockCasingsTT}; private static final byte[] blockMeta = new byte[]{0,4,0,8}; - private final HatchAdder[] addingMethods = new HatchAdder[]{ + private final IHatchAdder[] addingMethods = new IHatchAdder[]{ this::addClassicToMachineList, this::addElementalOutputToMachineList, this::addElementalMufflerToMachineList}; diff --git a/src/main/java/com/github/technus/tectech/loader/network/ChunkDataMessage.java b/src/main/java/com/github/technus/tectech/loader/network/ChunkDataMessage.java index daa6195944..15c936191a 100644 --- a/src/main/java/com/github/technus/tectech/loader/network/ChunkDataMessage.java +++ b/src/main/java/com/github/technus/tectech/loader/network/ChunkDataMessage.java @@ -2,7 +2,7 @@ package com.github.technus.tectech.loader.network; import com.github.technus.tectech.TecTech; import com.github.technus.tectech.Util; -import com.github.technus.tectech.chunkData.ChunkMetaDataHandler; +import com.github.technus.tectech.chunkData.IChunkMetaDataHandler; import cpw.mods.fml.common.network.ByteBufUtils; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.MessageContext; @@ -19,7 +19,7 @@ public class ChunkDataMessage implements IMessage { int worldId; ChunkCoordIntPair chunk; NBTTagCompound data; - ChunkMetaDataHandler handler; + IChunkMetaDataHandler handler; public ChunkDataMessage(){} @@ -53,7 +53,7 @@ public class ChunkDataMessage implements IMessage { public static class ChunkDataQuery extends ChunkDataMessage { public ChunkDataQuery() { } - public ChunkDataQuery(ChunkEvent.Load aEvent,ChunkMetaDataHandler handler) { + public ChunkDataQuery(ChunkEvent.Load aEvent, IChunkMetaDataHandler handler) { worldId=aEvent.world.provider.dimensionId; chunk=aEvent.getChunk().getChunkCoordIntPair(); this.handler=handler; @@ -64,7 +64,7 @@ public class ChunkDataMessage implements IMessage { public ChunkDataData() { } - public ChunkDataData(int worldId,ChunkCoordIntPair chunk,ChunkMetaDataHandler handler){ + public ChunkDataData(int worldId, ChunkCoordIntPair chunk, IChunkMetaDataHandler handler){ this.worldId=worldId; this.chunk=chunk; this.handler=handler; diff --git a/src/main/java/com/github/technus/tectech/mechanics/anomaly/AnomalyHandler.java b/src/main/java/com/github/technus/tectech/mechanics/anomaly/AnomalyHandler.java index 8ef33e7c3f..f45d3a5df5 100644 --- a/src/main/java/com/github/technus/tectech/mechanics/anomaly/AnomalyHandler.java +++ b/src/main/java/com/github/technus/tectech/mechanics/anomaly/AnomalyHandler.java @@ -2,23 +2,27 @@ package com.github.technus.tectech.mechanics.anomaly; import com.github.technus.tectech.TecTech; import com.github.technus.tectech.chunkData.ChunkDataHandler; -import com.github.technus.tectech.chunkData.ChunkMetaDataHandler; +import com.github.technus.tectech.chunkData.IChunkMetaDataHandler; import com.github.technus.tectech.loader.network.ChunkDataMessage; import com.github.technus.tectech.loader.network.NetworkDispatcher; import com.github.technus.tectech.mechanics.elementalMatter.definitions.complex.atom.dAtomDefinition; import cpw.mods.fml.common.gameevent.TickEvent; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import net.minecraft.block.Block; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.World; +import net.minecraft.world.chunk.Chunk; import net.minecraftforge.event.world.ChunkEvent; +import java.util.ArrayList; import java.util.HashMap; -public class AnomalyHandler implements ChunkMetaDataHandler { - private static final double MIN_POLLUTION= dAtomDefinition.getSomethingHeavy().getMass()*10000D; - - private static final String INTENSITY="intensity"; +public class AnomalyHandler implements IChunkMetaDataHandler { + private static final double SWAP_THRESHOLD = dAtomDefinition.getSomethingHeavy().getMass() * 10000D; + private static final double PER_PARTICLE=SWAP_THRESHOLD/64; + private static final String INTENSITY = "intensity"; + private static final int MEAN_DELAY =50; @Override public String getTagName() { @@ -27,8 +31,8 @@ public class AnomalyHandler implements ChunkMetaDataHandler { @Override public void mergeData(NBTTagCompound target, NBTTagCompound loadedData) { - double intensity=target.getDouble(INTENSITY)+loadedData.getDouble(INTENSITY); - target.setDouble(INTENSITY,intensity); + double intensity = target.getDouble(INTENSITY) + loadedData.getDouble(INTENSITY); + target.setDouble(INTENSITY, intensity); } @Override @@ -37,23 +41,93 @@ public class AnomalyHandler implements ChunkMetaDataHandler { } @Override - public void tickServer(HashMap<Integer, ChunkDataHandler.ChunkHashMap> data, TickEvent.ServerTickEvent event) { - + public void tickWorld(HashMap<Integer, ChunkDataHandler.ChunkHashMap> data, TickEvent.WorldTickEvent aEvent) { + if(TecTech.RANDOM.nextInt(MEAN_DELAY)==0) { + int dim=aEvent.world.provider.dimensionId; + ArrayList<Chunk> worldDataArrayList =new ArrayList<>(1024); + data.get(dim).forEach((chunkCoordIntPair, compound) -> { + if (compound.getDouble(INTENSITY) >= SWAP_THRESHOLD) { + Chunk chunk=aEvent.world.getChunkFromChunkCoords(chunkCoordIntPair.chunkXPos,chunkCoordIntPair.chunkZPos); + if(chunk.isChunkLoaded){ + worldDataArrayList.add(chunk); + } + } + }); + if(worldDataArrayList.size()>=2) { + Chunk a = worldDataArrayList.remove(TecTech.RANDOM.nextInt(worldDataArrayList.size())); + Chunk b = worldDataArrayList.remove(TecTech.RANDOM.nextInt(worldDataArrayList.size())); + data.get(dim).get(a.getChunkCoordIntPair()).setDouble(INTENSITY,SWAP_THRESHOLD*TecTech.RANDOM.nextFloat()*0.25F); + data.get(dim).get(b.getChunkCoordIntPair()).setDouble(INTENSITY,SWAP_THRESHOLD*TecTech.RANDOM.nextFloat()*0.25F); + data.get(dim).markForTransmissionToClient(a.getChunkCoordIntPair()); + data.get(dim).markForTransmissionToClient(b.getChunkCoordIntPair()); + swapSomething(a,b); + } + } + } + + private void swapSomething(Chunk a,Chunk b){ + for(int i=0;i<128;i++){ + int x=TecTech.RANDOM.nextInt(16); + int y=TecTech.RANDOM.nextInt(a.worldObj.getActualHeight()); + int z=TecTech.RANDOM.nextInt(16); + Block aBlock=a.getBlock(x,y,z); + Block bBlock=a.getBlock(x,y,z); + int aMeta=a.getBlockMetadata(x,y,z); + int bMeta=a.getBlockMetadata(x,y,z); + if(a.getTileEntityUnsafe(x,y,z)==null&&b.getTileEntityUnsafe(x,y,z)==null){ + a.worldObj.setBlock((a.xPosition<<4)+x,y,(a.zPosition<<4)+z,bBlock,bMeta,3); + b.worldObj.setBlock((b.xPosition<<4)+x,y,(b.zPosition<<4)+z,aBlock,aMeta,3); + }else if(a.getTileEntityUnsafe(x,y,z)==null){ + a.worldObj.setBlockToAir((a.xPosition<<4)+x,y,(a.zPosition<<4)+z); + b.worldObj.setBlock((b.xPosition<<4)+x,y,(b.zPosition<<4)+z,aBlock,aMeta,3); + }else if(b.getTileEntityUnsafe(x,y,z)==null){ + a.worldObj.setBlock((a.xPosition<<4)+x,y,(a.zPosition<<4)+z,bBlock,bMeta,3); + b.worldObj.setBlockToAir((b.xPosition<<4)+x,y,(b.zPosition<<4)+z); + }else{ + a.worldObj.setBlockToAir((a.xPosition<<4)+x,y,(a.zPosition<<4)+z); + b.worldObj.setBlockToAir((b.xPosition<<4)+x,y,(b.zPosition<<4)+z); + } + } } @Override - public void tickClient(HashMap<Integer, ChunkDataHandler.ChunkHashMap> data, TickEvent.ClientTickEvent aEvent) { + public void tickServer(HashMap<Integer, ChunkDataHandler.ChunkHashMap> data, TickEvent.ServerTickEvent event) { + + } + @Override + public void tickPlayer(HashMap<Integer, ChunkDataHandler.ChunkHashMap> data, TickEvent.PlayerTickEvent aEvent) { + ChunkCoordIntPair pair=new ChunkCoordIntPair(aEvent.player.chunkCoordX,aEvent.player.chunkCoordZ); + NBTTagCompound compound=data.get(aEvent.player.worldObj.provider.dimensionId).get(pair); + if(compound!=null) { + double intensity = compound.getDouble(INTENSITY); + if (aEvent.side.isClient()) { + for (int i = 0; i < intensity / PER_PARTICLE; i++) { + TecTech.proxy.em_particle(aEvent.player.worldObj, + aEvent.player.posX - 32D + TecTech.RANDOM.nextFloat() * 64D, + aEvent.player.posY - 32D + TecTech.RANDOM.nextFloat() * 64D, + aEvent.player.posZ - 32D + TecTech.RANDOM.nextFloat() * 64D); + } + } + } + data.get(aEvent.player.worldObj.provider.dimensionId).forEach((chunkCoordIntPair, dat) -> { + for (int i = 0,pow=(int)(dat.getDouble(INTENSITY)/PER_PARTICLE); i < pow; i++) { + TecTech.proxy.em_particle(aEvent.player.worldObj, + (chunkCoordIntPair.chunkXPos<<4)+TecTech.RANDOM.nextFloat() * 48D-16D, + aEvent.player.posY+TecTech.RANDOM.nextFloat() * 128D-64D, + (chunkCoordIntPair.chunkZPos<<4)+TecTech.RANDOM.nextFloat() * 48D-16D); + } + }); } @Override public void requestData(ChunkEvent.Load aEvent) { - NetworkDispatcher.INSTANCE.sendToServer(new ChunkDataMessage.ChunkDataQuery(aEvent,this)); + NetworkDispatcher.INSTANCE.sendToServer(new ChunkDataMessage.ChunkDataQuery(aEvent, this)); } @Override public void pushData(int world, ChunkCoordIntPair chunk) { - NetworkDispatcher.INSTANCE.sendToDimension(new ChunkDataMessage.ChunkDataData(world,chunk,this),world); + NetworkDispatcher.INSTANCE.sendToDimension(new ChunkDataMessage.ChunkDataData(world, chunk, this), world); } @Override @@ -62,32 +136,25 @@ public class AnomalyHandler implements ChunkMetaDataHandler { } public void addAnomaly(IGregTechTileEntity iGregTechTileEntity, double amount) { - if(iGregTechTileEntity.isServerSide()) { + if (iGregTechTileEntity.isServerSide()) { World w = iGregTechTileEntity.getWorld(); addAnomaly(w.provider.dimensionId, - w.getChunkFromBlockCoords( - iGregTechTileEntity.getXCoord(), - iGregTechTileEntity.getZCoord()) - .getChunkCoordIntPair(), + new ChunkCoordIntPair( + iGregTechTileEntity.getXCoord() >> 4, + iGregTechTileEntity.getZCoord() >> 4), amount); } } - public void addAnomaly(int world, ChunkCoordIntPair chunk,double amount) { - NBTTagCompound old=TecTech.chunkDataHandler.getChunkData(this,world,chunk); - if(old==null){ - NBTTagCompound data=new NBTTagCompound(); - data.setDouble(INTENSITY,amount); - TecTech.chunkDataHandler.putChunkData(this,world,chunk,data); - if(amount>MIN_POLLUTION){ - - } - }else { - double newAmount=old.getDouble(INTENSITY)+amount; - old.setDouble(INTENSITY,newAmount); - if(newAmount>MIN_POLLUTION){ - - } + public void addAnomaly(int world, ChunkCoordIntPair chunk, double amount) { + NBTTagCompound old = TecTech.chunkDataHandler.getChunkData(this, world, chunk); + if (old == null) { + NBTTagCompound data = new NBTTagCompound(); + data.setDouble(INTENSITY, amount); + TecTech.chunkDataHandler.putChunkData(this, world, chunk, data); + } else { + old.setDouble(INTENSITY, old.getDouble(INTENSITY) + amount); } + TecTech.chunkDataHandler.getChunkData(this, world).markForTransmissionToClient(chunk); } } diff --git a/src/main/java/com/github/technus/tectech/recipe/TT_recipe.java b/src/main/java/com/github/technus/tectech/recipe/TT_recipe.java index b5b5dd82b9..b4dc5775d7 100644 --- a/src/main/java/com/github/technus/tectech/recipe/TT_recipe.java +++ b/src/main/java/com/github/technus/tectech/recipe/TT_recipe.java @@ -20,12 +20,12 @@ public class TT_recipe extends GT_Recipe { public final cElementalDefinitionStackMap[] input; public final cElementalDefinitionStackMap[] output; public final cElementalDefinitionStackMap[] eCatalyst; - public final AdditionalCheck additionalCheck; + public final IAdditionalCheck additionalCheck; public TT_recipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems, int[] aChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue, - cElementalDefinitionStackMap[] in, cElementalDefinitionStackMap[] out, cElementalDefinitionStackMap[] catalyst, AdditionalCheck check){ + cElementalDefinitionStackMap[] in, cElementalDefinitionStackMap[] out, cElementalDefinitionStackMap[] catalyst, IAdditionalCheck check){ super(aOptimize,aInputs,aOutputs,aSpecialItems,aChances,aFluidInputs,aFluidOutputs,aDuration,aEUt,aSpecialValue); input=in; output=out; @@ -127,7 +127,7 @@ public class TT_recipe extends GT_Recipe { return super.isRecipeInputEqual(consume, doNotCheckStackSizes, fluidStacks, itemStacks); } - public interface AdditionalCheck { + public interface IAdditionalCheck { boolean check(TT_recipe thisRecipe, boolean consume, boolean doNotCheckStackSizes, ItemStack[] itemStacks, FluidStack[] fluidStacks, cElementalInstanceStackMap[] in, cElementalInstanceStackMap[] e); boolean check(TT_recipe thisRecipe, boolean consume, boolean doNotCheckStackSizes, ItemStack[] itemStacks, FluidStack[] fluidStacks, cElementalInstanceStackMap in, cElementalInstanceStackMap[] e); } @@ -179,7 +179,7 @@ public class TT_recipe extends GT_Recipe { public TT_assLineRecipe(boolean aOptimize, ItemStack researchItem, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems, FluidStack[] aFluidInputs, int aDuration, int aEUt, int aSpecialValue, - cElementalDefinitionStackMap[] in, cElementalDefinitionStackMap[] out, cElementalDefinitionStackMap[] catalyst, AdditionalCheck check) { + cElementalDefinitionStackMap[] in, cElementalDefinitionStackMap[] out, cElementalDefinitionStackMap[] catalyst, IAdditionalCheck check) { super(aOptimize, aInputs, aOutputs, aSpecialItems, null, aFluidInputs, null, aDuration, aEUt, aSpecialValue, in, out, catalyst, check); mResearchItem=researchItem; } @@ -199,7 +199,7 @@ public class TT_recipe extends GT_Recipe { public TT_EMRecipe(boolean aOptimize, GT_Recipe scannerRecipe, iElementalDefinition researchEM, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems, FluidStack[] aFluidInputs, int aDuration, int aEUt, int aSpecialValue, - cElementalDefinitionStackMap[] in, cElementalDefinitionStackMap[] out, cElementalDefinitionStackMap[] catalyst, AdditionalCheck check) { + cElementalDefinitionStackMap[] in, cElementalDefinitionStackMap[] out, cElementalDefinitionStackMap[] catalyst, IAdditionalCheck check) { super(aOptimize, aInputs, aOutputs, aSpecialItems, null, aFluidInputs, null, aDuration, aEUt, aSpecialValue, in, out, catalyst, check); mResearchEM=researchEM; this.scannerRecipe=scannerRecipe; diff --git a/src/main/java/com/github/technus/tectech/recipe/TT_recipeAdder.java b/src/main/java/com/github/technus/tectech/recipe/TT_recipeAdder.java index 61efea1a0e..6fd4d7edaa 100644 --- a/src/main/java/com/github/technus/tectech/recipe/TT_recipeAdder.java +++ b/src/main/java/com/github/technus/tectech/recipe/TT_recipeAdder.java @@ -124,7 +124,7 @@ public class TT_recipeAdder extends GT_RecipeAdder { (boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems, int[] aChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue, - cElementalDefinitionStackMap[] in, cElementalDefinitionStackMap[] out, cElementalDefinitionStackMap[] catalyst, AdditionalCheck check) + cElementalDefinitionStackMap[] in, cElementalDefinitionStackMap[] out, cElementalDefinitionStackMap[] catalyst, IAdditionalCheck check) */ public static boolean addResearchableEMmachineRecipe( @@ -163,7 +163,7 @@ public class TT_recipeAdder extends GT_RecipeAdder { public static boolean addResearchableEMcrafterRecipe( ItemStack aResearchItem, int totalComputationRequired, int computationRequiredPerSec, int researchEUt, int researchAmperage, - cElementalDefinitionStackMap[] eInputs, cElementalDefinitionStackMap[] catalyst, TT_recipe.AdditionalCheck check, + cElementalDefinitionStackMap[] eInputs, cElementalDefinitionStackMap[] catalyst, TT_recipe.IAdditionalCheck check, ItemStack aOutput, int crafterDuration, int crafterEUt, int crafterAmperage) { if (aResearchItem==null || totalComputationRequired<=0 || aOutput == null) { return false; @@ -222,7 +222,7 @@ public class TT_recipeAdder extends GT_RecipeAdder { public static boolean addScannableEMcrafterRecipe( iElementalDefinition aResearchEM, int totalComputationRequired, int computationRequiredPerSec, int researchEUt, int researchAmperage, - cElementalDefinitionStackMap[] eInputs, cElementalDefinitionStackMap[] catalyst, TT_recipe.AdditionalCheck check, + cElementalDefinitionStackMap[] eInputs, cElementalDefinitionStackMap[] catalyst, TT_recipe.IAdditionalCheck check, ItemStack aOutput, int crafterDuration, int crafterEUt, int crafterAmperage) { if (aResearchEM==null || totalComputationRequired<=0 || aOutput == null) { return false; diff --git a/src/main/java/com/github/technus/tectech/thing/item/ConstructableTriggerItem.java b/src/main/java/com/github/technus/tectech/thing/item/ConstructableTriggerItem.java index efb9e6d644..f63f35e7f8 100644 --- a/src/main/java/com/github/technus/tectech/thing/item/ConstructableTriggerItem.java +++ b/src/main/java/com/github/technus/tectech/thing/item/ConstructableTriggerItem.java @@ -33,7 +33,7 @@ import static gregtech.api.GregTech_API.sBlockCasings1; public final class ConstructableTriggerItem extends Item { public static ConstructableTriggerItem INSTANCE; - private static HashMap<String,MultiblockInfoContainer> multiblockMap= new HashMap<>(); + private static HashMap<String, IMultiblockInfoContainer> multiblockMap= new HashMap<>(); private ConstructableTriggerItem() { setUnlocalizedName("em.constructable"); @@ -121,7 +121,7 @@ public final class ConstructableTriggerItem extends Item { INSTANCE = new ConstructableTriggerItem(); GameRegistry.registerItem(INSTANCE, INSTANCE.getUnlocalizedName()); - registerMetaClass(GT_MetaTileEntity_ElectricBlastFurnace.class, new MultiblockInfoContainer() { + registerMetaClass(GT_MetaTileEntity_ElectricBlastFurnace.class, new IMultiblockInfoContainer() { //region Structure private final String[][] shape = new String[][]{ {"000","\"\"\"","\"\"\""," . ",}, @@ -150,17 +150,17 @@ public final class ConstructableTriggerItem extends Item { }); } - public interface MultiblockInfoContainer { + public interface IMultiblockInfoContainer { void construct(int stackSize, boolean hintsOnly, TileEntity tileEntity, int aSide); @SideOnly(Side.CLIENT) String[] getDescription(int stackSize); } - public static void registerTileClass(Class<? extends TileEntity> clazz,MultiblockInfoContainer info){ + public static void registerTileClass(Class<? extends TileEntity> clazz, IMultiblockInfoContainer info){ multiblockMap.put(clazz.getCanonicalName(),info); } - public static void registerMetaClass(Class<? extends IMetaTileEntity> clazz,MultiblockInfoContainer info){ + public static void registerMetaClass(Class<? extends IMetaTileEntity> clazz, IMultiblockInfoContainer info){ multiblockMap.put(clazz.getCanonicalName(),info); } } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_annihilation.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_annihilation.java index 2ee110be4c..ece8c6ba82 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_annihilation.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_annihilation.java @@ -4,7 +4,7 @@ import com.github.technus.tectech.CommonValues; import com.github.technus.tectech.thing.block.QuantumGlassBlock; import com.github.technus.tectech.thing.metaTileEntity.IConstructable; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.HatchAdder; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IHatchAdder; import com.github.technus.tectech.thing.metaTileEntity.multi.base.render.TT_RenderedTexture; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -45,7 +45,7 @@ public class GT_MetaTileEntity_EM_annihilation extends GT_MetaTileEntity_Multibl }; private static final Block[] blockType = new Block[]{sBlockCasingsTT, sBlockCasingsTT, sBlockCasingsTT ,sBlockCasingsTT, QuantumGlassBlock.INSTANCE, sBlockCasingsTT}; private static final byte[] blockMeta = new byte[]{4, 5, 12, 6, 0, 10}; - private final HatchAdder[] addingMethods = new HatchAdder[]{this::addClassicToMachineList, this::addElementalToMachineList}; + private final IHatchAdder[] addingMethods = new IHatchAdder[]{this::addClassicToMachineList, this::addElementalToMachineList}; private static final short[] casingTextures = new short[]{textureOffset, textureOffset + 4}; private static final Block[] blockTypeFallback = new Block[]{sBlockCasingsTT, sBlockCasingsTT}; private static final byte[] blockMetaFallback = new byte[]{0, 4}; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_bhg.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_bhg.java index 7b662814a6..30ee7c4d64 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_bhg.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_bhg.java @@ -4,7 +4,7 @@ import com.github.technus.tectech.CommonValues; import com.github.technus.tectech.thing.block.QuantumGlassBlock; import com.github.technus.tectech.thing.metaTileEntity.IConstructable; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.HatchAdder; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IHatchAdder; import com.github.technus.tectech.thing.metaTileEntity.multi.base.render.TT_RenderedTexture; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -74,7 +74,7 @@ public class GT_MetaTileEntity_EM_bhg extends GT_MetaTileEntity_MultiblockBase_E }; private static final Block[] blockType = new Block[]{sBlockCasingsTT,sBlockCasingsTT,sBlockCasingsTT,sBlockCasingsTT,sBlockCasingsTT}; private static final byte[] blockMeta = new byte[]{12, 13, 14, 10, 11}; - private final HatchAdder[] addingMethods = new HatchAdder[]{this::addClassicToMachineList, this::addElementalToMachineList}; + private final IHatchAdder[] addingMethods = new IHatchAdder[]{this::addClassicToMachineList, this::addElementalToMachineList}; private static final short[] casingTextures = new short[]{textureOffset, textureOffset + 4}; private static final Block[] blockTypeFallback = new Block[]{sBlockCasingsTT, sBlockCasingsTT}; private static final byte[] blockMetaFallback = new byte[]{0, 4}; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java index b9b589c409..166ab90ff1 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_collider.java @@ -16,10 +16,10 @@ import com.github.technus.tectech.thing.casing.TT_Container_Casings; import com.github.technus.tectech.thing.metaTileEntity.IConstructable; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_InputElemental; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.HatchAdder; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IHatchAdder; import com.github.technus.tectech.thing.metaTileEntity.multi.base.Parameters; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.NameFunction; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.StatusFunction; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.INameFunction; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IStatusFunction; import com.github.technus.tectech.thing.metaTileEntity.multi.base.render.TT_RenderedTexture; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -64,16 +64,16 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB } //region collision handlers - public static final HashMap<Integer, ColliderHandler> FUSE_HANDLERS =new HashMap<>(); - public static final HashMap<String, PrimitiveColliderHandler> PRIMITIVE_FUSE_HANDLERS =new HashMap<>(); - public interface PrimitiveColliderHandler { + public static final HashMap<Integer, IColliderHandler> FUSE_HANDLERS =new HashMap<>(); + public static final HashMap<String, IPrimitiveColliderHandler> PRIMITIVE_FUSE_HANDLERS =new HashMap<>(); + public interface IPrimitiveColliderHandler { void collide(cElementalInstanceStack in1, cElementalInstanceStack in2, cElementalInstanceStackMap out); } - public interface ColliderHandler extends PrimitiveColliderHandler { + public interface IColliderHandler extends IPrimitiveColliderHandler { byte getRequiredTier(); } static { - FUSE_HANDLERS.put((dAtomDefinition.getClassTypeStatic() << 16) | dAtomDefinition.getClassTypeStatic(), new ColliderHandler() { + FUSE_HANDLERS.put((dAtomDefinition.getClassTypeStatic() << 16) | dAtomDefinition.getClassTypeStatic(), new IColliderHandler() { @Override public void collide(cElementalInstanceStack in1, cElementalInstanceStack in2, cElementalInstanceStackMap out) { try { @@ -102,7 +102,7 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB registerSimpleAtomFuse(dComplexAspectDefinition.getClassTypeStatic()); registerSimpleAtomFuse(cElementalPrimitive.getClassTypeStatic()); - FUSE_HANDLERS.put((dHadronDefinition.getClassTypeStatic() << 16) | dHadronDefinition.getClassTypeStatic(), new ColliderHandler() { + FUSE_HANDLERS.put((dHadronDefinition.getClassTypeStatic() << 16) | dHadronDefinition.getClassTypeStatic(), new IColliderHandler() { @Override public void collide(cElementalInstanceStack in1, cElementalInstanceStack in2, cElementalInstanceStackMap out) { try { @@ -127,7 +127,7 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB return 2; } }); - FUSE_HANDLERS.put((dHadronDefinition.getClassTypeStatic() << 16) | cElementalPrimitive.getClassTypeStatic(), new ColliderHandler() { + FUSE_HANDLERS.put((dHadronDefinition.getClassTypeStatic() << 16) | cElementalPrimitive.getClassTypeStatic(), new IColliderHandler() { @Override public void collide(cElementalInstanceStack in1, cElementalInstanceStack in2, cElementalInstanceStackMap out) { try { @@ -156,10 +156,10 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB registerSimpleAspectFuse(dComplexAspectDefinition.getClassTypeStatic()); registerSimpleAspectFuse(cElementalPrimitive.getClassTypeStatic()); - FUSE_HANDLERS.put((cElementalPrimitive.getClassTypeStatic() << 16) | cElementalPrimitive.getClassTypeStatic(), new ColliderHandler() { + FUSE_HANDLERS.put((cElementalPrimitive.getClassTypeStatic() << 16) | cElementalPrimitive.getClassTypeStatic(), new IColliderHandler() { @Override public void collide(cElementalInstanceStack in1, cElementalInstanceStack in2, cElementalInstanceStackMap out) { - PrimitiveColliderHandler collisionHandler= PRIMITIVE_FUSE_HANDLERS.get(in1.definition.getClass().getName()+'\0'+in2.definition.getClass().getName()); + IPrimitiveColliderHandler collisionHandler= PRIMITIVE_FUSE_HANDLERS.get(in1.definition.getClass().getName()+'\0'+in2.definition.getClass().getName()); if (collisionHandler != null) { collisionHandler.collide(in2, in1, out); } else { @@ -215,7 +215,7 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB } private static void registerSimpleAspectFuse(byte classTypeStatic) { - FUSE_HANDLERS.put((dComplexAspectDefinition.getClassTypeStatic() << 16) | classTypeStatic, new ColliderHandler() { + FUSE_HANDLERS.put((dComplexAspectDefinition.getClassTypeStatic() << 16) | classTypeStatic, new IColliderHandler() { @Override public void collide(cElementalInstanceStack in1, cElementalInstanceStack in2, cElementalInstanceStackMap out) { if (fuseAspects(in1, in2, out)) return; @@ -234,7 +234,7 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB } private static void registerSimpleAtomFuse(byte classTypeStatic) { - FUSE_HANDLERS.put((dAtomDefinition.getClassTypeStatic() << 16) | classTypeStatic, new ColliderHandler() { + FUSE_HANDLERS.put((dAtomDefinition.getClassTypeStatic() << 16) | classTypeStatic, new IColliderHandler() { @Override public void collide(cElementalInstanceStack in1, cElementalInstanceStack in2, cElementalInstanceStackMap out) { try { @@ -268,7 +268,7 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB //region parameters protected Parameters.Group.ParameterIn mode; - private static final StatusFunction<GT_MetaTileEntity_EM_collider> MODE_STATUS = (base_EM, p)->{ + private static final IStatusFunction<GT_MetaTileEntity_EM_collider> MODE_STATUS = (base_EM, p)->{ if(base_EM.isMaster()){ double mode=p.get(); if (mode == FUSE_MODE || mode == COLLIDE_MODE) { @@ -282,7 +282,7 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB } return STATUS_UNUSED; }; - private static final NameFunction<GT_MetaTileEntity_EM_collider> MODE_NAME = (base_EM, p)->{ + private static final INameFunction<GT_MetaTileEntity_EM_collider> MODE_NAME = (base_EM, p)->{ if(base_EM.isMaster()){ double mode=p.get(); if(mode==FUSE_MODE){ @@ -333,7 +333,7 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB }; private static final byte[] blockMeta1 = new byte[]{4, 7, 4, 0, 4, 8}; private static final byte[] blockMeta2 = new byte[]{4, 7, 5, 0, 6, 9}; - private final HatchAdder[] addingMethods = new HatchAdder[]{ + private final IHatchAdder[] addingMethods = new IHatchAdder[]{ this::addClassicToMachineList, this::addElementalInputToMachineList, this::addElementalOutputToMachineList, @@ -534,7 +534,7 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB //System.out.println("preMass = " + preMass); cElementalInstanceStackMap map = new cElementalInstanceStackMap(); - ColliderHandler colliderHandler; + IColliderHandler colliderHandler; if (stack2.definition.getClassType() > stack.definition.getClassType()) {//always bigger first colliderHandler = FUSE_HANDLERS.get((stack2.definition.getClassType() << 16) | stack.definition.getClassType()); if (handleRecipe(stack2, map, colliderHandler)) return 0; @@ -557,7 +557,7 @@ public class GT_MetaTileEntity_EM_collider extends GT_MetaTileEntity_MultiblockB return 0; } - private boolean handleRecipe(cElementalInstanceStack stack2, cElementalInstanceStackMap map, ColliderHandler colliderHandler) { + private boolean handleRecipe(cElementalInstanceStack stack2, cElementalInstanceStackMap map, IColliderHandler colliderHandler) { if (colliderHandler != null && eTier>= colliderHandler.getRequiredTier()) { colliderHandler.collide(stack2, stack, map); } else { diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java index cf5b3bcd80..0facf9e949 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java @@ -10,11 +10,11 @@ import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_H import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_OutputData; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_Rack; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.HatchAdder; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IHatchAdder; import com.github.technus.tectech.thing.metaTileEntity.multi.base.LedStatus; import com.github.technus.tectech.thing.metaTileEntity.multi.base.Parameters; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.NameFunction; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.StatusFunction; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.INameFunction; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IStatusFunction; import com.github.technus.tectech.thing.metaTileEntity.multi.base.render.TT_RenderedTexture; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -50,17 +50,17 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB //region parameters protected Parameters.Group.ParameterIn overclock,overvolt; protected Parameters.Group.ParameterOut maxCurrentTemp,availableData; - private static final NameFunction<GT_MetaTileEntity_EM_computer> OC_NAME = (base, p)-> "Overclock ratio"; - private static final NameFunction<GT_MetaTileEntity_EM_computer> OV_NAME = (base,p)-> "Overvoltage ratio"; - private static final NameFunction<GT_MetaTileEntity_EM_computer> MAX_TEMP_NAME = (base,p)-> "Current max. heat"; - private static final NameFunction<GT_MetaTileEntity_EM_computer> COMPUTE_NAME = (base,p)-> "Produced computation"; - private static final StatusFunction<GT_MetaTileEntity_EM_computer> OC_STATUS= + private static final INameFunction<GT_MetaTileEntity_EM_computer> OC_NAME = (base, p)-> "Overclock ratio"; + private static final INameFunction<GT_MetaTileEntity_EM_computer> OV_NAME = (base, p)-> "Overvoltage ratio"; + private static final INameFunction<GT_MetaTileEntity_EM_computer> MAX_TEMP_NAME = (base, p)-> "Current max. heat"; + private static final INameFunction<GT_MetaTileEntity_EM_computer> COMPUTE_NAME = (base, p)-> "Produced computation"; + private static final IStatusFunction<GT_MetaTileEntity_EM_computer> OC_STATUS= (base,p)->LedStatus.fromLimitsInclusiveOuterBoundary(p.get(),0,1,1,3); - private static final StatusFunction<GT_MetaTileEntity_EM_computer> OV_STATUS= + private static final IStatusFunction<GT_MetaTileEntity_EM_computer> OV_STATUS= (base,p)->LedStatus.fromLimitsInclusiveOuterBoundary(p.get(),.7,.8,1.2,2); - private static final StatusFunction<GT_MetaTileEntity_EM_computer> MAX_TEMP_STATUS= + private static final IStatusFunction<GT_MetaTileEntity_EM_computer> MAX_TEMP_STATUS= (base,p)->LedStatus.fromLimitsInclusiveOuterBoundary(p.get(),-10000,0,0,5000); - private static final StatusFunction<GT_MetaTileEntity_EM_computer> COMPUTE_STATUS=(base,p)->{ + private static final IStatusFunction<GT_MetaTileEntity_EM_computer> COMPUTE_STATUS=(base, p)->{ if(base.eAvailableData<0){ return STATUS_TOO_LOW; } @@ -80,7 +80,7 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB private static final String[][] slice = new String[][]{{"-01", "A!2", "A!2", "-01",},}; private static final Block[] blockType = new Block[]{sBlockCasingsTT, sBlockCasingsTT, sBlockCasingsTT}; private static final byte[] blockMeta = new byte[]{2, 1, 3}; - private final HatchAdder[] addingMethods = new HatchAdder[]{this::addToMachineList, this::addRackToMachineList}; + private final IHatchAdder[] addingMethods = new IHatchAdder[]{this::addToMachineList, this::addRackToMachineList}; private static final short[] casingTextures = new short[]{textureOffset + 1, textureOffset + 3}; private static final Block[] blockTypeFallback = new Block[]{sBlockCasingsTT, sBlockCasingsTT}; private static final byte[] blockMetaFallback = new byte[]{1, 3}; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_crafting.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_crafting.java index fc152140fa..a72740e84f 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_crafting.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_crafting.java @@ -4,7 +4,7 @@ import com.github.technus.tectech.CommonValues; import com.github.technus.tectech.thing.block.QuantumGlassBlock; import com.github.technus.tectech.thing.metaTileEntity.IConstructable; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.HatchAdder; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IHatchAdder; import com.github.technus.tectech.thing.metaTileEntity.multi.base.render.TT_RenderedTexture; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -46,7 +46,7 @@ public class GT_MetaTileEntity_EM_crafting extends GT_MetaTileEntity_MultiblockB }; private static final Block[] blockType = new Block[]{sBlockCasingsTT, sBlockCasingsTT, sBlockCasingsTT , QuantumGlassBlock.INSTANCE, sBlockCasingsTT, sBlockCasingsTT}; private static final byte[] blockMeta = new byte[]{4, 10, 5, 0, 6, 9}; - private final HatchAdder[] addingMethods = new HatchAdder[]{this::addClassicToMachineList, this::addElementalToMachineList}; + private final IHatchAdder[] addingMethods = new IHatchAdder[]{this::addClassicToMachineList, this::addElementalToMachineList}; private static final short[] casingTextures = new short[]{textureOffset, textureOffset + 4}; private static final Block[] blockTypeFallback = new Block[]{sBlockCasingsTT, sBlockCasingsTT}; private static final byte[] blockMetaFallback = new byte[]{0, 4}; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dataBank.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dataBank.java index 3a92ae8671..258a8719e8 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dataBank.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dataBank.java @@ -9,7 +9,7 @@ import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_H import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_Container_MultiMachineEM; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_GUIContainer_MultiMachineEM; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.HatchAdder; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IHatchAdder; import com.github.technus.tectech.thing.metaTileEntity.multi.base.render.TT_RenderedTexture; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -45,7 +45,7 @@ public class GT_MetaTileEntity_EM_dataBank extends GT_MetaTileEntity_MultiblockB }; private static final Block[] blockType = new Block[]{sBlockCasingsTT,sBlockCasingsTT}; private static final byte[] blockMeta = new byte[]{2,1}; - private final HatchAdder[] addingMethods = new HatchAdder[]{this::addClassicToMachineList,this::addDataBankHatchToMachineList}; + private final IHatchAdder[] addingMethods = new IHatchAdder[]{this::addClassicToMachineList,this::addDataBankHatchToMachineList}; private static final short[] casingTextures = new short[]{textureOffset,textureOffset+1}; private static final Block[] blockTypeFallback = new Block[]{sBlockCasingsTT,sBlockCasingsTT}; private static final byte[] blockMetaFallback = new byte[]{0,1}; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_decay.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_decay.java index 14bebc4caa..9a4b8021c1 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_decay.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_decay.java @@ -7,10 +7,10 @@ import com.github.technus.tectech.thing.metaTileEntity.IConstructable; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_InputElemental; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.HatchAdder; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IHatchAdder; import com.github.technus.tectech.thing.metaTileEntity.multi.base.Parameters; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.NameFunction; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.StatusFunction; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.INameFunction; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IStatusFunction; import com.github.technus.tectech.thing.metaTileEntity.multi.base.render.TT_RenderedTexture; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -48,8 +48,8 @@ public class GT_MetaTileEntity_EM_decay extends GT_MetaTileEntity_MultiblockBase //region parameters protected Parameters.Group.ParameterIn ampereFlow; - private static final NameFunction<GT_MetaTileEntity_EM_decay> FLOW_NAME= (base, p)->"Ampere divider"; - private static final StatusFunction<GT_MetaTileEntity_EM_decay> FLOW_STATUS= (base, p)->{ + private static final INameFunction<GT_MetaTileEntity_EM_decay> FLOW_NAME= (base, p)->"Ampere divider"; + private static final IStatusFunction<GT_MetaTileEntity_EM_decay> FLOW_STATUS= (base, p)->{ if(base.eAmpereFlow<=0){ return STATUS_TOO_LOW; } @@ -71,7 +71,7 @@ public class GT_MetaTileEntity_EM_decay extends GT_MetaTileEntity_MultiblockBase }; private static final Block[] blockType = new Block[]{sBlockCasingsTT, sBlockCasingsTT, sBlockCasingsTT ,sBlockCasingsTT}; private static final byte[] blockMeta = new byte[]{4, 5, 8, 6}; - private final HatchAdder[] addingMethods = new HatchAdder[]{this::addClassicToMachineList, this::addElementalToMachineList}; + private final IHatchAdder[] addingMethods = new IHatchAdder[]{this::addClassicToMachineList, this::addElementalToMachineList}; private static final short[] casingTextures = new short[]{textureOffset, textureOffset + 4}; private static final Block[] blockTypeFallback = new Block[]{sBlockCasingsTT, sBlockCasingsTT}; private static final byte[] blockMetaFallback = new byte[]{0, 4}; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dequantizer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dequantizer.java index a837c6a0a2..d379502540 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dequantizer.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_dequantizer.java @@ -10,7 +10,7 @@ import com.github.technus.tectech.thing.block.QuantumGlassBlock; import com.github.technus.tectech.thing.metaTileEntity.IConstructable; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_InputElemental; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.HatchAdder; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IHatchAdder; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; @@ -47,7 +47,7 @@ public class GT_MetaTileEntity_EM_dequantizer extends GT_MetaTileEntity_Multiblo }; private static final Block[] blockType = new Block[]{sBlockCasingsTT, sBlockCasingsTT, QuantumGlassBlock.INSTANCE}; private static final byte[] blockMeta = new byte[]{0, 4, 0}; - private final HatchAdder[] addingMethods = new HatchAdder[]{ + private final IHatchAdder[] addingMethods = new IHatchAdder[]{ this::addClassicToMachineList, this::addElementalInputToMachineList, this::addElementalMufflerToMachineList}; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_infuser.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_infuser.java index 54d14ded92..d0b5b4ff35 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_infuser.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_infuser.java @@ -8,7 +8,7 @@ import com.github.technus.tectech.thing.metaTileEntity.IConstructable; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_Container_MultiMachineEM; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_GUIContainer_MultiMachineEM; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.HatchAdder; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IHatchAdder; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; @@ -40,7 +40,7 @@ public class GT_MetaTileEntity_EM_infuser extends GT_MetaTileEntity_MultiblockBa }; private static final Block[] blockType = new Block[]{sBlockCasingsTT, sBlockCasingsTT}; private static final byte[] blockMeta = new byte[]{7, 4}; - private final HatchAdder[] addingMethods = new HatchAdder[]{this::addClassicToMachineList}; + private final IHatchAdder[] addingMethods = new IHatchAdder[]{this::addClassicToMachineList}; private static final short[] casingTextures = new short[]{textureOffset}; private static final Block[] blockTypeFallback = new Block[]{sBlockCasingsTT}; private static final byte[] blockMetaFallback = new byte[]{0}; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java index c1248820b3..337afd4f32 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_junction.java @@ -5,10 +5,10 @@ import com.github.technus.tectech.thing.metaTileEntity.IConstructable; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_InputElemental; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_OutputElemental; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.HatchAdder; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IHatchAdder; import com.github.technus.tectech.thing.metaTileEntity.multi.base.Parameters; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.NameFunction; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.StatusFunction; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.INameFunction; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IStatusFunction; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.util.GT_Utility; @@ -44,7 +44,7 @@ public class GT_MetaTileEntity_EM_junction extends GT_MetaTileEntity_MultiblockB }; private static final Block[] blockType = new Block[]{sBlockCasingsTT,sBlockCasingsTT}; private static final byte[] blockMeta = new byte[]{4,5}; - private final HatchAdder[] addingMethods = new HatchAdder[]{this::addClassicToMachineList, this::addElementalToMachineList}; + private final IHatchAdder[] addingMethods = new IHatchAdder[]{this::addClassicToMachineList, this::addElementalToMachineList}; private static final short[] casingTextures = new short[]{textureOffset, textureOffset + 4}; private static final Block[] blockTypeFallback = new Block[]{sBlockCasingsTT, sBlockCasingsTT}; private static final byte[] blockMetaFallback = new byte[]{0, 4}; @@ -56,9 +56,9 @@ public class GT_MetaTileEntity_EM_junction extends GT_MetaTileEntity_MultiblockB //endregion //region parameters - private static final NameFunction<GT_MetaTileEntity_EM_junction> ROUTE_NAME= + private static final INameFunction<GT_MetaTileEntity_EM_junction> ROUTE_NAME= (base,p)->(p.parameterId()==0?"Source ":"Destination ")+p.hatchId(); - private static final StatusFunction<GT_MetaTileEntity_EM_junction> SRC_STATUS = + private static final IStatusFunction<GT_MetaTileEntity_EM_junction> SRC_STATUS = (base,p)-> { double v = p.get(); if (Double.isNaN(v)) return STATUS_WRONG; @@ -68,7 +68,7 @@ public class GT_MetaTileEntity_EM_junction extends GT_MetaTileEntity_MultiblockB if (v >= base.eInputHatches.size()) return STATUS_TOO_HIGH; return STATUS_OK; }; - private static final StatusFunction<GT_MetaTileEntity_EM_junction> DST_STATUS = + private static final IStatusFunction<GT_MetaTileEntity_EM_junction> DST_STATUS = (base,p)->{ if(base.src[p.hatchId()].getStatus(false)== STATUS_OK){ double v = p.get(); diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java index d34acd1534..1d3d40666f 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_quantizer.java @@ -13,7 +13,7 @@ import com.github.technus.tectech.mechanics.elementalMatter.core.transformations import com.github.technus.tectech.thing.block.QuantumGlassBlock; import com.github.technus.tectech.thing.metaTileEntity.IConstructable; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.HatchAdder; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IHatchAdder; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; @@ -53,7 +53,7 @@ public class GT_MetaTileEntity_EM_quantizer extends GT_MetaTileEntity_Multiblock }; private static final Block[] blockType = new Block[]{sBlockCasingsTT, sBlockCasingsTT, QuantumGlassBlock.INSTANCE}; private static final byte[] blockMeta = new byte[]{4, 0, 0}; - private final HatchAdder[] addingMethods = new HatchAdder[]{ + private final IHatchAdder[] addingMethods = new IHatchAdder[]{ this::addClassicToMachineList, this::addElementalOutputToMachineList, this::addElementalMufflerToMachineList}; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java index e74cef7a34..11be32f9a5 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java @@ -6,7 +6,7 @@ import com.github.technus.tectech.thing.metaTileEntity.IConstructable; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_Holder; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.HatchAdder; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IHatchAdder; import com.github.technus.tectech.thing.metaTileEntity.multi.base.render.TT_RenderedTexture; import cpw.mods.fml.common.registry.GameRegistry; import gregtech.api.enums.ItemList; @@ -66,7 +66,7 @@ public class GT_MetaTileEntity_EM_research extends GT_MetaTileEntity_MultiblockB }; private static final Block[] blockType = new Block[]{sBlockCasingsTT, sBlockCasingsTT, sBlockCasingsTT}; private static final byte[] blockMeta = new byte[]{1, 3, 2}; - private final HatchAdder[] addingMethods = new HatchAdder[]{this::addClassicToMachineList, this::addHolderToMachineList}; + private final IHatchAdder[] addingMethods = new IHatchAdder[]{this::addClassicToMachineList, this::addHolderToMachineList}; private static final short[] casingTextures = new short[]{textureOffset + 1, textureOffset + 3}; private static final Block[] blockTypeFallback = new Block[]{sBlockCasingsTT, Blocks.air}; private static final byte[] blockMetaFallback = new byte[]{1, 0}; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java index 33de4aa1cc..96132a889e 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_scanner.java @@ -14,11 +14,11 @@ import com.github.technus.tectech.thing.item.ElementalDefinitionScanStorage_EM; import com.github.technus.tectech.thing.metaTileEntity.IConstructable; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.HatchAdder; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IHatchAdder; import com.github.technus.tectech.thing.metaTileEntity.multi.base.LedStatus; import com.github.technus.tectech.thing.metaTileEntity.multi.base.Parameters; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.NameFunction; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.StatusFunction; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.INameFunction; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IStatusFunction; import gregtech.api.enums.ItemList; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -63,9 +63,9 @@ public class GT_MetaTileEntity_EM_scanner extends GT_MetaTileEntity_MultiblockBa private int[] scanComplexity; //region parameters - private static final NameFunction<GT_MetaTileEntity_EM_scanner> CONFIG_NAME= + private static final INameFunction<GT_MetaTileEntity_EM_scanner> CONFIG_NAME= (base,p)->"Config at Depth: "+(p.hatchId()*2+p.parameterId()); - private static final StatusFunction<GT_MetaTileEntity_EM_scanner> CONFIG_STATUS= + private static final IStatusFunction<GT_MetaTileEntity_EM_scanner> CONFIG_STATUS= (base,p)->{ double v=p.get(); if(Double.isNaN(v)){ @@ -93,7 +93,7 @@ public class GT_MetaTileEntity_EM_scanner extends GT_MetaTileEntity_MultiblockBa }; private static final Block[] blockType = new Block[]{sBlockCasingsTT, QuantumGlassBlock.INSTANCE, sBlockCasingsTT}; private static final byte[] blockMeta = new byte[]{4, 0, 0}; - private final HatchAdder[] addingMethods = new HatchAdder[]{ + private final IHatchAdder[] addingMethods = new IHatchAdder[]{ this::addClassicToMachineList, this::addElementalInputToMachineList, this::addElementalOutputToMachineList, diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_stabilizer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_stabilizer.java index 2386619e7e..30794ca47e 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_stabilizer.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_stabilizer.java @@ -4,7 +4,7 @@ import com.github.technus.tectech.CommonValues; import com.github.technus.tectech.thing.block.QuantumGlassBlock; import com.github.technus.tectech.thing.metaTileEntity.IConstructable; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.HatchAdder; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IHatchAdder; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.block.Block; @@ -29,7 +29,7 @@ public class GT_MetaTileEntity_EM_stabilizer extends GT_MetaTileEntity_Multibloc }; private static final Block[] blockType = new Block[]{sBlockCasingsTT, QuantumGlassBlock.INSTANCE, sBlockCasingsTT ,sBlockCasingsTT, sBlockCasingsTT}; private static final byte[] blockMeta = new byte[]{4, 0, 5, 6, 9}; - private final HatchAdder[] addingMethods = new HatchAdder[]{this::addClassicToMachineList, this::addElementalToMachineList}; + private final IHatchAdder[] addingMethods = new IHatchAdder[]{this::addClassicToMachineList, this::addElementalToMachineList}; private static final short[] casingTextures = new short[]{textureOffset, textureOffset + 4}; private static final Block[] blockTypeFallback = new Block[]{sBlockCasingsTT, sBlockCasingsTT}; private static final byte[] blockMetaFallback = new byte[]{0, 4}; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_switch.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_switch.java index 276d0f2f74..1c5d1bccdd 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_switch.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_switch.java @@ -8,10 +8,10 @@ import com.github.technus.tectech.thing.metaTileEntity.IConstructable; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_InputData; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_OutputData; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.HatchAdder; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IHatchAdder; import com.github.technus.tectech.thing.metaTileEntity.multi.base.Parameters; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.NameFunction; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.StatusFunction; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.INameFunction; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IStatusFunction; import com.github.technus.tectech.thing.metaTileEntity.multi.base.render.TT_RenderedTexture; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -43,7 +43,7 @@ public class GT_MetaTileEntity_EM_switch extends GT_MetaTileEntity_MultiblockBas }; private static final Block[] blockType = new Block[]{sBlockCasingsTT}; private static final byte[] blockMeta = new byte[]{3}; - private final HatchAdder[] addingMethods = new HatchAdder[]{this::addClassicToMachineList}; + private final IHatchAdder[] addingMethods = new IHatchAdder[]{this::addClassicToMachineList}; private static final short[] casingTextures = new short[]{textureOffset+1}; private static final Block[] blockTypeFallback = new Block[]{sBlockCasingsTT}; private static final byte[] blockMetaFallback = new byte[]{1}; @@ -54,9 +54,9 @@ public class GT_MetaTileEntity_EM_switch extends GT_MetaTileEntity_MultiblockBas //endregion //region parameters - private static final NameFunction<GT_MetaTileEntity_EM_switch> ROUTE_NAME= + private static final INameFunction<GT_MetaTileEntity_EM_switch> ROUTE_NAME= (base,p)->(p.parameterId()==0?"Destination ":"Weight ")+p.hatchId(); - private static final StatusFunction<GT_MetaTileEntity_EM_switch> WEI_STATUS = + private static final IStatusFunction<GT_MetaTileEntity_EM_switch> WEI_STATUS = (base,p)-> { double v=p.get(); if (Double.isNaN(v)) return STATUS_WRONG; @@ -65,7 +65,7 @@ public class GT_MetaTileEntity_EM_switch extends GT_MetaTileEntity_MultiblockBas if(Double.isInfinite(v)) return STATUS_HIGH; return STATUS_OK; }; - private static final StatusFunction<GT_MetaTileEntity_EM_switch> DST_STATUS = + private static final IStatusFunction<GT_MetaTileEntity_EM_switch> DST_STATUS = (base,p)->{ if(base.weight[p.hatchId()].getStatus(false).isOk) { double v = p.get(); diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_transformer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_transformer.java index 65f2301e41..e384a8d7e2 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_transformer.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_transformer.java @@ -6,7 +6,7 @@ import com.github.technus.tectech.thing.metaTileEntity.IConstructable; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_Container_MultiMachineEM; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_GUIContainer_MultiMachineEM; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.HatchAdder; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IHatchAdder; import com.github.technus.tectech.thing.metaTileEntity.multi.base.render.TT_RenderedTexture; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -38,7 +38,7 @@ public class GT_MetaTileEntity_EM_transformer extends GT_MetaTileEntity_Multiblo }; private static final Block[] blockType = new Block[]{sBlockCasings1}; private static final byte[] blockMeta = new byte[]{15}; - private final HatchAdder[] addingMethods = new HatchAdder[]{this::addEnergyIOToMachineList}; + private final IHatchAdder[] addingMethods = new IHatchAdder[]{this::addEnergyIOToMachineList}; private static final short[] casingTextures = new short[]{textureOffset}; private static final Block[] blockTypeFallback = new Block[]{sBlockCasingsTT}; private static final byte[] blockMetaFallback = new byte[]{0}; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_wormhole.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_wormhole.java index 50070972ca..7f69f459f9 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_wormhole.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_wormhole.java @@ -4,7 +4,7 @@ import com.github.technus.tectech.CommonValues; import com.github.technus.tectech.thing.block.QuantumGlassBlock; import com.github.technus.tectech.thing.metaTileEntity.IConstructable; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.HatchAdder; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IHatchAdder; import com.github.technus.tectech.thing.metaTileEntity.multi.base.render.TT_RenderedTexture; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -46,7 +46,7 @@ public class GT_MetaTileEntity_EM_wormhole extends GT_MetaTileEntity_MultiblockB }; private static final Block[] blockType = new Block[]{sBlockCasingsTT, sBlockCasingsTT, QuantumGlassBlock.INSTANCE ,sBlockCasingsTT, sBlockCasingsTT}; private static final byte[] blockMeta = new byte[]{12, 10, 0, 5, 11}; - private final HatchAdder[] addingMethods = new HatchAdder[]{this::addClassicToMachineList, this::addElementalToMachineList}; + private final IHatchAdder[] addingMethods = new IHatchAdder[]{this::addClassicToMachineList, this::addElementalToMachineList}; private static final short[] casingTextures = new short[]{textureOffset, textureOffset + 4}; private static final Block[] blockTypeFallback = new Block[]{sBlockCasingsTT, sBlockCasingsTT}; private static final byte[] blockMetaFallback = new byte[]{0, 4}; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_microwave.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_microwave.java index 7cb6bbab53..520dbf94fa 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_microwave.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_microwave.java @@ -46,7 +46,7 @@ public class GT_MetaTileEntity_TM_microwave extends GT_MetaTileEntity_Multiblock private static final Block[] blockType = new Block[]{sBlockCasings4}; private static final byte[] blockMeta = new byte[]{1}; - private final HatchAdder[] addingMethods = new HatchAdder[]{this::addClassicToMachineList}; + private final IHatchAdder[] addingMethods = new IHatchAdder[]{this::addClassicToMachineList}; private static final short[] casingTextures = new short[]{49}; private static final Block[] blockTypeFallback = new Block[]{sBlockCasings4}; private static final byte[] blockMetaFallback = new byte[]{1}; @@ -60,13 +60,13 @@ public class GT_MetaTileEntity_TM_microwave extends GT_MetaTileEntity_Multiblock //region parameters protected Parameters.Group.ParameterIn powerSetting,timerSetting; protected Parameters.Group.ParameterOut timerValue,remainingTime; - private static final NameFunction<GT_MetaTileEntity_TM_microwave> POWER_NAME = (base, p)-> "Power setting"; - private static final NameFunction<GT_MetaTileEntity_TM_microwave> TIMER_SETTING_NAME = (base, p)-> "Timer setting"; - private static final NameFunction<GT_MetaTileEntity_TM_microwave> TIMER_REMAINING_NAME = (base, p)-> "Timer remaining"; - private static final NameFunction<GT_MetaTileEntity_TM_microwave> TIMER_VALUE_NAME = (base,p)-> "Timer value"; - private static final StatusFunction<GT_MetaTileEntity_TM_microwave> POWER_STATUS= + private static final INameFunction<GT_MetaTileEntity_TM_microwave> POWER_NAME = (base, p)-> "Power setting"; + private static final INameFunction<GT_MetaTileEntity_TM_microwave> TIMER_SETTING_NAME = (base, p)-> "Timer setting"; + private static final INameFunction<GT_MetaTileEntity_TM_microwave> TIMER_REMAINING_NAME = (base, p)-> "Timer remaining"; + private static final INameFunction<GT_MetaTileEntity_TM_microwave> TIMER_VALUE_NAME = (base, p)-> "Timer value"; + private static final IStatusFunction<GT_MetaTileEntity_TM_microwave> POWER_STATUS= (base,p)-> LedStatus.fromLimitsInclusiveOuterBoundary(p.get(),300,1000,1000,Double.POSITIVE_INFINITY); - private static final StatusFunction<GT_MetaTileEntity_TM_microwave> TIMER_STATUS=(base,p)->{ + private static final IStatusFunction<GT_MetaTileEntity_TM_microwave> TIMER_STATUS=(base, p)->{ double value=p.get(); if(Double.isNaN(value)) return STATUS_WRONG; value=(int)value; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java index f62951bf48..bbef798982 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java @@ -6,7 +6,7 @@ import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_H import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_DynamoMulti; import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti; import com.github.technus.tectech.thing.metaTileEntity.multi.base.GT_MetaTileEntity_MultiblockBase_EM; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.HatchAdder; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IHatchAdder; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.enums.Textures; @@ -88,7 +88,7 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock private static final byte[] blockMetaT1 = new byte[]{15, 1, 13, 0}; private static final byte[] blockMetaT2 = new byte[]{15, 2, 13, 0}; private static final byte[][] blockMetas = new byte[][]{blockMetaT0,blockMetaT1,blockMetaT2}; - private final HatchAdder[] addingMethods = new HatchAdder[]{this::addCapacitorToMachineList, this::addFrameToMachineList}; + private final IHatchAdder[] addingMethods = new IHatchAdder[]{this::addCapacitorToMachineList, this::addFrameToMachineList}; private static final short[] casingTextures = new short[]{29, 0}; private static final Block[] blockTypeFallback = new Block[]{sBlockCasings2, null}; private static final byte[] blockMetaFallback = new byte[]{13, 0}; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java index 10bad33830..2ba49d0849 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java @@ -363,7 +363,7 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt String[][] structure,//0-9 casing, +- air no air, a-z ignore Block[] blockType,//use numbers 0-9 for casing types byte[] blockMeta,//use numbers 0-9 for casing types - HatchAdder[] addingMethods, + IHatchAdder[] addingMethods, short[] casingTextures, Block[] blockTypeFallback,//use numbers 0-9 for casing types byte[] blockMetaFallback,//use numbers 0-9 for casing types diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/HatchAdder.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/IHatchAdder.java index 177f8b2cfb..b695472012 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/HatchAdder.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/IHatchAdder.java @@ -3,6 +3,6 @@ package com.github.technus.tectech.thing.metaTileEntity.multi.base; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -public interface HatchAdder{ +public interface IHatchAdder { Boolean apply(IGregTechTileEntity iGregTechTileEntity, Short aShort); } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/NameFunction.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/INameFunction.java index a296600abf..1c2a8bd477 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/NameFunction.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/INameFunction.java @@ -1,5 +1,5 @@ package com.github.technus.tectech.thing.metaTileEntity.multi.base; -public interface NameFunction<T extends GT_MetaTileEntity_MultiblockBase_EM>{ +public interface INameFunction<T extends GT_MetaTileEntity_MultiblockBase_EM>{ String apply(T t, Parameters.IParameter iParameter); } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/StatusFunction.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/IStatusFunction.java index e285c75344..0c7616093a 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/StatusFunction.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/IStatusFunction.java @@ -1,5 +1,5 @@ package com.github.technus.tectech.thing.metaTileEntity.multi.base; -public interface StatusFunction<T extends GT_MetaTileEntity_MultiblockBase_EM>{ +public interface IStatusFunction<T extends GT_MetaTileEntity_MultiblockBase_EM>{ LedStatus apply(T t, Parameters.IParameter iParameter); } diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/Parameters.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/Parameters.java index 1ecb17891e..23250a5b02 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/Parameters.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/Parameters.java @@ -6,8 +6,8 @@ import java.util.ArrayList; * Instantiate parameters as field in parametersInstantiation_EM(); */ public class Parameters { - private static final StatusFunction LED_STATUS_FUNCTION_DEFAULT = (b,p)->LedStatus.STATUS_UNDEFINED; - private static final NameFunction NAME_FUNCTION_DEFAULT= (b,p)->"Undefined"; + private static final IStatusFunction LED_STATUS_FUNCTION_DEFAULT = (b, p)->LedStatus.STATUS_UNDEFINED; + private static final INameFunction NAME_FUNCTION_DEFAULT= (b, p)->"Undefined"; final Group[] groups = new Group[10]; @@ -140,11 +140,11 @@ public class Parameters { groups[hatchNo]=this; } - public ParameterIn makeInParameter(int paramID, double defaultValue, NameFunction name, StatusFunction status){ + public ParameterIn makeInParameter(int paramID, double defaultValue, INameFunction name, IStatusFunction status){ return new ParameterIn(paramID, defaultValue,name, status); } - public ParameterOut makeOutParameter(int paramID, double defaultValue, NameFunction name, StatusFunction status){ + public ParameterOut makeOutParameter(int paramID, double defaultValue, INameFunction name, IStatusFunction status){ return new ParameterOut(paramID, defaultValue, name, status); } @@ -181,10 +181,10 @@ public class Parameters { public class ParameterOut implements IParameter { public final int id; public final double defaultValue; - StatusFunction status; - NameFunction name; + IStatusFunction status; + INameFunction name; - private ParameterOut(int paramID, double defaultValue, NameFunction name, StatusFunction status){ + private ParameterOut(int paramID, double defaultValue, INameFunction name, IStatusFunction status){ this.name= name==null?NAME_FUNCTION_DEFAULT:name; if(paramID<0 || paramID>2){ throw new IllegalArgumentException("Parameter id must be in 0 to 1 range"); @@ -258,10 +258,10 @@ public class Parameters { public class ParameterIn implements IParameter { public final int id; public final double defaultValue; - StatusFunction status; - NameFunction name; + IStatusFunction status; + INameFunction name; - private ParameterIn(int paramID, double defaultValue, NameFunction name, StatusFunction status){ + private ParameterIn(int paramID, double defaultValue, INameFunction name, IStatusFunction status){ this.name= name==null?NAME_FUNCTION_DEFAULT:name; this.id=hatchNo+10*paramID; if(paramID<0 || paramID>2){ diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Centrifuge.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Centrifuge.java index 5f072b3196..56f535f32a 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Centrifuge.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Centrifuge.java @@ -5,9 +5,9 @@ import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInsta import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalInstanceStack; import com.github.technus.tectech.mechanics.elementalMatter.definitions.complex.atom.dAtomDefinition; import com.github.technus.tectech.thing.metaTileEntity.multi.base.MultiblockControl; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.NameFunction; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.INameFunction; import com.github.technus.tectech.thing.metaTileEntity.multi.base.Parameters; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.StatusFunction; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IStatusFunction; import java.util.Arrays; @@ -18,12 +18,12 @@ import static com.github.technus.tectech.thing.metaTileEntity.multi.base.LedStat /** * Created by danie_000 on 24.12.2017. */ -public class Behaviour_Centrifuge implements GT_MetaTileEntity_EM_machine.Behaviour { +public class Behaviour_Centrifuge implements GT_MetaTileEntity_EM_machine.IBehaviour { private final byte tier; private float radius, maxRPM, maxRCF, maxForce, maxCapacity; private Parameters.Group.ParameterIn settingRPM, settingFraction; - private final static NameFunction<GT_MetaTileEntity_EM_machine> rpmName= (gt_metaTileEntity_em_machine, iParameter) -> "RPM Setting"; - private final StatusFunction<GT_MetaTileEntity_EM_machine> rpmStatus= (gt_metaTileEntity_em_machine, iParameter) -> { + private final static INameFunction<GT_MetaTileEntity_EM_machine> rpmName= (gt_metaTileEntity_em_machine, iParameter) -> "RPM Setting"; + private final IStatusFunction<GT_MetaTileEntity_EM_machine> rpmStatus= (gt_metaTileEntity_em_machine, iParameter) -> { double v=iParameter.get(); if(Double.isNaN(v)){ return STATUS_WRONG; @@ -35,8 +35,8 @@ public class Behaviour_Centrifuge implements GT_MetaTileEntity_EM_machine.Behavi } return STATUS_OK; }; - private final static NameFunction<GT_MetaTileEntity_EM_machine> fractionName= (gt_metaTileEntity_em_machine, iParameter) -> "Fraction Count"; - private static final StatusFunction<GT_MetaTileEntity_EM_machine> fractionStatus= (gt_metaTileEntity_em_machine, iParameter) -> { + private final static INameFunction<GT_MetaTileEntity_EM_machine> fractionName= (gt_metaTileEntity_em_machine, iParameter) -> "Fraction Count"; + private static final IStatusFunction<GT_MetaTileEntity_EM_machine> fractionStatus= (gt_metaTileEntity_em_machine, iParameter) -> { double v=iParameter.get(); if(Double.isNaN(v)){ return STATUS_WRONG; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Electrolyzer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Electrolyzer.java index 42b41a5ae3..df21feb9f2 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Electrolyzer.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Electrolyzer.java @@ -7,7 +7,7 @@ import com.github.technus.tectech.thing.metaTileEntity.multi.base.Parameters; /** * Created by danie_000 on 24.12.2017. */ -public class Behaviour_Electrolyzer implements GT_MetaTileEntity_EM_machine.Behaviour { +public class Behaviour_Electrolyzer implements GT_MetaTileEntity_EM_machine.IBehaviour { final int tier; public Behaviour_Electrolyzer(int tier){ this.tier=tier; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_ElectromagneticSeparator.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_ElectromagneticSeparator.java index d2b08f0960..6d95900af0 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_ElectromagneticSeparator.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_ElectromagneticSeparator.java @@ -5,9 +5,9 @@ import com.github.technus.tectech.mechanics.elementalMatter.core.cElementalInsta import com.github.technus.tectech.mechanics.elementalMatter.core.stacks.cElementalInstanceStack; import com.github.technus.tectech.mechanics.elementalMatter.definitions.complex.atom.dAtomDefinition; import com.github.technus.tectech.thing.metaTileEntity.multi.base.MultiblockControl; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.NameFunction; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.INameFunction; import com.github.technus.tectech.thing.metaTileEntity.multi.base.Parameters; -import com.github.technus.tectech.thing.metaTileEntity.multi.base.StatusFunction; +import com.github.technus.tectech.thing.metaTileEntity.multi.base.IStatusFunction; import static com.github.technus.tectech.CommonValues.V; import static com.github.technus.tectech.thing.metaTileEntity.multi.base.LedStatus.*; @@ -15,7 +15,7 @@ import static com.github.technus.tectech.thing.metaTileEntity.multi.base.LedStat /** * Created by danie_000 on 24.12.2017. */ -public class Behaviour_ElectromagneticSeparator implements GT_MetaTileEntity_EM_machine.Behaviour { +public class Behaviour_ElectromagneticSeparator implements GT_MetaTileEntity_EM_machine.IBehaviour { private final byte tier; private int ticks; private byte precisionFull,precisionMinimal; @@ -23,8 +23,8 @@ public class Behaviour_ElectromagneticSeparator implements GT_MetaTileEntity_EM_ private long maxCharge; private int offsetMax; private Parameters.Group.ParameterIn fullSetting,minimalSetting,offsetSetting; - private final static NameFunction<GT_MetaTileEntity_EM_machine> fullName= (gt_metaTileEntity_em_machine, iParameter) -> "Full Precision Input [e/3]"; - private final StatusFunction<GT_MetaTileEntity_EM_machine> fullStatus= (gt_metaTileEntity_em_machine, iParameter) -> { + private final static INameFunction<GT_MetaTileEntity_EM_machine> fullName= (gt_metaTileEntity_em_machine, iParameter) -> "Full Precision Input [e/3]"; + private final IStatusFunction<GT_MetaTileEntity_EM_machine> fullStatus= (gt_metaTileEntity_em_machine, iParameter) -> { double v=iParameter.get(); if(Double.isNaN(v)){ return STATUS_WRONG; @@ -39,8 +39,8 @@ public class Behaviour_ElectromagneticSeparator implements GT_MetaTileEntity_EM_ } return STATUS_OK; }; - private final static NameFunction<GT_MetaTileEntity_EM_machine> minimalName= (gt_metaTileEntity_em_machine, iParameter) -> "Minimal Precision Input [e/3]"; - private final StatusFunction<GT_MetaTileEntity_EM_machine> minimalStatus= (gt_metaTileEntity_em_machine, iParameter) -> { + private final static INameFunction<GT_MetaTileEntity_EM_machine> minimalName= (gt_metaTileEntity_em_machine, iParameter) -> "Minimal Precision Input [e/3]"; + private final IStatusFunction<GT_MetaTileEntity_EM_machine> minimalStatus= (gt_metaTileEntity_em_machine, iParameter) -> { double minimal=iParameter.get(); double full=fullSetting.get(); if(Double.isInfinite(minimal) && minimal>0) { @@ -63,8 +63,8 @@ public class Behaviour_ElectromagneticSeparator implements GT_MetaTileEntity_EM_ return STATUS_WRONG; } }; - private final static NameFunction<GT_MetaTileEntity_EM_machine> offsetName= (gt_metaTileEntity_em_machine, iParameter) -> "Offset Input [e/3]"; - private final StatusFunction<GT_MetaTileEntity_EM_machine> offsetStatus= (gt_metaTileEntity_em_machine, iParameter) -> { + private final static INameFunction<GT_MetaTileEntity_EM_machine> offsetName= (gt_metaTileEntity_em_machine, iParameter) -> "Offset Input [e/3]"; + private final IStatusFunction<GT_MetaTileEntity_EM_machine> offsetStatus= (gt_metaTileEntity_em_machine, iParameter) -> { double offset=iParameter.get(); if(offset>offsetMax){ return STATUS_TOO_HIGH; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_PrecisionLaser.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_PrecisionLaser.java index 02ddecbdc6..cd6f637d61 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_PrecisionLaser.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_PrecisionLaser.java @@ -7,7 +7,7 @@ import com.github.technus.tectech.thing.metaTileEntity.multi.base.Parameters; /** * Created by danie_000 on 24.12.2017. */ -public class Behaviour_PrecisionLaser implements GT_MetaTileEntity_EM_machine.Behaviour { +public class Behaviour_PrecisionLaser implements GT_MetaTileEntity_EM_machine.IBehaviour { final int tier; public Behaviour_PrecisionLaser(int tier){ this.tier=tier; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Recycler.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Recycler.java index f94ff3f326..6742f99e99 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Recycler.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Recycler.java @@ -9,7 +9,7 @@ import static com.github.technus.tectech.CommonValues.V; /** * Created by danie_000 on 24.12.2017. */ -public class Behaviour_Recycler implements GT_MetaTileEntity_EM_machine.Behaviour { +public class Behaviour_Recycler implements GT_MetaTileEntity_EM_machine.IBehaviour { private final int tier; private final float coeff; public Behaviour_Recycler(int tier){ diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Scanner.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Scanner.java index 627f713a22..95bb8dce40 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Scanner.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/Behaviour_Scanner.java @@ -7,7 +7,7 @@ import com.github.technus.tectech.thing.metaTileEntity.multi.base.Parameters; /** * Created by danie_000 on 24.12.2017. */ -public class Behaviour_Scanner implements GT_MetaTileEntity_EM_machine.Behaviour { +public class Behaviour_Scanner implements GT_MetaTileEntity_EM_machine.IBehaviour { final int tier; public Behaviour_Scanner(int tier){ this.tier=tier; diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/GT_MetaTileEntity_EM_machine.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/GT_MetaTileEntity_EM_machine.java index 197347f891..39871910d9 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/GT_MetaTileEntity_EM_machine.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/em_machine/GT_MetaTileEntity_EM_machine.java @@ -33,7 +33,7 @@ public class GT_MetaTileEntity_EM_machine extends GT_MetaTileEntity_MultiblockBa public static final String machine = "EM Machinery"; private ItemStack loadedMachine; - private Behaviour currentBehaviour; + private IBehaviour currentBehaviour; //region structure private static final String[][] shape = new String[][]{ @@ -46,7 +46,7 @@ public class GT_MetaTileEntity_EM_machine extends GT_MetaTileEntity_MultiblockBa {"B0", "A!!!", "0!!!0", "A!!!", "B0",},}; private static final Block[] blockType = new Block[]{sBlockCasingsTT, QuantumGlassBlock.INSTANCE, sBlockCasingsTT, sBlockCasingsTT}; private static final byte[] blockMeta = new byte[]{4, 0, 5, 6}; - private final HatchAdder[] addingMethods = new HatchAdder[]{this::addClassicToMachineList,this::addElementalToMachineList}; + private final IHatchAdder[] addingMethods = new IHatchAdder[]{this::addClassicToMachineList,this::addElementalToMachineList}; private static final short[] casingTextures = new short[]{textureOffset, textureOffset + 4}; private static final Block[] blockTypeFallback = new Block[]{sBlockCasingsTT, sBlockCasingsTT}; private static final byte[] blockMetaFallback = new byte[]{0, 4}; @@ -59,7 +59,7 @@ public class GT_MetaTileEntity_EM_machine extends GT_MetaTileEntity_MultiblockBa //region parameters protected Parameters.Group.ParameterIn[] inputMux; protected Parameters.Group.ParameterIn[] outputMux; - private static final StatusFunction<GT_MetaTileEntity_EM_machine> SRC_STATUS = + private static final IStatusFunction<GT_MetaTileEntity_EM_machine> SRC_STATUS = (base,p)-> { double v = p.get(); if (Double.isNaN(v)) return STATUS_WRONG; @@ -69,7 +69,7 @@ public class GT_MetaTileEntity_EM_machine extends GT_MetaTileEntity_MultiblockBa if (v >= base.eInputHatches.size()) return STATUS_TOO_HIGH; return STATUS_OK; }; - private static final StatusFunction<GT_MetaTileEntity_EM_machine> DST_STATUS = + private static final IStatusFunction<GT_MetaTileEntity_EM_machine> DST_STATUS = (base,p)->{ if(base.inputMux[p.hatchId()].getStatus(false)== STATUS_OK){ double v = p.get(); @@ -82,7 +82,7 @@ public class GT_MetaTileEntity_EM_machine extends GT_MetaTileEntity_MultiblockBa } return STATUS_NEUTRAL; }; - private static final NameFunction<GT_MetaTileEntity_EM_machine> ROUTE_NAME= + private static final INameFunction<GT_MetaTileEntity_EM_machine> ROUTE_NAME= (base,p)->(p.parameterId()==0?"Source ":"Destination ")+p.hatchId(); //endregion @@ -275,7 +275,7 @@ public class GT_MetaTileEntity_EM_machine extends GT_MetaTileEntity_MultiblockBa return false; } loadedMachine=newMachine; - Supplier<Behaviour> behaviourSupplier=GT_MetaTileEntity_EM_machine.BEHAVIOUR_MAP.get(new Util.ItemStack_NoNBT(newMachine)); + Supplier<IBehaviour> behaviourSupplier=GT_MetaTileEntity_EM_machine.BEHAVIOUR_MAP.get(new Util.ItemStack_NoNBT(newMachine)); if(currentBehaviour==null && behaviourSupplier==null) { return false; } @@ -297,14 +297,14 @@ public class GT_MetaTileEntity_EM_machine extends GT_MetaTileEntity_MultiblockBa return true; } - private static final HashMap<Util.ItemStack_NoNBT, Supplier<Behaviour>> BEHAVIOUR_MAP = new HashMap<>(); + private static final HashMap<Util.ItemStack_NoNBT, Supplier<IBehaviour>> BEHAVIOUR_MAP = new HashMap<>(); - public static void registerBehaviour(Supplier<Behaviour> behaviour, ItemStack is) { + public static void registerBehaviour(Supplier<IBehaviour> behaviour, ItemStack is) { BEHAVIOUR_MAP.put(new Util.ItemStack_NoNBT(is), behaviour); TecTech.LOGGER.info("Registered EM machine behaviour "+behaviour.get().getClass().getSimpleName()+' '+new Util.ItemStack_NoNBT(is).toString()); } - public interface Behaviour { + public interface IBehaviour { /** * instantiate parameters, u can also check machine tier here * @param te diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_DataReader.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_DataReader.java index 6aa742846b..86dd48a877 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_DataReader.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/GT_MetaTileEntity_DataReader.java @@ -37,7 +37,7 @@ import static com.github.technus.tectech.Reference.MODID; * Created by Tec on 23.03.2017. */ public class GT_MetaTileEntity_DataReader extends GT_MetaTileEntity_BasicMachine { - private static final HashMap<Util.ItemStack_NoNBT,ArrayList<DataRender>> RENDER_REGISTRY =new HashMap<>(); + private static final HashMap<Util.ItemStack_NoNBT,ArrayList<IDataRender>> RENDER_REGISTRY =new HashMap<>(); private static GT_RenderedTexture READER_ONLINE, READER_OFFLINE; public GT_MetaTileEntity_DataReader(int aID, String aName, String aNameRegional, int aTier) { @@ -90,8 +90,8 @@ public class GT_MetaTileEntity_DataReader extends GT_MetaTileEntity_BasicMachine return DID_NOT_FIND_RECIPE; } ItemStack input=getInputAt(0); - ArrayList<DataRender> renders=getRenders(new Util.ItemStack_NoNBT(input)); - for(DataRender render:renders){ + ArrayList<IDataRender> renders=getRenders(new Util.ItemStack_NoNBT(input)); + for(IDataRender render:renders){ if(render.canRender(input,mTier)){ mOutputItems[0]=input.copy(); input.stackSize-=1; @@ -174,19 +174,19 @@ public class GT_MetaTileEntity_DataReader extends GT_MetaTileEntity_BasicMachine return maxEUInput()*4L; } - public static void addDataRender(Util.ItemStack_NoNBT stack, DataRender render){ - ArrayList<DataRender> renders = RENDER_REGISTRY.computeIfAbsent(stack, k -> new ArrayList<>()); + public static void addDataRender(Util.ItemStack_NoNBT stack, IDataRender render){ + ArrayList<IDataRender> renders = RENDER_REGISTRY.computeIfAbsent(stack, k -> new ArrayList<>()); if(FMLCommonHandler.instance().getEffectiveSide().isClient()) { render.loadResources(); } renders.add(render); } - public static ArrayList<DataRender> getRenders(Util.ItemStack_NoNBT stack){ + public static ArrayList<IDataRender> getRenders(Util.ItemStack_NoNBT stack){ return RENDER_REGISTRY.get(stack); } - public interface DataRender{ + public interface IDataRender { @SideOnly(Side.CLIENT) void loadResources(); @SideOnly(Side.CLIENT) @@ -203,7 +203,7 @@ public class GT_MetaTileEntity_DataReader extends GT_MetaTileEntity_BasicMachine } public static void run(){ - addDataRender(new Util.ItemStack_NoNBT(ItemList.Tool_DataStick.get(1)),new DataRender() { + addDataRender(new Util.ItemStack_NoNBT(ItemList.Tool_DataStick.get(1)),new IDataRender() { @SideOnly(Side.CLIENT) private ResourceLocation bg; @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/gui/GT_GUIContainer_DataReader.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/gui/GT_GUIContainer_DataReader.java index 022247b541..eb2c2e4112 100644 --- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/gui/GT_GUIContainer_DataReader.java +++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/single/gui/GT_GUIContainer_DataReader.java @@ -115,8 +115,8 @@ public class GT_GUIContainer_DataReader extends GT_GUIContainerMetaTile_Machine private void renderDataBG(ItemStack thing, int mouseX, int mouseY, int x, int y, byte mTier) { if (thing != null) { - ArrayList<GT_MetaTileEntity_DataReader.DataRender> renders = GT_MetaTileEntity_DataReader.getRenders(new Util.ItemStack_NoNBT(thing)); - for (GT_MetaTileEntity_DataReader.DataRender render : renders) { + ArrayList<GT_MetaTileEntity_DataReader.IDataRender> renders = GT_MetaTileEntity_DataReader.getRenders(new Util.ItemStack_NoNBT(thing)); + for (GT_MetaTileEntity_DataReader.IDataRender render : renders) { if (render.canRender(thing, mTier)) { if (!GT_Utility.areStacksEqual(stack, thing, false)) { render.initRender(thing); @@ -133,8 +133,8 @@ public class GT_GUIContainer_DataReader extends GT_GUIContainerMetaTile_Machine if(stack==null){ return false; } - ArrayList<GT_MetaTileEntity_DataReader.DataRender> renders = GT_MetaTileEntity_DataReader.getRenders(new Util.ItemStack_NoNBT(stack)); - for (GT_MetaTileEntity_DataReader.DataRender render : renders) { + ArrayList<GT_MetaTileEntity_DataReader.IDataRender> renders = GT_MetaTileEntity_DataReader.getRenders(new Util.ItemStack_NoNBT(stack)); + for (GT_MetaTileEntity_DataReader.IDataRender render : renders) { if (render.canRender(stack, mTier)) { render.renderForeground(stack, mouseX, mouseY, this, fontRendererObj); return true; @@ -147,8 +147,8 @@ public class GT_GUIContainer_DataReader extends GT_GUIContainerMetaTile_Machine if(stack==null){ return false; } - ArrayList<GT_MetaTileEntity_DataReader.DataRender> renders = GT_MetaTileEntity_DataReader.getRenders(new Util.ItemStack_NoNBT(stack)); - for (GT_MetaTileEntity_DataReader.DataRender render : renders) { + ArrayList<GT_MetaTileEntity_DataReader.IDataRender> renders = GT_MetaTileEntity_DataReader.getRenders(new Util.ItemStack_NoNBT(stack)); + for (GT_MetaTileEntity_DataReader.IDataRender render : renders) { if (render.canRender(stack, mTier)) { render.renderTooltips(stack, mouseX, mouseY, this); return true; |