v5.5.5 Release
*Added Easter Egg in Dynamic Tank. *Refactored liquid/energy rendering management. *Animation for when Dynamic Tank is created. *Enhanced Dynamic Tank calculation.
This commit is contained in:
parent
b7c1a7afc6
commit
9cb7a893c9
22 changed files with 263 additions and 50 deletions
BIN
bin/minecraft/mods/mekanism/sound/cj/CJ_1.ogg
Normal file
BIN
bin/minecraft/mods/mekanism/sound/cj/CJ_1.ogg
Normal file
Binary file not shown.
BIN
bin/minecraft/mods/mekanism/sound/cj/CJ_2.ogg
Normal file
BIN
bin/minecraft/mods/mekanism/sound/cj/CJ_2.ogg
Normal file
Binary file not shown.
BIN
bin/minecraft/mods/mekanism/sound/cj/CJ_3.ogg
Normal file
BIN
bin/minecraft/mods/mekanism/sound/cj/CJ_3.ogg
Normal file
Binary file not shown.
|
@ -1,6 +1,6 @@
|
||||||
package mekanism.api;
|
package mekanism.api;
|
||||||
|
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.util.Icon;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The gasses currently available in Mekanism.
|
* The gasses currently available in Mekanism.
|
||||||
|
@ -14,7 +14,7 @@ public enum EnumGas
|
||||||
HYDROGEN("Hydrogen", null, null);
|
HYDROGEN("Hydrogen", null, null);
|
||||||
|
|
||||||
public String name;
|
public String name;
|
||||||
public Item gasItem;
|
public Icon gasIcon;
|
||||||
public String texturePath;
|
public String texturePath;
|
||||||
|
|
||||||
public static EnumGas getFromName(String gasName)
|
public static EnumGas getFromName(String gasName)
|
||||||
|
@ -33,13 +33,13 @@ public enum EnumGas
|
||||||
|
|
||||||
public boolean hasTexture()
|
public boolean hasTexture()
|
||||||
{
|
{
|
||||||
return gasItem != null && texturePath != null;
|
return gasIcon != null && texturePath != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private EnumGas(String s, Item item, String path)
|
private EnumGas(String s, Icon icon, String path)
|
||||||
{
|
{
|
||||||
name = s;
|
name = s;
|
||||||
gasItem = item;
|
gasIcon = icon;
|
||||||
texturePath = path;
|
texturePath = path;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ package mekanism.client;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
import mekanism.api.EnumGas;
|
||||||
import mekanism.common.CommonProxy;
|
import mekanism.common.CommonProxy;
|
||||||
import mekanism.common.EntityObsidianTNT;
|
import mekanism.common.EntityObsidianTNT;
|
||||||
import mekanism.common.IElectricChest;
|
import mekanism.common.IElectricChest;
|
||||||
|
@ -178,6 +179,18 @@ public class ClientProxy extends CommonProxy
|
||||||
RenderingRegistry.registerBlockHandler(new TransmitterRenderer());
|
RenderingRegistry.registerBlockHandler(new TransmitterRenderer());
|
||||||
RenderingRegistry.registerBlockHandler(new BasicRenderingHandler());
|
RenderingRegistry.registerBlockHandler(new BasicRenderingHandler());
|
||||||
|
|
||||||
|
if(!EnumGas.HYDROGEN.hasTexture())
|
||||||
|
{
|
||||||
|
EnumGas.HYDROGEN.gasIcon = FMLClientHandler.instance().getClient().renderEngine.textureMapItems.registerIcon("mekanism:LiquidHydrogen");
|
||||||
|
EnumGas.HYDROGEN.texturePath = "/mods/mekanism/textures/items/LiquidHydrogen.png";
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!EnumGas.OXYGEN.hasTexture())
|
||||||
|
{
|
||||||
|
EnumGas.OXYGEN.gasIcon = FMLClientHandler.instance().getClient().renderEngine.textureMapItems.registerIcon("mekanism:LiquidOxygen");
|
||||||
|
EnumGas.OXYGEN.texturePath = "/mods/mekanism/textures/items/LiquidOxygen.png";
|
||||||
|
}
|
||||||
|
|
||||||
System.out.println("[Mekanism] Render registrations complete.");
|
System.out.println("[Mekanism] Render registrations complete.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -238,6 +251,12 @@ public class ClientProxy extends CommonProxy
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doTankAnimation(TileEntityDynamicTank tileEntity)
|
||||||
|
{
|
||||||
|
new ThreadTankSparkle(tileEntity).start();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void loadUtilities()
|
public void loadUtilities()
|
||||||
{
|
{
|
||||||
|
@ -245,6 +264,7 @@ public class ClientProxy extends CommonProxy
|
||||||
|
|
||||||
TickRegistry.registerTickHandler(new ClientTickHandler(), Side.CLIENT);
|
TickRegistry.registerTickHandler(new ClientTickHandler(), Side.CLIENT);
|
||||||
TickRegistry.registerTickHandler(new ClientPlayerTickHandler(), Side.CLIENT);
|
TickRegistry.registerTickHandler(new ClientPlayerTickHandler(), Side.CLIENT);
|
||||||
|
TickRegistry.registerTickHandler(new RenderTickHandler(), Side.CLIENT);
|
||||||
|
|
||||||
NetworkRegistry.instance().registerConnectionHandler(new ClientConnectionHandler());
|
NetworkRegistry.instance().registerConnectionHandler(new ClientConnectionHandler());
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@ public class ItemRenderingHandler implements IItemRenderer
|
||||||
@Override
|
@Override
|
||||||
public void renderItem(ItemRenderType type, ItemStack item, Object... data)
|
public void renderItem(ItemRenderType type, ItemStack item, Object... data)
|
||||||
{
|
{
|
||||||
if(type == ItemRenderType.EQUIPPED)
|
if(type == ItemRenderType.EQUIPPED || type == ItemRenderType.EQUIPPED_FIRST_PERSON)
|
||||||
{
|
{
|
||||||
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
|
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
|
||||||
}
|
}
|
||||||
|
@ -62,7 +62,7 @@ public class ItemRenderingHandler implements IItemRenderer
|
||||||
GL11.glScalef(1.0F, -1F, -1F);
|
GL11.glScalef(1.0F, -1F, -1F);
|
||||||
GL11.glBindTexture(3553, FMLClientHandler.instance().getClient().renderEngine.getTexture("/mods/mekanism/render/ElectricChest.png"));
|
GL11.glBindTexture(3553, FMLClientHandler.instance().getClient().renderEngine.getTexture("/mods/mekanism/render/ElectricChest.png"));
|
||||||
|
|
||||||
float lidangle = chest.getPrevLidAngle(item) + (chest.getLidAngle(item) - chest.getPrevLidAngle(item)) * 1F;
|
float lidangle = chest.getPrevLidAngle(item) + (chest.getLidAngle(item) - chest.getPrevLidAngle(item)) * Minecraft.getMinecraft().timer.renderPartialTicks;
|
||||||
lidangle = 1.0F - lidangle;
|
lidangle = 1.0F - lidangle;
|
||||||
lidangle = 1.0F - lidangle * lidangle * lidangle;
|
lidangle = 1.0F - lidangle * lidangle * lidangle;
|
||||||
electricChest.chestLid.rotateAngleX = -((lidangle * 3.141593F) / 2.0F);
|
electricChest.chestLid.rotateAngleX = -((lidangle * 3.141593F) / 2.0F);
|
||||||
|
|
|
@ -105,7 +105,7 @@ public class RenderPressurizedTube extends TileEntitySpecialRenderer
|
||||||
|
|
||||||
Model3D toReturn = new Model3D();
|
Model3D toReturn = new Model3D();
|
||||||
toReturn.baseBlock = Block.waterStill;
|
toReturn.baseBlock = Block.waterStill;
|
||||||
toReturn.texture = type.gasItem.getIconFromDamage(0);
|
toReturn.texture = type.gasIcon;
|
||||||
|
|
||||||
int[] displays = new int[stages];
|
int[] displays = new int[stages];
|
||||||
|
|
||||||
|
|
76
src/minecraft/mekanism/client/RenderTickHandler.java
Normal file
76
src/minecraft/mekanism/client/RenderTickHandler.java
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
package mekanism.client;
|
||||||
|
|
||||||
|
import java.util.EnumSet;
|
||||||
|
|
||||||
|
import mekanism.api.Object3D;
|
||||||
|
import mekanism.common.MekanismUtils;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.FontRenderer;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.util.MathHelper;
|
||||||
|
import net.minecraft.util.MovingObjectPosition;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import cpw.mods.fml.client.FMLClientHandler;
|
||||||
|
import cpw.mods.fml.common.ITickHandler;
|
||||||
|
import cpw.mods.fml.common.TickType;
|
||||||
|
|
||||||
|
public class RenderTickHandler implements ITickHandler
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void tickStart(EnumSet<TickType> type, Object... tickData)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void tickEnd(EnumSet<TickType> type, Object... tickData)
|
||||||
|
{
|
||||||
|
Minecraft mc = FMLClientHandler.instance().getClient();
|
||||||
|
|
||||||
|
if(mc.currentScreen == null && mc.thePlayer != null && mc.theWorld != null && !MekanismUtils.isObfuscated())
|
||||||
|
{
|
||||||
|
EntityPlayer player = mc.thePlayer;
|
||||||
|
World world = mc.theWorld;
|
||||||
|
|
||||||
|
FontRenderer font = mc.fontRenderer;
|
||||||
|
|
||||||
|
MovingObjectPosition pos = player.rayTrace(40.0D, 1.0F);
|
||||||
|
|
||||||
|
if(pos != null)
|
||||||
|
{
|
||||||
|
int x = MathHelper.floor_double(pos.blockX);
|
||||||
|
int y = MathHelper.floor_double(pos.blockY);
|
||||||
|
int z = MathHelper.floor_double(pos.blockZ);
|
||||||
|
|
||||||
|
Object3D obj = new Object3D(x, y, z);
|
||||||
|
|
||||||
|
String tileDisplay = "no";
|
||||||
|
|
||||||
|
if(obj.getTileEntity(world) != null)
|
||||||
|
{
|
||||||
|
if(obj.getTileEntity(world).getClass() != null)
|
||||||
|
{
|
||||||
|
tileDisplay = obj.getTileEntity(world).getClass().getSimpleName();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
font.drawStringWithShadow("Block ID: " + obj.getBlockId(world), 1, 1, 0x404040);
|
||||||
|
font.drawStringWithShadow("Metadata: " + obj.getMetadata(world), 1, 10, 0x404040);
|
||||||
|
font.drawStringWithShadow("TileEntity: " + tileDisplay, 1, 19, 0x404040);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumSet<TickType> ticks()
|
||||||
|
{
|
||||||
|
return EnumSet.of(TickType.RENDER);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getLabel()
|
||||||
|
{
|
||||||
|
return "MekanismRender";
|
||||||
|
}
|
||||||
|
}
|
|
@ -11,13 +11,13 @@ import net.minecraft.block.Block;
|
||||||
import net.minecraft.client.renderer.GLAllocation;
|
import net.minecraft.client.renderer.GLAllocation;
|
||||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.util.Icon;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
import net.minecraftforge.liquids.LiquidContainerRegistry;
|
|
||||||
import net.minecraftforge.liquids.LiquidStack;
|
|
||||||
|
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import cpw.mods.fml.client.FMLClientHandler;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
|
@ -28,6 +28,8 @@ public class RenderUniversalCable extends TileEntitySpecialRenderer
|
||||||
|
|
||||||
private HashMap<ForgeDirection, int[]> cachedLiquids = new HashMap<ForgeDirection, int[]>();
|
private HashMap<ForgeDirection, int[]> cachedLiquids = new HashMap<ForgeDirection, int[]>();
|
||||||
|
|
||||||
|
private Icon renderIcon = FMLClientHandler.instance().getClient().renderEngine.textureMapItems.registerIcon("mekanism:LiquidEnergy");
|
||||||
|
|
||||||
private static final int stages = 40;
|
private static final int stages = 40;
|
||||||
|
|
||||||
private static final double offset = 0.015;
|
private static final double offset = 0.015;
|
||||||
|
@ -126,7 +128,7 @@ public class RenderUniversalCable extends TileEntitySpecialRenderer
|
||||||
|
|
||||||
Model3D toReturn = new Model3D();
|
Model3D toReturn = new Model3D();
|
||||||
toReturn.baseBlock = Block.waterStill;
|
toReturn.baseBlock = Block.waterStill;
|
||||||
toReturn.texture = Mekanism.LiquidEnergy.getIconFromDamage(0);
|
toReturn.texture = renderIcon;
|
||||||
|
|
||||||
int[] displays = new int[stages];
|
int[] displays = new int[stages];
|
||||||
|
|
||||||
|
|
|
@ -47,6 +47,7 @@ public class Sound
|
||||||
tileEntity = tileentity;
|
tileEntity = tileentity;
|
||||||
|
|
||||||
URL url = getClass().getClassLoader().getResource("mods/mekanism/sound/" + sound);
|
URL url = getClass().getClassLoader().getResource("mods/mekanism/sound/" + sound);
|
||||||
|
|
||||||
if(url == null)
|
if(url == null)
|
||||||
{
|
{
|
||||||
System.out.println("[Mekanism] Invalid sound file: " + sound);
|
System.out.println("[Mekanism] Invalid sound file: " + sound);
|
||||||
|
@ -80,6 +81,7 @@ public class Sound
|
||||||
updateVolume(FMLClientHandler.instance().getClient().thePlayer);
|
updateVolume(FMLClientHandler.instance().getClient().thePlayer);
|
||||||
Mekanism.audioHandler.soundSystem.play(identifier);
|
Mekanism.audioHandler.soundSystem.play(identifier);
|
||||||
}
|
}
|
||||||
|
|
||||||
isPlaying = true;
|
isPlaying = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -101,6 +103,7 @@ public class Sound
|
||||||
updateVolume(FMLClientHandler.instance().getClient().thePlayer);
|
updateVolume(FMLClientHandler.instance().getClient().thePlayer);
|
||||||
Mekanism.audioHandler.soundSystem.stop(identifier);
|
Mekanism.audioHandler.soundSystem.stop(identifier);
|
||||||
}
|
}
|
||||||
|
|
||||||
isPlaying = false;
|
isPlaying = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
package mekanism.client;
|
package mekanism.client;
|
||||||
|
|
||||||
|
import java.net.URL;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
|
import mekanism.api.Object3D;
|
||||||
import mekanism.common.IActiveState;
|
import mekanism.common.IActiveState;
|
||||||
import mekanism.common.Mekanism;
|
import mekanism.common.Mekanism;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
@ -190,6 +192,25 @@ public class SoundHandler
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Plays a sound in a specific location.
|
||||||
|
* @param soundPath - sound path to play
|
||||||
|
* @param world - world to play in
|
||||||
|
* @param object - location to play
|
||||||
|
*/
|
||||||
|
public void quickPlay(String soundPath, World world, Object3D object)
|
||||||
|
{
|
||||||
|
URL url = getClass().getClassLoader().getResource("mods/mekanism/sound/" + soundPath);
|
||||||
|
|
||||||
|
if(url == null)
|
||||||
|
{
|
||||||
|
System.out.println("[Mekanism] Invalid sound file: " + soundPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
String s = soundSystem.quickPlay(false, url, soundPath, false, object.xCoord, object.yCoord, object.zCoord, 0, 16F);
|
||||||
|
soundSystem.setVolume(s, masterVolume);
|
||||||
|
}
|
||||||
|
|
||||||
@ForgeSubscribe
|
@ForgeSubscribe
|
||||||
public void onChunkUnload(ChunkEvent.Unload event)
|
public void onChunkUnload(ChunkEvent.Unload event)
|
||||||
{
|
{
|
||||||
|
|
87
src/minecraft/mekanism/client/ThreadTankSparkle.java
Normal file
87
src/minecraft/mekanism/client/ThreadTankSparkle.java
Normal file
|
@ -0,0 +1,87 @@
|
||||||
|
package mekanism.client;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Random;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import mekanism.api.Object3D;
|
||||||
|
import mekanism.common.Mekanism;
|
||||||
|
import mekanism.common.TileEntityDynamicTank;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
|
|
||||||
|
public class ThreadTankSparkle extends Thread
|
||||||
|
{
|
||||||
|
public TileEntityDynamicTank pointer;
|
||||||
|
|
||||||
|
public Random random = new Random();
|
||||||
|
|
||||||
|
public Set<TileEntity> iteratedNodes = new HashSet<TileEntity>();
|
||||||
|
|
||||||
|
public ThreadTankSparkle(TileEntityDynamicTank tileEntity)
|
||||||
|
{
|
||||||
|
pointer = tileEntity;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
if(Mekanism.dynamicTankEasterEgg)
|
||||||
|
{
|
||||||
|
Mekanism.audioHandler.quickPlay("cj/CJ_" + (random.nextInt(3)+1) + ".ogg", pointer.worldObj, Object3D.get(pointer));
|
||||||
|
}
|
||||||
|
|
||||||
|
loop(pointer);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void loop(TileEntityDynamicTank tileEntity)
|
||||||
|
{
|
||||||
|
World world = pointer.worldObj;
|
||||||
|
|
||||||
|
for(int i = 0; i < 6; i++)
|
||||||
|
{
|
||||||
|
if(world.getBlockId(tileEntity.xCoord, tileEntity.yCoord-1, tileEntity.zCoord) == 0)
|
||||||
|
{
|
||||||
|
world.spawnParticle("reddust", tileEntity.xCoord + random.nextDouble(), tileEntity.yCoord + -.01, tileEntity.zCoord + random.nextDouble(), 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(world.getBlockId(tileEntity.xCoord, tileEntity.yCoord+1, tileEntity.zCoord) == 0)
|
||||||
|
{
|
||||||
|
world.spawnParticle("reddust", tileEntity.xCoord + random.nextDouble(), tileEntity.yCoord + 1.01, tileEntity.zCoord + random.nextDouble(), 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(world.getBlockId(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord-1) == 0)
|
||||||
|
{
|
||||||
|
world.spawnParticle("reddust", tileEntity.xCoord + random.nextDouble(), tileEntity.yCoord + random.nextDouble(), tileEntity.zCoord + -.01, 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(world.getBlockId(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord+1) == 0)
|
||||||
|
{
|
||||||
|
world.spawnParticle("reddust", tileEntity.xCoord + random.nextDouble(), tileEntity.yCoord + random.nextDouble(), tileEntity.zCoord + 1.01, 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(world.getBlockId(tileEntity.xCoord-1, tileEntity.yCoord, tileEntity.zCoord) == 0)
|
||||||
|
{
|
||||||
|
world.spawnParticle("reddust", tileEntity.xCoord + -.01, tileEntity.yCoord + random.nextDouble(), tileEntity.zCoord + random.nextDouble(), 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(world.getBlockId(tileEntity.xCoord+1, tileEntity.yCoord, tileEntity.zCoord) == 0)
|
||||||
|
{
|
||||||
|
world.spawnParticle("reddust", tileEntity.xCoord + 1.01, tileEntity.yCoord + random.nextDouble(), tileEntity.zCoord + random.nextDouble(), 0, 0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
iteratedNodes.add(tileEntity);
|
||||||
|
|
||||||
|
for(ForgeDirection side : ForgeDirection.VALID_DIRECTIONS)
|
||||||
|
{
|
||||||
|
TileEntity tile = Object3D.get(tileEntity).getFromSide(side).getTileEntity(pointer.worldObj);
|
||||||
|
|
||||||
|
if(tile instanceof TileEntityDynamicTank && !iteratedNodes.contains(tile))
|
||||||
|
{
|
||||||
|
loop((TileEntityDynamicTank)tile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -91,7 +91,8 @@ public class CommonProxy
|
||||||
Mekanism.disableBCBronzeCrafting = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "DisableBCBronzeCrafting", false).getBoolean(true);
|
Mekanism.disableBCBronzeCrafting = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "DisableBCBronzeCrafting", false).getBoolean(true);
|
||||||
Mekanism.updateNotifications = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "UpdateNotifications", true).getBoolean(true);
|
Mekanism.updateNotifications = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "UpdateNotifications", true).getBoolean(true);
|
||||||
Mekanism.controlCircuitOreDict = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "ControlCircuitOreDict", true).getBoolean(true);
|
Mekanism.controlCircuitOreDict = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "ControlCircuitOreDict", true).getBoolean(true);
|
||||||
Mekanism.logPackets = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "LogPackets", false).getBoolean(false);
|
Mekanism.logPackets = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "LogPackets", false).getBoolean(true);
|
||||||
|
Mekanism.dynamicTankEasterEgg = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "DynamicTankEasterEgg", false).getBoolean(true);
|
||||||
Mekanism.obsidianTNTDelay = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "ObsidianTNTDelay", 100).getInt();
|
Mekanism.obsidianTNTDelay = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "ObsidianTNTDelay", 100).getInt();
|
||||||
Mekanism.obsidianTNTBlastRadius = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "ObsidianTNTBlastRadius", 12).getInt();
|
Mekanism.obsidianTNTBlastRadius = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "ObsidianTNTBlastRadius", 12).getInt();
|
||||||
Mekanism.FROM_IC2 = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "JoulesToEU", 10).getDouble(10);
|
Mekanism.FROM_IC2 = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "JoulesToEU", 10).getDouble(10);
|
||||||
|
@ -128,6 +129,11 @@ public class CommonProxy
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Does the Dynamic Tank creation animation, starting from the rendering block.
|
||||||
|
*/
|
||||||
|
public void doTankAnimation(TileEntityDynamicTank tileEntity) {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the actual interface for a GUI. Client-only.
|
* Get the actual interface for a GUI. Client-only.
|
||||||
* @param ID - gui ID
|
* @param ID - gui ID
|
||||||
|
|
|
@ -139,9 +139,6 @@ public class Mekanism
|
||||||
public static Item PortableTeleporter;
|
public static Item PortableTeleporter;
|
||||||
public static Item TeleportationCore;
|
public static Item TeleportationCore;
|
||||||
public static Item Configurator;
|
public static Item Configurator;
|
||||||
public static Item LiquidEnergy;
|
|
||||||
public static Item LiquidHydrogen;
|
|
||||||
public static Item LiquidOxygen;
|
|
||||||
|
|
||||||
//Blocks
|
//Blocks
|
||||||
public static Block BasicBlock;
|
public static Block BasicBlock;
|
||||||
|
@ -168,6 +165,7 @@ public class Mekanism
|
||||||
public static boolean enableSounds = true;
|
public static boolean enableSounds = true;
|
||||||
public static boolean controlCircuitOreDict = true;
|
public static boolean controlCircuitOreDict = true;
|
||||||
public static boolean logPackets = false;
|
public static boolean logPackets = false;
|
||||||
|
public static boolean dynamicTankEasterEgg = false;
|
||||||
public static int obsidianTNTBlastRadius = 12;
|
public static int obsidianTNTBlastRadius = 12;
|
||||||
public static int obsidianTNTDelay = 100;
|
public static int obsidianTNTDelay = 100;
|
||||||
public static double TO_IC2;
|
public static double TO_IC2;
|
||||||
|
@ -453,9 +451,6 @@ public class Mekanism
|
||||||
LanguageRegistry.addName(PortableTeleporter, "Portable Teleporter");
|
LanguageRegistry.addName(PortableTeleporter, "Portable Teleporter");
|
||||||
LanguageRegistry.addName(TeleportationCore, "Teleportation Core");
|
LanguageRegistry.addName(TeleportationCore, "Teleportation Core");
|
||||||
LanguageRegistry.addName(Configurator, "Configurator");
|
LanguageRegistry.addName(Configurator, "Configurator");
|
||||||
LanguageRegistry.addName(LiquidEnergy, "Liquid Energy");
|
|
||||||
LanguageRegistry.addName(LiquidHydrogen, "Liquid Hydrogen");
|
|
||||||
LanguageRegistry.addName(LiquidOxygen, "Liquid Oxygen");
|
|
||||||
|
|
||||||
//Localization for BasicBlock
|
//Localization for BasicBlock
|
||||||
LanguageRegistry.instance().addStringLocalization("tile.BasicBlock.OsmiumBlock.name", "Osmium Block");
|
LanguageRegistry.instance().addStringLocalization("tile.BasicBlock.OsmiumBlock.name", "Osmium Block");
|
||||||
|
@ -560,7 +555,7 @@ public class Mekanism
|
||||||
EnergyTablet = (ItemEnergized) new ItemEnergized(configuration.getItem("EnergyTablet", 11206).getInt(), 1000000, 120).setUnlocalizedName("EnergyTablet");
|
EnergyTablet = (ItemEnergized) new ItemEnergized(configuration.getItem("EnergyTablet", 11206).getInt(), 1000000, 120).setUnlocalizedName("EnergyTablet");
|
||||||
SpeedUpgrade = new ItemMachineUpgrade(configuration.getItem("SpeedUpgrade", 11207).getInt(), 0, 150).setUnlocalizedName("SpeedUpgrade");
|
SpeedUpgrade = new ItemMachineUpgrade(configuration.getItem("SpeedUpgrade", 11207).getInt(), 0, 150).setUnlocalizedName("SpeedUpgrade");
|
||||||
EnergyUpgrade = new ItemMachineUpgrade(configuration.getItem("EnergyUpgrade", 11208).getInt(), 1000, 0).setUnlocalizedName("EnergyUpgrade");
|
EnergyUpgrade = new ItemMachineUpgrade(configuration.getItem("EnergyUpgrade", 11208).getInt(), 1000, 0).setUnlocalizedName("EnergyUpgrade");
|
||||||
LiquidEnergy = new ItemMekanism(configuration.getItem("LiquidEnergy", 11209).getInt()).setUnlocalizedName("LiquidEnergy").setCreativeTab(null);
|
//Free ID...again :(
|
||||||
AtomicDisassembler = (ItemAtomicDisassembler) new ItemAtomicDisassembler(configuration.getItem("AtomicDisassembler", 11210).getInt()).setUnlocalizedName("AtomicDisassembler");
|
AtomicDisassembler = (ItemAtomicDisassembler) new ItemAtomicDisassembler(configuration.getItem("AtomicDisassembler", 11210).getInt()).setUnlocalizedName("AtomicDisassembler");
|
||||||
AtomicCore = new ItemMekanism(configuration.getItem("AtomicCore", 11211).getInt()).setUnlocalizedName("AtomicCore");
|
AtomicCore = new ItemMekanism(configuration.getItem("AtomicCore", 11211).getInt()).setUnlocalizedName("AtomicCore");
|
||||||
EnrichedAlloy = new ItemMekanism(configuration.getItem("EnrichedAlloy", 11212).getInt()).setUnlocalizedName("EnrichedAlloy");
|
EnrichedAlloy = new ItemMekanism(configuration.getItem("EnrichedAlloy", 11212).getInt()).setUnlocalizedName("EnrichedAlloy");
|
||||||
|
@ -573,8 +568,6 @@ public class Mekanism
|
||||||
Clump = new ItemClump(configuration.getItem("Clump", 11219).getInt()-256);
|
Clump = new ItemClump(configuration.getItem("Clump", 11219).getInt()-256);
|
||||||
DirtyDust = new ItemDirtyDust(configuration.getItem("DirtyDust", 11220).getInt()-256);
|
DirtyDust = new ItemDirtyDust(configuration.getItem("DirtyDust", 11220).getInt()-256);
|
||||||
Configurator = new ItemConfigurator(configuration.getItem("Configurator", 11221).getInt()).setUnlocalizedName("Configurator");
|
Configurator = new ItemConfigurator(configuration.getItem("Configurator", 11221).getInt()).setUnlocalizedName("Configurator");
|
||||||
LiquidHydrogen = new ItemMekanism(configuration.getItem("LiquidHydrogen", 11222).getInt()).setUnlocalizedName("LiquidHydrogen").setCreativeTab(null);
|
|
||||||
LiquidOxygen = new ItemMekanism(configuration.getItem("LiquidOxygen", 11223).getInt()).setUnlocalizedName("LiquidOxygen").setCreativeTab(null);
|
|
||||||
configuration.save();
|
configuration.save();
|
||||||
|
|
||||||
//Registrations
|
//Registrations
|
||||||
|
@ -591,7 +584,6 @@ public class Mekanism
|
||||||
GameRegistry.registerItem(EnergyTablet, "EnergyTablet");
|
GameRegistry.registerItem(EnergyTablet, "EnergyTablet");
|
||||||
GameRegistry.registerItem(SpeedUpgrade, "SpeedUpgrade");
|
GameRegistry.registerItem(SpeedUpgrade, "SpeedUpgrade");
|
||||||
GameRegistry.registerItem(EnergyUpgrade, "EnergyUpgrade");
|
GameRegistry.registerItem(EnergyUpgrade, "EnergyUpgrade");
|
||||||
GameRegistry.registerItem(LiquidEnergy, "LiquidEnergy");
|
|
||||||
GameRegistry.registerItem(AtomicDisassembler, "AtomicDisassembler");
|
GameRegistry.registerItem(AtomicDisassembler, "AtomicDisassembler");
|
||||||
GameRegistry.registerItem(AtomicCore, "AtomicCore");
|
GameRegistry.registerItem(AtomicCore, "AtomicCore");
|
||||||
GameRegistry.registerItem(EnrichedAlloy, "EnrichedAlloy");
|
GameRegistry.registerItem(EnrichedAlloy, "EnrichedAlloy");
|
||||||
|
@ -604,8 +596,6 @@ public class Mekanism
|
||||||
GameRegistry.registerItem(Clump, "Clump");
|
GameRegistry.registerItem(Clump, "Clump");
|
||||||
GameRegistry.registerItem(DirtyDust, "DirtyDust");
|
GameRegistry.registerItem(DirtyDust, "DirtyDust");
|
||||||
GameRegistry.registerItem(Configurator, "Configurator");
|
GameRegistry.registerItem(Configurator, "Configurator");
|
||||||
GameRegistry.registerItem(LiquidHydrogen, "LiquidHydrogen");
|
|
||||||
GameRegistry.registerItem(LiquidOxygen, "LiquidOxygen");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1036,18 +1026,6 @@ public class Mekanism
|
||||||
|
|
||||||
addIntegratedItems();
|
addIntegratedItems();
|
||||||
|
|
||||||
if(!EnumGas.HYDROGEN.hasTexture())
|
|
||||||
{
|
|
||||||
EnumGas.HYDROGEN.gasItem = LiquidHydrogen;
|
|
||||||
EnumGas.HYDROGEN.texturePath = "/mods/mekanism/textures/items/LiquidHydrogen.png";
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!EnumGas.OXYGEN.hasTexture())
|
|
||||||
{
|
|
||||||
EnumGas.OXYGEN.gasItem = LiquidOxygen;
|
|
||||||
EnumGas.OXYGEN.texturePath = "/mods/mekanism/textures/items/LiquidOxygen.png";
|
|
||||||
}
|
|
||||||
|
|
||||||
System.out.println("[Mekanism] Hooking complete.");
|
System.out.println("[Mekanism] Hooking complete.");
|
||||||
|
|
||||||
proxy.loadSoundHandler();
|
proxy.loadSoundHandler();
|
||||||
|
|
|
@ -783,6 +783,15 @@ public final class MekanismUtils
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether or not this mod is in an obfuscated environment.
|
||||||
|
* @return if the mod is in an obfuscated environment
|
||||||
|
*/
|
||||||
|
public static boolean isObfuscated()
|
||||||
|
{
|
||||||
|
return !World.class.getSimpleName().equals("World");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Grabs a unique inventory ID for a dynamic tank.
|
* Grabs a unique inventory ID for a dynamic tank.
|
||||||
* @return unique inventory ID
|
* @return unique inventory ID
|
||||||
|
|
|
@ -317,6 +317,7 @@ public class PacketHandler implements IPacketHandler
|
||||||
int id = dataStream.readInt();
|
int id = dataStream.readInt();
|
||||||
int windowId = dataStream.readInt();
|
int windowId = dataStream.readInt();
|
||||||
boolean isBlock = dataStream.readBoolean();
|
boolean isBlock = dataStream.readBoolean();
|
||||||
|
|
||||||
int x = 0;
|
int x = 0;
|
||||||
int y = 0;
|
int y = 0;
|
||||||
int z = 0;
|
int z = 0;
|
||||||
|
|
|
@ -25,9 +25,6 @@ public class TankUpdateProtocol
|
||||||
/** The original block the calculation is getting run from. */
|
/** The original block the calculation is getting run from. */
|
||||||
public TileEntity pointer;
|
public TileEntity pointer;
|
||||||
|
|
||||||
/** If the pointer is not a part of any actual dynamic tank. */
|
|
||||||
public boolean pointerNotPartOf;
|
|
||||||
|
|
||||||
public TankUpdateProtocol(TileEntity tileEntity)
|
public TankUpdateProtocol(TileEntity tileEntity)
|
||||||
{
|
{
|
||||||
pointer = tileEntity;
|
pointer = tileEntity;
|
||||||
|
@ -204,9 +201,6 @@ public class TankUpdateProtocol
|
||||||
structureFound = structure;
|
structureFound = structure;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
pointerNotPartOf = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -368,6 +362,19 @@ public class TankUpdateProtocol
|
||||||
|
|
||||||
if(structureFound != null)
|
if(structureFound != null)
|
||||||
{
|
{
|
||||||
|
for(TileEntityDynamicTank tileEntity : iteratedNodes)
|
||||||
|
{
|
||||||
|
if(!structureFound.locations.contains(Object3D.get(tileEntity)))
|
||||||
|
{
|
||||||
|
for(TileEntity tile : iteratedNodes)
|
||||||
|
{
|
||||||
|
((TileEntityDynamicTank)tileEntity).structure = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int idFound = -1;
|
int idFound = -1;
|
||||||
|
|
||||||
for(Object3D obj : structureFound.locations)
|
for(Object3D obj : structureFound.locations)
|
||||||
|
@ -407,8 +414,7 @@ public class TankUpdateProtocol
|
||||||
tileEntity.inventory = cache.inventory;
|
tileEntity.inventory = cache.inventory;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(!pointerNotPartOf)
|
else {
|
||||||
{
|
|
||||||
for(TileEntity tileEntity : iteratedNodes)
|
for(TileEntity tileEntity : iteratedNodes)
|
||||||
{
|
{
|
||||||
((TileEntityDynamicTank)tileEntity).structure = null;
|
((TileEntityDynamicTank)tileEntity).structure = null;
|
||||||
|
|
|
@ -93,7 +93,14 @@ public class TileEntityDynamicTank extends TileEntityContainerBlock
|
||||||
valveViewing.put(data, valveViewing.get(data)-1);
|
valveViewing.put(data, valveViewing.get(data)-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!prevStructure)
|
||||||
|
{
|
||||||
|
Mekanism.proxy.doTankAnimation(this);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
prevStructure = clientHasStructure;
|
||||||
|
|
||||||
if(!clientHasStructure || !isRendering)
|
if(!clientHasStructure || !isRendering)
|
||||||
{
|
{
|
||||||
|
|
|
@ -114,7 +114,7 @@ public class BlockRenderingHandler implements ISimpleBlockRenderingHandler
|
||||||
@Override
|
@Override
|
||||||
public int getRenderId()
|
public int getRenderId()
|
||||||
{
|
{
|
||||||
return GeneratorsClientProxy.RENDER_ID;
|
return GeneratorsClientProxy.GENERATOR_RENDER_ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -20,7 +20,7 @@ import cpw.mods.fml.relauncher.SideOnly;
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public class GeneratorsClientProxy extends GeneratorsCommonProxy
|
public class GeneratorsClientProxy extends GeneratorsCommonProxy
|
||||||
{
|
{
|
||||||
public static int RENDER_ID = RenderingRegistry.getNextAvailableRenderId();
|
public static int GENERATOR_RENDER_ID = RenderingRegistry.getNextAvailableRenderId();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void registerSpecialTileEntities()
|
public void registerSpecialTileEntities()
|
||||||
|
|
|
@ -475,7 +475,7 @@ public class BlockGenerator extends BlockContainer
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public int getRenderType()
|
public int getRenderType()
|
||||||
{
|
{
|
||||||
return GeneratorsClientProxy.RENDER_ID;
|
return GeneratorsClientProxy.GENERATOR_RENDER_ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*This method is not used, metadata manipulation is required to create a Tile Entity.*/
|
/*This method is not used, metadata manipulation is required to create a Tile Entity.*/
|
||||||
|
|
|
@ -38,9 +38,6 @@ public class NEIMekanismConfig implements IConfigureNEI
|
||||||
API.setGuiOffset(GuiMetallurgicInfuser.class, 5, 15);
|
API.setGuiOffset(GuiMetallurgicInfuser.class, 5, 15);
|
||||||
|
|
||||||
API.hideItem(Mekanism.boundingBlockID);
|
API.hideItem(Mekanism.boundingBlockID);
|
||||||
API.hideItem(Mekanism.LiquidEnergy.itemID);
|
|
||||||
API.hideItem(Mekanism.LiquidHydrogen.itemID);
|
|
||||||
API.hideItem(Mekanism.LiquidOxygen.itemID);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in a new issue