diff --git a/electrical/src/main/java/resonantinduction/electrical/generator/TileGenerator.java b/electrical/src/main/java/resonantinduction/electrical/generator/TileGenerator.java index d1a3162b..bf7f052f 100644 --- a/electrical/src/main/java/resonantinduction/electrical/generator/TileGenerator.java +++ b/electrical/src/main/java/resonantinduction/electrical/generator/TileGenerator.java @@ -27,7 +27,7 @@ public class TileGenerator extends TileElectrical implements IRotatable public TileGenerator() { - energy = new EnergyStorageHandler(100000); + energy = new EnergyStorageHandler(1000000); } public byte toggleGearRatio() @@ -63,12 +63,12 @@ public class TileGenerator extends TileElectrical implements IRotatable if (mech != null) { - long receive = energy.receiveEnergy((long) Math.abs(mech.getTorque() * mech.getAngularVelocity()), true); + long power = (long) Math.abs(mech.getTorque() * mech.getAngularVelocity()); + long receive = energy.receiveEnergy(power, true); if (receive > 0) { - double percentageUsed = (double) receive / ((double) mech.getTorque() * (double) mech.getAngularVelocity()); - // TODO: Make sure this calculation/decrease is correct! + double percentageUsed = (double) receive / (double) power; mech.setTorque((long) (mech.getTorque() - (mech.getTorque() * percentageUsed))); mech.setAngularVelocity((float) (mech.getAngularVelocity() - (mech.getAngularVelocity() * percentageUsed))); } @@ -90,7 +90,7 @@ public class TileGenerator extends TileElectrical implements IRotatable { if (extract > 0) { - long torqueRatio = (long) ((gearRatio + 1) / 5d * (extract)); + long torqueRatio = (long) ((gearRatio + 1) / 4d * (extract)); final float maxAngularVelocity = extract / (float) torqueRatio; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/ClientProxy.java b/mechanical/src/main/java/resonantinduction/mechanical/ClientProxy.java index 2160a624..9ca3d3fc 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/ClientProxy.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/ClientProxy.java @@ -1,10 +1,10 @@ package resonantinduction.mechanical; import net.minecraftforge.client.MinecraftForgeClient; +import resonantinduction.mechanical.energy.gear.RenderGear; +import resonantinduction.mechanical.energy.gear.RenderGearShaft; import resonantinduction.mechanical.fluid.pipe.RenderPipe; import resonantinduction.mechanical.fluid.tank.ItemTankRenderer; -import resonantinduction.mechanical.gear.RenderGear; -import resonantinduction.mechanical.gear.RenderGearShaft; import calclavia.lib.render.item.GlobalItemRenderer; public class ClientProxy extends CommonProxy diff --git a/mechanical/src/main/java/resonantinduction/mechanical/Mechanical.java b/mechanical/src/main/java/resonantinduction/mechanical/Mechanical.java index ea188228..8b9aeb65 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/Mechanical.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/Mechanical.java @@ -13,6 +13,15 @@ import resonantinduction.core.Settings; import resonantinduction.core.TabRI; import resonantinduction.mechanical.belt.BlockConveyorBelt; import resonantinduction.mechanical.belt.TileConveyorBelt; +import resonantinduction.mechanical.energy.gear.ItemGear; +import resonantinduction.mechanical.energy.gear.ItemGearShaft; +import resonantinduction.mechanical.energy.network.PacketNetwork; +import resonantinduction.mechanical.energy.turbine.BlockWaterTurbine; +import resonantinduction.mechanical.energy.turbine.BlockWindTurbine; +import resonantinduction.mechanical.energy.turbine.SchematicWaterTurbine; +import resonantinduction.mechanical.energy.turbine.SchematicWindTurbine; +import resonantinduction.mechanical.energy.turbine.TileWaterTurbine; +import resonantinduction.mechanical.energy.turbine.TileWindTurbine; import resonantinduction.mechanical.fluid.pipe.ItemBlockFluidContainer; import resonantinduction.mechanical.fluid.pipe.ItemPipe; import resonantinduction.mechanical.fluid.tank.BlockTank; @@ -21,15 +30,12 @@ import resonantinduction.mechanical.fluid.transport.BlockGrate; import resonantinduction.mechanical.fluid.transport.BlockPump; import resonantinduction.mechanical.fluid.transport.TileGrate; import resonantinduction.mechanical.fluid.transport.TilePump; -import resonantinduction.mechanical.gear.ItemGear; -import resonantinduction.mechanical.gear.ItemGearShaft; import resonantinduction.mechanical.logistic.belt.BlockDetector; import resonantinduction.mechanical.logistic.belt.BlockManipulator; import resonantinduction.mechanical.logistic.belt.BlockRejector; import resonantinduction.mechanical.logistic.belt.TileDetector; import resonantinduction.mechanical.logistic.belt.TileManipulator; import resonantinduction.mechanical.logistic.belt.TileRejector; -import resonantinduction.mechanical.network.PacketNetwork; import resonantinduction.mechanical.process.BlockFilter; import resonantinduction.mechanical.process.TileFilter; import resonantinduction.mechanical.process.crusher.BlockMechanicalPiston; @@ -38,13 +44,11 @@ import resonantinduction.mechanical.process.grinder.BlockGrindingWheel; import resonantinduction.mechanical.process.grinder.TileGrinderWheel; import resonantinduction.mechanical.process.purifier.BlockMixer; import resonantinduction.mechanical.process.purifier.TileMixer; -import resonantinduction.mechanical.turbine.BlockWaterTurbine; -import resonantinduction.mechanical.turbine.BlockWindTurbine; -import resonantinduction.mechanical.turbine.TileWaterTurbine; -import resonantinduction.mechanical.turbine.TileWindTurbine; +import calclavia.components.creative.BlockCreativeBuilder; import calclavia.lib.content.ContentRegistry; import calclavia.lib.network.PacketAnnotation; import calclavia.lib.network.PacketHandler; +import calclavia.lib.prefab.item.ItemBlockMetadata; import calclavia.lib.recipe.UniversalRecipe; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; @@ -85,8 +89,8 @@ public class Mechanical // Energy public static Item itemGear; public static Item itemGearShaft; - public static Block windTurbine; - public static Block waterTurbine; + public static Block blockWindTurbine; + public static Block blockWaterTurbine; // Transport public static Block blockConveyorBelt; @@ -115,11 +119,13 @@ public class Mechanical Settings.load(); NetworkRegistry.instance().registerGuiHandler(this, proxy); MinecraftForge.EVENT_BUS.register(new MicroblockHighlightHandler()); + BlockCreativeBuilder.register(new SchematicWindTurbine()); + BlockCreativeBuilder.register(new SchematicWaterTurbine()); itemGear = contentRegistry.createItem(ItemGear.class); itemGearShaft = contentRegistry.createItem(ItemGearShaft.class); - windTurbine = contentRegistry.createTile(BlockWindTurbine.class, TileWindTurbine.class); - waterTurbine = contentRegistry.createTile(BlockWaterTurbine.class, TileWaterTurbine.class); + blockWindTurbine = contentRegistry.createBlock(BlockWindTurbine.class, ItemBlockMetadata.class, TileWindTurbine.class); + blockWaterTurbine = contentRegistry.createBlock(BlockWaterTurbine.class, ItemBlockMetadata.class, TileWaterTurbine.class); blockConveyorBelt = contentRegistry.createTile(BlockConveyorBelt.class, TileConveyorBelt.class); blockManipulator = contentRegistry.createTile(BlockManipulator.class, TileManipulator.class); @@ -171,8 +177,8 @@ public class Mechanical GameRegistry.addRecipe(new ShapedOreRecipe(blockDetector, "SWS", "SRS", "SWS", 'S', Item.ingotIron, 'W', UniversalRecipe.WIRE.get())); GameRegistry.addRecipe(new ShapedOreRecipe(blockRejector, "S S", "SPS", "SRS", 'P', Block.pistonBase, 'S', Item.ingotIron, 'R', Item.redstone)); - GameRegistry.addRecipe(new ShapedOreRecipe(windTurbine, "CWC", "WGW", "CWC", 'G', itemGear, 'C', Block.cloth, 'W', "plankWood")); - GameRegistry.addRecipe(new ShapedOreRecipe(waterTurbine, " W ", "WGW", " W ", 'G', itemGear, 'W', UniversalRecipe.PRIMARY_METAL.get())); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blockWindTurbine, 1, 0), "CWC", "WGW", "CWC", 'G', itemGear, 'C', Block.cloth, 'W', "plankWood")); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blockWaterTurbine, 1, 0), " W ", "WGW", " W ", 'G', itemGear, 'W', UniversalRecipe.PRIMARY_METAL.get())); GameRegistry.addRecipe(new ShapedOreRecipe(blockTank, "GGG", "GSG", "GGG", 'G', Block.glass, 'S', Item.ingotIron)); GameRegistry.addRecipe(new ShapedOreRecipe(blockGrate, "BBB", "B B", "BBB", 'B', Block.fenceIron)); diff --git a/mechanical/src/main/java/resonantinduction/mechanical/MultipartMechanical.java b/mechanical/src/main/java/resonantinduction/mechanical/MultipartMechanical.java index 1cfd70fb..e1eabc34 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/MultipartMechanical.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/MultipartMechanical.java @@ -1,8 +1,8 @@ package resonantinduction.mechanical; +import resonantinduction.mechanical.energy.gear.PartGear; +import resonantinduction.mechanical.energy.gear.PartGearShaft; import resonantinduction.mechanical.fluid.pipe.PartPipe; -import resonantinduction.mechanical.gear.PartGear; -import resonantinduction.mechanical.gear.PartGearShaft; import codechicken.multipart.MultiPartRegistry; import codechicken.multipart.MultiPartRegistry.IPartFactory; import codechicken.multipart.MultipartGenerator; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/belt/TileConveyorBelt.java b/mechanical/src/main/java/resonantinduction/mechanical/belt/TileConveyorBelt.java index 0f1d7f78..1eb330ec 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/belt/TileConveyorBelt.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/belt/TileConveyorBelt.java @@ -16,7 +16,7 @@ import resonantinduction.api.mechanical.IMechanical; import resonantinduction.core.Reference; import resonantinduction.core.ResonantInduction; import resonantinduction.mechanical.Mechanical; -import resonantinduction.mechanical.network.TileMechanical; +import resonantinduction.mechanical.energy.network.TileMechanical; import universalelectricity.api.vector.Vector3; import calclavia.lib.prefab.tile.IRotatable; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/gear/ConnectionLogic.java b/mechanical/src/main/java/resonantinduction/mechanical/energy/gear/ConnectionLogic.java similarity index 97% rename from mechanical/src/main/java/resonantinduction/mechanical/gear/ConnectionLogic.java rename to mechanical/src/main/java/resonantinduction/mechanical/energy/gear/ConnectionLogic.java index c92af232..3c970cbb 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/gear/ConnectionLogic.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/energy/gear/ConnectionLogic.java @@ -1,4 +1,4 @@ -package resonantinduction.mechanical.gear; +package resonantinduction.mechanical.energy.gear; import java.util.HashMap; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/gear/GearMultiBlockHandler.java b/mechanical/src/main/java/resonantinduction/mechanical/energy/gear/GearMultiBlockHandler.java similarity index 94% rename from mechanical/src/main/java/resonantinduction/mechanical/gear/GearMultiBlockHandler.java rename to mechanical/src/main/java/resonantinduction/mechanical/energy/gear/GearMultiBlockHandler.java index 060b9580..90d698ba 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/gear/GearMultiBlockHandler.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/energy/gear/GearMultiBlockHandler.java @@ -1,4 +1,4 @@ -package resonantinduction.mechanical.gear; +package resonantinduction.mechanical.energy.gear; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.ForgeDirection; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/gear/ItemGear.java b/mechanical/src/main/java/resonantinduction/mechanical/energy/gear/ItemGear.java similarity index 97% rename from mechanical/src/main/java/resonantinduction/mechanical/gear/ItemGear.java rename to mechanical/src/main/java/resonantinduction/mechanical/energy/gear/ItemGear.java index eb4c2016..cce6eaea 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/gear/ItemGear.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/energy/gear/ItemGear.java @@ -1,4 +1,4 @@ -package resonantinduction.mechanical.gear; +package resonantinduction.mechanical.energy.gear; import java.util.List; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/gear/ItemGearShaft.java b/mechanical/src/main/java/resonantinduction/mechanical/energy/gear/ItemGearShaft.java similarity index 96% rename from mechanical/src/main/java/resonantinduction/mechanical/gear/ItemGearShaft.java rename to mechanical/src/main/java/resonantinduction/mechanical/energy/gear/ItemGearShaft.java index 713946e4..acf746c7 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/gear/ItemGearShaft.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/energy/gear/ItemGearShaft.java @@ -1,4 +1,4 @@ -package resonantinduction.mechanical.gear; +package resonantinduction.mechanical.energy.gear; import java.util.List; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/gear/PartGear.java b/mechanical/src/main/java/resonantinduction/mechanical/energy/gear/PartGear.java similarity index 99% rename from mechanical/src/main/java/resonantinduction/mechanical/gear/PartGear.java rename to mechanical/src/main/java/resonantinduction/mechanical/energy/gear/PartGear.java index 5b4de9c0..8d1cfe02 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/gear/PartGear.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/energy/gear/PartGear.java @@ -1,4 +1,4 @@ -package resonantinduction.mechanical.gear; +package resonantinduction.mechanical.energy.gear; import java.lang.ref.WeakReference; import java.util.Arrays; @@ -16,7 +16,7 @@ import resonantinduction.api.mechanical.IMechanical; import resonantinduction.core.Reference; import resonantinduction.core.resource.ItemHandCrank; import resonantinduction.mechanical.Mechanical; -import resonantinduction.mechanical.network.PartMechanical; +import resonantinduction.mechanical.energy.network.PartMechanical; import calclavia.lib.multiblock.reference.IMultiBlockStructure; import calclavia.lib.multiblock.reference.MultiBlockHandler; import calclavia.lib.utility.WrenchUtility; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/gear/PartGearShaft.java b/mechanical/src/main/java/resonantinduction/mechanical/energy/gear/PartGearShaft.java similarity index 98% rename from mechanical/src/main/java/resonantinduction/mechanical/gear/PartGearShaft.java rename to mechanical/src/main/java/resonantinduction/mechanical/energy/gear/PartGearShaft.java index b8cfb899..52a01078 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/gear/PartGearShaft.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/energy/gear/PartGearShaft.java @@ -1,4 +1,4 @@ -package resonantinduction.mechanical.gear; +package resonantinduction.mechanical.energy.gear; import java.lang.ref.WeakReference; import java.util.Collection; @@ -10,7 +10,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.ForgeDirection; import resonantinduction.api.mechanical.IMechanical; import resonantinduction.mechanical.Mechanical; -import resonantinduction.mechanical.network.PartMechanical; +import resonantinduction.mechanical.energy.network.PartMechanical; import codechicken.lib.raytracer.IndexedCuboid6; import codechicken.lib.vec.Cuboid6; import codechicken.lib.vec.Vector3; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/gear/RenderGear.java b/mechanical/src/main/java/resonantinduction/mechanical/energy/gear/RenderGear.java similarity index 97% rename from mechanical/src/main/java/resonantinduction/mechanical/gear/RenderGear.java rename to mechanical/src/main/java/resonantinduction/mechanical/energy/gear/RenderGear.java index c4553793..d6833b3f 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/gear/RenderGear.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/energy/gear/RenderGear.java @@ -1,4 +1,4 @@ -package resonantinduction.mechanical.gear; +package resonantinduction.mechanical.energy.gear; import net.minecraft.item.ItemStack; import net.minecraftforge.client.model.AdvancedModelLoader; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/gear/RenderGearShaft.java b/mechanical/src/main/java/resonantinduction/mechanical/energy/gear/RenderGearShaft.java similarity index 97% rename from mechanical/src/main/java/resonantinduction/mechanical/gear/RenderGearShaft.java rename to mechanical/src/main/java/resonantinduction/mechanical/energy/gear/RenderGearShaft.java index f123a752..4d09b946 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/gear/RenderGearShaft.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/energy/gear/RenderGearShaft.java @@ -1,4 +1,4 @@ -package resonantinduction.mechanical.gear; +package resonantinduction.mechanical.energy.gear; import static org.lwjgl.opengl.GL11.glRotatef; import net.minecraft.item.ItemStack; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/network/MechanicalNetwork.java b/mechanical/src/main/java/resonantinduction/mechanical/energy/network/MechanicalNetwork.java similarity index 98% rename from mechanical/src/main/java/resonantinduction/mechanical/network/MechanicalNetwork.java rename to mechanical/src/main/java/resonantinduction/mechanical/energy/network/MechanicalNetwork.java index 512d99f6..6d53fa16 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/network/MechanicalNetwork.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/energy/network/MechanicalNetwork.java @@ -1,4 +1,4 @@ -package resonantinduction.mechanical.network; +package resonantinduction.mechanical.energy.network; import java.util.EnumSet; import java.util.HashMap; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/network/PacketNetwork.java b/mechanical/src/main/java/resonantinduction/mechanical/energy/network/PacketNetwork.java similarity index 97% rename from mechanical/src/main/java/resonantinduction/mechanical/network/PacketNetwork.java rename to mechanical/src/main/java/resonantinduction/mechanical/energy/network/PacketNetwork.java index 657a95e5..606e6aee 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/network/PacketNetwork.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/energy/network/PacketNetwork.java @@ -1,4 +1,4 @@ -package resonantinduction.mechanical.network; +package resonantinduction.mechanical.energy.network; import java.util.ArrayList; import java.util.List; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/network/PartMechanical.java b/mechanical/src/main/java/resonantinduction/mechanical/energy/network/PartMechanical.java similarity index 99% rename from mechanical/src/main/java/resonantinduction/mechanical/network/PartMechanical.java rename to mechanical/src/main/java/resonantinduction/mechanical/energy/network/PartMechanical.java index 7f238da4..bedd67a0 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/network/PartMechanical.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/energy/network/PartMechanical.java @@ -1,4 +1,4 @@ -package resonantinduction.mechanical.network; +package resonantinduction.mechanical.energy.network; import java.lang.ref.WeakReference; import java.util.ArrayList; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/network/TileMechanical.java b/mechanical/src/main/java/resonantinduction/mechanical/energy/network/TileMechanical.java similarity index 97% rename from mechanical/src/main/java/resonantinduction/mechanical/network/TileMechanical.java rename to mechanical/src/main/java/resonantinduction/mechanical/energy/network/TileMechanical.java index da756f28..19aad58d 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/network/TileMechanical.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/energy/network/TileMechanical.java @@ -1,4 +1,4 @@ -package resonantinduction.mechanical.network; +package resonantinduction.mechanical.energy.network; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; @@ -8,7 +8,7 @@ import resonantinduction.api.mechanical.IMechanical; import resonantinduction.api.mechanical.IMechanicalNetwork; import resonantinduction.core.ResonantInduction; import resonantinduction.mechanical.Mechanical; -import resonantinduction.mechanical.gear.PartGearShaft; +import resonantinduction.mechanical.energy.gear.PartGearShaft; import universalelectricity.api.vector.Vector3; import calclavia.lib.network.IPacketReceiver; import calclavia.lib.network.PacketHandler; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/turbine/BlockWaterTurbine.java b/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/BlockWaterTurbine.java similarity index 96% rename from mechanical/src/main/java/resonantinduction/mechanical/turbine/BlockWaterTurbine.java rename to mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/BlockWaterTurbine.java index 8683606e..e1b51ec1 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/turbine/BlockWaterTurbine.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/BlockWaterTurbine.java @@ -1,4 +1,4 @@ -package resonantinduction.mechanical.turbine; +package resonantinduction.mechanical.energy.turbine; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/turbine/BlockWindTurbine.java b/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/BlockWindTurbine.java similarity index 98% rename from mechanical/src/main/java/resonantinduction/mechanical/turbine/BlockWindTurbine.java rename to mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/BlockWindTurbine.java index 0b895273..658cce2b 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/turbine/BlockWindTurbine.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/BlockWindTurbine.java @@ -1,4 +1,4 @@ -package resonantinduction.mechanical.turbine; +package resonantinduction.mechanical.energy.turbine; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/turbine/RenderWaterTurbine.java b/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/RenderWaterTurbine.java similarity index 98% rename from mechanical/src/main/java/resonantinduction/mechanical/turbine/RenderWaterTurbine.java rename to mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/RenderWaterTurbine.java index be97ce22..46b6006c 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/turbine/RenderWaterTurbine.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/RenderWaterTurbine.java @@ -1,4 +1,4 @@ -package resonantinduction.mechanical.turbine; +package resonantinduction.mechanical.energy.turbine; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.ItemStack; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/turbine/RenderWindTurbine.java b/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/RenderWindTurbine.java similarity index 90% rename from mechanical/src/main/java/resonantinduction/mechanical/turbine/RenderWindTurbine.java rename to mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/RenderWindTurbine.java index 68c0e1eb..300a44ed 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/turbine/RenderWindTurbine.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/RenderWindTurbine.java @@ -1,4 +1,4 @@ -package resonantinduction.mechanical.turbine; +package resonantinduction.mechanical.energy.turbine; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; @@ -44,14 +44,14 @@ public class RenderWindTurbine extends TileEntitySpecialRenderer if (tile.getMultiBlock().isConstructed()) { GL11.glScalef(0.3f, 1, 0.3f); - GL11.glScalef(tile.multiBlockRadius * 2 + 1, 1, tile.multiBlockRadius * 2 + 1); + GL11.glScalef(tile.multiBlockRadius * 2 + 1, Math.min(tile.multiBlockRadius, 2), tile.multiBlockRadius * 2 + 1); RenderUtility.bind(Reference.BLOCK_TEXTURE_DIRECTORY + "planks_oak.png"); MODEL.renderOnly("LargeBladeArm"); RenderUtility.bind(Reference.BLOCK_TEXTURE_DIRECTORY + "wool_colored_white.png"); MODEL.renderOnly("LargeBlade"); RenderUtility.bind(Reference.BLOCK_TEXTURE_DIRECTORY + "cobblestone.png"); GL11.glScalef(1f, 2f, 1f); - GL11.glTranslatef(0, -0.08f, 0); + GL11.glTranslatef(0, -0.05f, 0); MODEL.renderOnly("LargeHub"); } else diff --git a/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/SchematicWaterTurbine.java b/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/SchematicWaterTurbine.java new file mode 100644 index 00000000..cc90e92d --- /dev/null +++ b/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/SchematicWaterTurbine.java @@ -0,0 +1,44 @@ +package resonantinduction.mechanical.energy.turbine; + +import java.util.HashMap; + +import net.minecraftforge.common.ForgeDirection; +import resonantinduction.mechanical.Mechanical; +import universalelectricity.api.vector.Vector3; +import calclavia.lib.schematic.Schematic; + +import com.builtbroken.common.Pair; + +public class SchematicWaterTurbine extends Schematic +{ + @Override + public String getName() + { + return "schematic.waterTurbine.name"; + } + + @Override + public HashMap> getStructure(ForgeDirection dir, int size) + { + HashMap> returnMap = new HashMap>(); + + int r = size; + + for (int x = -r; x <= r; x++) + { + for (int y = -r; y <= r; y++) + { + for (int z = -r; z <= r; z++) + { + if ((dir.offsetX != 0 && x == 0) || (dir.offsetY != 0 && y == 0) || (dir.offsetZ != 0 && z == 0)) + { + Vector3 targetPosition = new Vector3(x, y, z); + returnMap.put(targetPosition, new Pair(Mechanical.blockWaterTurbine.blockID, dir.ordinal())); + } + } + } + } + + return returnMap; + } +} diff --git a/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/SchematicWindTurbine.java b/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/SchematicWindTurbine.java new file mode 100644 index 00000000..e6edf231 --- /dev/null +++ b/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/SchematicWindTurbine.java @@ -0,0 +1,44 @@ +package resonantinduction.mechanical.energy.turbine; + +import java.util.HashMap; + +import net.minecraftforge.common.ForgeDirection; +import resonantinduction.mechanical.Mechanical; +import universalelectricity.api.vector.Vector3; +import calclavia.lib.schematic.Schematic; + +import com.builtbroken.common.Pair; + +public class SchematicWindTurbine extends Schematic +{ + @Override + public String getName() + { + return "schematic.windTurbine.name"; + } + + @Override + public HashMap> getStructure(ForgeDirection dir, int size) + { + HashMap> returnMap = new HashMap>(); + + int r = size; + + for (int x = -r; x <= r; x++) + { + for (int y = -r; y <= r; y++) + { + for (int z = -r; z <= r; z++) + { + if ((dir.offsetX != 0 && x == 0) || (dir.offsetY != 0 && y == 0) || (dir.offsetZ != 0 && z == 0)) + { + Vector3 targetPosition = new Vector3(x, y, z); + returnMap.put(targetPosition, new Pair(Mechanical.blockWindTurbine.blockID, dir.ordinal())); + } + } + } + } + + return returnMap; + } +} diff --git a/mechanical/src/main/java/resonantinduction/mechanical/turbine/TileMechanicalTurbine.java b/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/TileMechanicalTurbine.java similarity index 90% rename from mechanical/src/main/java/resonantinduction/mechanical/turbine/TileMechanicalTurbine.java rename to mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/TileMechanicalTurbine.java index cb5c3f93..f0a3b65c 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/turbine/TileMechanicalTurbine.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/TileMechanicalTurbine.java @@ -1,15 +1,21 @@ -package resonantinduction.mechanical.turbine; +package resonantinduction.mechanical.energy.turbine; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.ForgeDirection; import resonantinduction.api.mechanical.IMechanical; import resonantinduction.api.mechanical.IMechanicalNetwork; -import resonantinduction.mechanical.network.MechanicalNetwork; +import resonantinduction.mechanical.energy.network.MechanicalNetwork; +import universalelectricity.api.energy.EnergyStorageHandler; import universalelectricity.api.vector.Vector3; import calclavia.lib.prefab.turbine.TileTurbine; public class TileMechanicalTurbine extends TileTurbine implements IMechanical { + public TileMechanicalTurbine() + { + super(); + energy = new EnergyStorageHandler(0); + } /** * Mechanical Methods diff --git a/mechanical/src/main/java/resonantinduction/mechanical/turbine/TileWaterTurbine.java b/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/TileWaterTurbine.java similarity index 98% rename from mechanical/src/main/java/resonantinduction/mechanical/turbine/TileWaterTurbine.java rename to mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/TileWaterTurbine.java index 66cdcdba..81e6b603 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/turbine/TileWaterTurbine.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/TileWaterTurbine.java @@ -1,4 +1,4 @@ -package resonantinduction.mechanical.turbine; +package resonantinduction.mechanical.energy.turbine; import java.lang.reflect.Method; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/turbine/TileWindTurbine.java b/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/TileWindTurbine.java similarity index 87% rename from mechanical/src/main/java/resonantinduction/mechanical/turbine/TileWindTurbine.java rename to mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/TileWindTurbine.java index 11befd08..8bdc12d3 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/turbine/TileWindTurbine.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/TileWindTurbine.java @@ -1,4 +1,4 @@ -package resonantinduction.mechanical.turbine; +package resonantinduction.mechanical.energy.turbine; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.biome.BiomeGenOcean; @@ -35,9 +35,9 @@ public class TileWindTurbine extends TileMechanicalTurbine { maxPower = 1000; } - + if (getMultiBlock().isConstructed()) - torque = (long) (defaultTorque / (9f / multiBlockRadius)); + torque = (long) (defaultTorque / (2.5f / multiBlockRadius)); else torque = defaultTorque / 12; @@ -52,6 +52,6 @@ public class TileWindTurbine extends TileMechanicalTurbine if (!worldObj.canBlockSeeTheSky(xCoord, yCoord + 4, zCoord)) return 0; - return (long) (((((float) yCoord + 4) / 256) * maxPower) * (hasBonus ? 2 : 1)) * (worldObj.isRaining() ? 2 : 1); + return (long) (((((float) yCoord + 4) / 256) * maxPower) * (hasBonus ? 2 : 1) * (worldObj.isRaining() ? 1.5 : 1)); } } diff --git a/mechanical/src/main/java/resonantinduction/mechanical/fluid/transport/TilePump.java b/mechanical/src/main/java/resonantinduction/mechanical/fluid/transport/TilePump.java index 872fbe0d..61109fdd 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/fluid/transport/TilePump.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/fluid/transport/TilePump.java @@ -8,7 +8,7 @@ import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.IFluidHandler; import resonantinduction.api.mechanical.fluid.IFluidPipe; import resonantinduction.api.mechanical.fluid.IPressure; -import resonantinduction.mechanical.network.TileMechanical; +import resonantinduction.mechanical.energy.network.TileMechanical; import universalelectricity.api.vector.Vector3; import calclavia.lib.prefab.tile.IRotatable; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/process/crusher/TileMechanicalPiston.java b/mechanical/src/main/java/resonantinduction/mechanical/process/crusher/TileMechanicalPiston.java index 92205d99..129d3cbd 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/process/crusher/TileMechanicalPiston.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/process/crusher/TileMechanicalPiston.java @@ -7,7 +7,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; -import resonantinduction.mechanical.network.TileMechanical; +import resonantinduction.mechanical.energy.network.TileMechanical; import universalelectricity.api.vector.Vector3; import calclavia.lib.utility.MovementUtility; import cpw.mods.fml.common.Loader; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/process/grinder/TileGrinderWheel.java b/mechanical/src/main/java/resonantinduction/mechanical/process/grinder/TileGrinderWheel.java index 36cba3bd..c7d5fbc2 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/process/grinder/TileGrinderWheel.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/process/grinder/TileGrinderWheel.java @@ -13,7 +13,7 @@ import resonantinduction.api.recipe.MachineRecipes.RecipeType; import resonantinduction.api.recipe.RecipeResource; import resonantinduction.core.Reference; import resonantinduction.core.ResonantInduction; -import resonantinduction.mechanical.network.TileMechanical; +import resonantinduction.mechanical.energy.network.TileMechanical; import resonantinduction.mechanical.process.Timer; import universalelectricity.api.vector.Vector3; import calclavia.lib.prefab.tile.IRotatable; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/process/purifier/TileMixer.java b/mechanical/src/main/java/resonantinduction/mechanical/process/purifier/TileMixer.java index 60f553f3..b39f1261 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/process/purifier/TileMixer.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/process/purifier/TileMixer.java @@ -18,7 +18,7 @@ import resonantinduction.api.recipe.MachineRecipes.RecipeType; import resonantinduction.core.Reference; import resonantinduction.core.resource.ResourceGenerator; import resonantinduction.core.resource.fluid.BlockFluidMixture; -import resonantinduction.mechanical.network.TileMechanical; +import resonantinduction.mechanical.energy.network.TileMechanical; import resonantinduction.mechanical.process.Timer; import universalelectricity.api.vector.Vector3; diff --git a/src/main/resources/assets/resonantinduction/languages/en_US.properties b/src/main/resources/assets/resonantinduction/languages/en_US.properties index de8af4c7..2b4a0ed8 100644 --- a/src/main/resources/assets/resonantinduction/languages/en_US.properties +++ b/src/main/resources/assets/resonantinduction/languages/en_US.properties @@ -11,6 +11,10 @@ meta.resonantinduction.credits=Visit website for credits. fluid.mixture=Mixture toolmode.link.name=Linking +### Schematics +schematic.windTurbine.name=Wind Turbine +schematic.waterTurbine.name=Water Turbine + ### Core misc.resonantinduction.ingot=Ingot item.resonantinduction\:ingot.name=%v Ingot