Merge, hopefully without screwing too much up.
This commit is contained in:
parent
f982eb851c
commit
c1318d998b
11 changed files with 204 additions and 30 deletions
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
*.mtl
|
||||
*.blend1
|
||||
*.blend2
|
|
@ -9,6 +9,8 @@ public enum TransmissionType
|
|||
FLUID,
|
||||
GAS;
|
||||
|
||||
public static TransmissionType[] metaArray = {GAS, ENERGY, FLUID};
|
||||
|
||||
public static boolean checkTransmissionType(TileEntity sideTile, TransmissionType type)
|
||||
{
|
||||
return checkTransmissionType(sideTile, type, null);
|
||||
|
@ -39,4 +41,11 @@ public enum TransmissionType
|
|||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static TransmissionType fromOldMeta(int meta)
|
||||
{
|
||||
if(meta <= metaArray.length)
|
||||
return metaArray[meta];
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -10,6 +10,7 @@ import mekanism.client.model.ModelGasTank;
|
|||
import mekanism.client.model.ModelJetpack;
|
||||
import mekanism.client.model.ModelObsidianTNT;
|
||||
import mekanism.client.model.ModelRobit;
|
||||
import mekanism.client.model.ModelTransmitter;
|
||||
import mekanism.client.render.MekanismRenderer;
|
||||
import mekanism.client.render.tileentity.RenderBin;
|
||||
import mekanism.common.IElectricChest;
|
||||
|
@ -24,6 +25,7 @@ import mekanism.common.item.ItemJetpack;
|
|||
import mekanism.common.item.ItemRobit;
|
||||
import mekanism.common.item.ItemWalkieTalkie;
|
||||
import mekanism.common.tileentity.TileEntityBin;
|
||||
import mekanism.common.multipart.ItemPartTransmitter;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import mekanism.common.util.MekanismUtils.ResourceType;
|
||||
import net.minecraft.block.Block;
|
||||
|
@ -53,6 +55,8 @@ public class ItemRenderingHandler implements IItemRenderer
|
|||
{
|
||||
public ModelRobit robit = new ModelRobit();
|
||||
public ModelChest electricChest = new ModelChest();
|
||||
public ModelTransmitter transmitterSmall = new ModelTransmitter(ModelTransmitter.Size.SMALL);
|
||||
public ModelTransmitter transmitterLarge = new ModelTransmitter(ModelTransmitter.Size.LARGE);
|
||||
public ModelEnergyCube energyCube = new ModelEnergyCube();
|
||||
public ModelEnergyCore energyCore = new ModelEnergyCore();
|
||||
public ModelGasTank gasTank = new ModelGasTank();
|
||||
|
@ -313,6 +317,36 @@ public class ItemRenderingHandler implements IItemRenderer
|
|||
GL11.glTranslatef(0.2F, -0.35F, 0.0F);
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "Jetpack.png"));
|
||||
jetpack.render(0.0625F);
|
||||
}
|
||||
else if(item.getItem() instanceof ItemPartTransmitter)
|
||||
{
|
||||
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
|
||||
GL11.glRotatef(180F, 0.0F, -1.0F, 0.0F);
|
||||
GL11.glTranslated(0.0F, -1.0F, 0.0F);
|
||||
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||
|
||||
switch(item.getItem().getDamage(item))
|
||||
{
|
||||
case 0:
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "UniversalCable.png"));
|
||||
break;
|
||||
case 1:
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "MechanicalPipe.png"));
|
||||
break;
|
||||
case 2:
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "PressurizedTube.png"));
|
||||
break;
|
||||
case 3:
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "LogisticalTransporter.png"));
|
||||
break;
|
||||
}
|
||||
|
||||
transmitterSmall.renderSide(ForgeDirection.UP, true);
|
||||
transmitterSmall.renderSide(ForgeDirection.DOWN, true);
|
||||
transmitterSmall.renderCenter(new boolean[]{true, true, false, false, false, false});
|
||||
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
|
||||
}
|
||||
else {
|
||||
if(item.getItem() instanceof ItemBlockMachine)
|
||||
|
|
|
@ -166,6 +166,7 @@ public class CommonProxy
|
|||
Mekanism.controlCircuitOreDict = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "ControlCircuitOreDict", true).getBoolean(true);
|
||||
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.allowBackCrafting = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "Allow crafting multiparts back to block transmitters", false).getBoolean(false);
|
||||
Mekanism.voiceServerEnabled = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "VoiceServerEnabled", true).getBoolean(true);
|
||||
Mekanism.forceBuildcraft = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "ForceBuildcraftPower", false).getBoolean(false);
|
||||
Mekanism.overrideUERatios = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "OverrideUERatios", true).getBoolean(true);
|
||||
|
|
|
@ -244,6 +244,7 @@ public class Mekanism
|
|||
public static boolean controlCircuitOreDict = true;
|
||||
public static boolean logPackets = false;
|
||||
public static boolean dynamicTankEasterEgg = false;
|
||||
public static boolean allowBackCrafting = false;
|
||||
public static boolean voiceServerEnabled = true;
|
||||
public static boolean forceBuildcraft = false;
|
||||
public static boolean overrideUERatios = true;
|
||||
|
@ -486,6 +487,28 @@ public class Mekanism
|
|||
|
||||
CraftingManager.getInstance().getRecipeList().add(new BinRecipe());
|
||||
|
||||
//Transmitters
|
||||
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(PartTransmitter, 8, 0), new Object[] {
|
||||
"SRS", Character.valueOf('S'), "ingotSteel", Character.valueOf('R'), Item.redstone
|
||||
}));
|
||||
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(PartTransmitter, 8, 1), new Object[] {
|
||||
"SBS", Character.valueOf('S'), "ingotSteel", Character.valueOf('B'), Item.bucketEmpty
|
||||
}));
|
||||
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(PartTransmitter, 8, 2), new Object[] {
|
||||
"SGS", Character.valueOf('S'), "ingotSteel", Character.valueOf('G'), Block.glass
|
||||
}));
|
||||
CraftingManager.getInstance().addShapelessRecipe(new ItemStack(PartTransmitter, 1, 0), new ItemStack(Transmitter, 1, 1));
|
||||
CraftingManager.getInstance().addShapelessRecipe(new ItemStack(PartTransmitter, 1, 1), new ItemStack(Transmitter, 1, 2));
|
||||
CraftingManager.getInstance().addShapelessRecipe(new ItemStack(PartTransmitter, 1, 2), new ItemStack(Transmitter, 1, 0));
|
||||
CraftingManager.getInstance().addShapelessRecipe(new ItemStack(PartTransmitter, 1, 3), new ItemStack(Transmitter, 1, 3));
|
||||
if(allowBackCrafting)
|
||||
{
|
||||
CraftingManager.getInstance().addShapelessRecipe(new ItemStack(Transmitter, 1, 1), new ItemStack(PartTransmitter, 1, 0));
|
||||
CraftingManager.getInstance().addShapelessRecipe(new ItemStack(Transmitter, 1, 2), new ItemStack(PartTransmitter, 1, 1));
|
||||
CraftingManager.getInstance().addShapelessRecipe(new ItemStack(Transmitter, 1, 0), new ItemStack(PartTransmitter, 1, 2));
|
||||
CraftingManager.getInstance().addShapelessRecipe(new ItemStack(Transmitter, 1, 3), new ItemStack(PartTransmitter, 1, 3));
|
||||
}
|
||||
|
||||
//Furnace Recipes
|
||||
FurnaceRecipes.smelting().addSmelting(oreBlockID, 0, new ItemStack(Ingot, 1, 1), 1.0F);
|
||||
FurnaceRecipes.smelting().addSmelting(oreBlockID, 1, new ItemStack(Ingot, 1, 5), 1.0F);
|
||||
|
@ -1133,6 +1156,8 @@ public class Mekanism
|
|||
InfuseRegistry.registerInfuseType(new InfuseType("TIN", MekanismUtils.getResource(ResourceType.INFUSE, "Infusions.png"), 4, 0));
|
||||
InfuseRegistry.registerInfuseType(new InfuseType("DIAMOND", MekanismUtils.getResource(ResourceType.INFUSE, "Infusions.png"), 8, 0));
|
||||
InfuseRegistry.registerInfuseType(new InfuseType("REDSTONE", MekanismUtils.getResource(ResourceType.INFUSE, "Infusions.png"), 16, 0));
|
||||
|
||||
new MultipartMekanism().init();
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
|
|
@ -2,6 +2,9 @@ package mekanism.common.multipart;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import org.lwjgl.input.Keyboard;
|
||||
|
||||
import mekanism.api.EnumColor;
|
||||
import mekanism.api.transmitters.TransmissionType;
|
||||
import mekanism.client.render.RenderPartTransmitter;
|
||||
import mekanism.common.Mekanism;
|
||||
|
@ -40,6 +43,45 @@ public class ItemPartTransmitter extends JItemMultiPart
|
|||
return damage;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void addInformation(ItemStack itemstack, EntityPlayer entityplayer, List list, boolean flag)
|
||||
{
|
||||
if(!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))
|
||||
{
|
||||
list.add("Hold " + EnumColor.AQUA + "shift" + EnumColor.GREY + " for details.");
|
||||
}
|
||||
else {
|
||||
switch(itemstack.getItemDamage())
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
list.add(EnumColor.DARK_GREY + "Capable of transferring:");
|
||||
list.add("- " + EnumColor.PURPLE + "EU " + EnumColor.GREY + "(IndustrialCraft)");
|
||||
list.add("- " + EnumColor.PURPLE + "MJ " + EnumColor.GREY + "(BuildCraft)");
|
||||
list.add("- " + EnumColor.PURPLE + "Joules " + EnumColor.GREY + "(Mekanism)");
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
list.add(EnumColor.DARK_GREY + "Capable of transferring:");
|
||||
list.add("- " + EnumColor.PURPLE + "mB " + EnumColor.GREY + "(FluidRegistry)");
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
list.add(EnumColor.DARK_GREY + "Capable of transferring:");
|
||||
list.add("- " + EnumColor.PURPLE + "O " + EnumColor.GREY + "(Oxygen)");
|
||||
list.add("- " + EnumColor.PURPLE + "H " + EnumColor.GREY + "(Hydrogen)");
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
list.add(EnumColor.DARK_GREY + "Capable of transferring:");
|
||||
list.add("- " + EnumColor.PURPLE + "Items (universal)");
|
||||
list.add("- " + EnumColor.PURPLE + "Blocks (universal)");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getSubItems(int itemID, CreativeTabs tab, List listToAddTo) {
|
||||
for (TransmissionType type : TransmissionType.values()) {
|
||||
|
|
|
@ -1,17 +1,30 @@
|
|||
package mekanism.common.multipart;
|
||||
|
||||
import mekanism.api.transmitters.TransmissionType;
|
||||
import mekanism.common.Mekanism;
|
||||
import net.minecraft.world.World;
|
||||
import codechicken.lib.vec.BlockCoord;
|
||||
import codechicken.multipart.MultiPartRegistry;
|
||||
import codechicken.multipart.MultiPartRegistry.IPartConverter;
|
||||
import codechicken.multipart.MultiPartRegistry.IPartFactory;
|
||||
import codechicken.multipart.MultipartGenerator;
|
||||
import codechicken.multipart.TMultiPart;
|
||||
|
||||
public class MultipartMekanism implements IPartFactory
|
||||
public class MultipartMekanism implements IPartFactory, IPartConverter
|
||||
{
|
||||
public MultipartMekanism()
|
||||
{
|
||||
init();
|
||||
}
|
||||
|
||||
public void init()
|
||||
{
|
||||
MultiPartRegistry.registerConverter(this);
|
||||
MultiPartRegistry.registerParts(this, new String[]{"mekanism:universal_cable", "mekanism:mechanical_pipe", "mekanism:pressurized_tube", "mekanism:logistical_transporter"});
|
||||
MultipartGenerator.registerPassThroughInterface("mekanism.api.transmitters.ITransmitter");
|
||||
MultipartGenerator.registerPassThroughInterface("ic2.api.energy.tile.IEnergySink");
|
||||
}
|
||||
|
||||
@Override
|
||||
public TMultiPart createPart(String name, boolean client)
|
||||
{
|
||||
|
@ -21,17 +34,25 @@ public class MultipartMekanism implements IPartFactory
|
|||
return new PartMechanicalPipe();
|
||||
if(name == "mekanism:pressurized_tube")
|
||||
return new PartPressurizedTube();
|
||||
// if(name == "mekanism:logistical_transporter")
|
||||
// return new PartLogisticalTransporter();
|
||||
return null;
|
||||
}
|
||||
|
||||
public void init()
|
||||
@Override
|
||||
public boolean canConvert(int blockID)
|
||||
{
|
||||
MultiPartRegistry.registerParts(this, new String[]{"mekanism:universal_cable", "mekanism:mechanical_pipe", "mekanism:pressurized_tube"});
|
||||
return blockID == Mekanism.transmitterID;
|
||||
}
|
||||
|
||||
MultipartGenerator.registerPassThroughInterface("mekanism.api.transmitters.ITransmitter");
|
||||
MultipartGenerator.registerPassThroughInterface("mekanism.common.ITileNetwork");
|
||||
MultipartGenerator.registerPassThroughInterface("cofh.api.energy.IEnergyHandler");
|
||||
MultipartGenerator.registerPassThroughInterface("universalelectricity.core.block.IElectrical");
|
||||
MultipartGenerator.registerPassThroughInterface("ic2.api.energy.tile.IEnergySink");
|
||||
@Override
|
||||
public TMultiPart convert(World world, BlockCoord pos)
|
||||
{
|
||||
if(world.getBlockId(pos.x, pos.y, pos.z) == Mekanism.transmitterID)
|
||||
{
|
||||
int meta = world.getBlockMetadata(pos.x, pos.y, pos.z);
|
||||
return PartTransmitter.getPartType(TransmissionType.fromOldMeta(meta));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -134,6 +134,7 @@ public class PartMechanicalPipe extends PartTransmitter<FluidNetwork> implements
|
|||
}
|
||||
}
|
||||
}
|
||||
super.update();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -53,6 +53,7 @@ public abstract class PartTransmitter<N extends DynamicNetwork<?, N>> extends TM
|
|||
public byte currentAcceptorConnections = 0x00;
|
||||
public byte currentTransmitterConnections = 0x00;
|
||||
public boolean isActive = false;
|
||||
public boolean sendDesc;
|
||||
|
||||
static
|
||||
{
|
||||
|
@ -94,6 +95,29 @@ public abstract class PartTransmitter<N extends DynamicNetwork<?, N>> extends TM
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update()
|
||||
{
|
||||
if(world().isRemote)
|
||||
{
|
||||
if(delayTicks == 3)
|
||||
{
|
||||
delayTicks++;
|
||||
refreshTransmitterNetwork();
|
||||
}
|
||||
else if(delayTicks < 3)
|
||||
{
|
||||
delayTicks++;
|
||||
}
|
||||
}
|
||||
|
||||
if(sendDesc)
|
||||
{
|
||||
sendDescUpdate();
|
||||
sendDesc = false;
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean connectionMapContainsSide(byte connections, ForgeDirection side)
|
||||
{
|
||||
byte tester = (byte) (1 << side.ordinal());
|
||||
|
@ -187,7 +211,7 @@ public abstract class PartTransmitter<N extends DynamicNetwork<?, N>> extends TM
|
|||
currentTransmitterConnections = possibleTransmitters;
|
||||
currentAcceptorConnections = possibleAcceptors;
|
||||
|
||||
sendDescUpdate();
|
||||
sendDesc = true;;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -423,6 +447,8 @@ public abstract class PartTransmitter<N extends DynamicNetwork<?, N>> extends TM
|
|||
@Override
|
||||
public boolean activate(EntityPlayer player, MovingObjectPosition part, ItemStack item)
|
||||
{
|
||||
if(item == null)
|
||||
return false;
|
||||
if(item.getItem() instanceof ItemConfigurator && player.isSneaking())
|
||||
{
|
||||
isActive ^= true;
|
||||
|
@ -446,7 +472,13 @@ public abstract class PartTransmitter<N extends DynamicNetwork<?, N>> extends TM
|
|||
@Override
|
||||
public Iterable<ItemStack> getDrops()
|
||||
{
|
||||
return Collections.singletonList(new ItemStack(Mekanism.PartTransmitter, 1, getTransmissionType().ordinal()));
|
||||
return Collections.singletonList(pickItem(null));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack pickItem(MovingObjectPosition hit)
|
||||
{
|
||||
return new ItemStack(Mekanism.PartTransmitter, 1, getTransmissionType().ordinal());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -465,23 +497,6 @@ public abstract class PartTransmitter<N extends DynamicNetwork<?, N>> extends TM
|
|||
super.preRemove();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update()
|
||||
{
|
||||
if(world().isRemote)
|
||||
{
|
||||
if(delayTicks == 3)
|
||||
{
|
||||
delayTicks++;
|
||||
refreshTransmitterNetwork();
|
||||
}
|
||||
else if(delayTicks < 3)
|
||||
{
|
||||
delayTicks++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean doesTick()
|
||||
{
|
||||
|
|
|
@ -2,13 +2,34 @@ package mekanism.common.multipart;
|
|||
|
||||
import ic2.api.energy.event.EnergyTileLoadEvent;
|
||||
import ic2.api.energy.event.EnergyTileUnloadEvent;
|
||||
import ic2.api.energy.tile.IEnergyAcceptor;
|
||||
import ic2.api.energy.tile.IEnergySink;
|
||||
import ic2.api.energy.tile.IEnergyTile;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import codechicken.lib.vec.Vector3;
|
||||
import codechicken.multipart.TileMultipart;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import universalelectricity.core.block.IConductor;
|
||||
import universalelectricity.core.block.IElectrical;
|
||||
import universalelectricity.core.electricity.ElectricityPack;
|
||||
import universalelectricity.core.grid.IElectricityNetwork;
|
||||
import buildcraft.api.power.IPowerEmitter;
|
||||
import buildcraft.api.power.IPowerReceptor;
|
||||
import buildcraft.api.power.PowerHandler;
|
||||
import buildcraft.api.power.PowerHandler.PowerReceiver;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import mekanism.api.Object3D;
|
||||
import mekanism.api.energy.ICableOutputter;
|
||||
import mekanism.api.energy.IStrictEnergyAcceptor;
|
||||
import mekanism.api.transmitters.ITransmitter;
|
||||
import mekanism.api.transmitters.TransmissionType;
|
||||
import mekanism.client.render.RenderPartTransmitter;
|
||||
|
|
|
@ -162,6 +162,8 @@ public class TileEntityUniversalCable extends TileEntityTransmitter<EnergyNetwor
|
|||
Mekanism.ic2Registered.add(Object3D.get(this));
|
||||
MinecraftForge.EVENT_BUS.post(new EnergyTileLoadEvent(this));
|
||||
}
|
||||
|
||||
getTransmitterNetwork().refresh();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue