Resolved #131 - Added tons of decoration blocks for monodemono

This commit is contained in:
Calclavia 2014-01-24 17:58:04 +08:00
parent 28e9a9a9ef
commit de2a9a9608
12 changed files with 82 additions and 34 deletions

View file

@ -20,6 +20,7 @@ import resonantinduction.archaic.imprint.TileImprinter;
import resonantinduction.core.Reference; import resonantinduction.core.Reference;
import resonantinduction.core.ResonantInduction; import resonantinduction.core.ResonantInduction;
import resonantinduction.core.Settings; import resonantinduction.core.Settings;
import resonantinduction.core.part.BlockMachinePart;
import calclavia.lib.content.ContentRegistry; import calclavia.lib.content.ContentRegistry;
import calclavia.lib.network.PacketHandler; import calclavia.lib.network.PacketHandler;
import calclavia.lib.prefab.item.ItemBlockMetadata; import calclavia.lib.prefab.item.ItemBlockMetadata;
@ -66,6 +67,7 @@ public class Archaic
public static Block blockTurntable; public static Block blockTurntable;
public static Block blockFirebox; public static Block blockFirebox;
public static Block blockHotPlate; public static Block blockHotPlate;
public static Block blockMachinePart;
public static Item itemImprint; public static Item itemImprint;
@ -81,6 +83,8 @@ public class Archaic
blockFirebox = contentRegistry.createTile(BlockFirebox.class, TileFirebox.class); blockFirebox = contentRegistry.createTile(BlockFirebox.class, TileFirebox.class);
blockHotPlate = contentRegistry.createBlock(BlockHotPlate.class, ItemBlockMetadata.class, TileHotPlate.class); blockHotPlate = contentRegistry.createBlock(BlockHotPlate.class, ItemBlockMetadata.class, TileHotPlate.class);
blockMachinePart = contentRegistry.createBlock(BlockMachinePart.class, ItemBlockMetadata.class);
itemImprint = contentRegistry.createItem(ItemBlockImprint.class); itemImprint = contentRegistry.createItem(ItemBlockImprint.class);
proxy.preInit(); proxy.preInit();
Settings.save(); Settings.save();

View file

@ -1,19 +1,49 @@
package resonantinduction.core.part; package resonantinduction.core.part;
import java.util.List;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Icon;
import resonantinduction.core.Reference; import resonantinduction.core.Reference;
import resonantinduction.core.prefab.block.BlockBase; import resonantinduction.core.prefab.block.BlockBase;
/** /**
* A block used to build machines. * A block used to build machines or decoration.
* *
* @author Calclavia * @author Calclavia
* *
*/ */
public class BlockMachinePart extends BlockBase public class BlockMachinePart extends BlockBase
{ {
String[] iconNames = new String[] { "material_metal_side", "material_metal_top", "material_stone_brick", "material_stone_brick2", "material_stone_chiseled", "material_stone_cobble", "material_stone_cracked", "material_stone", "material_stone_slab", "material_stone_mossy", "material_steel_dark", "material_steel_tint", "material_steel" };
Icon[] icons = new Icon[iconNames.length];
public BlockMachinePart() public BlockMachinePart()
{ {
super("machinePart"); super("material");
setTextureName(Reference.PREFIX + "material_stone_brick"); }
@Override
public Icon getIcon(int side, int metadata)
{
return icons[metadata];
}
@Override
public void registerIcons(IconRegister par1IconRegister)
{
this.blockIcon = par1IconRegister.registerIcon(this.getTextureName());
for (int i = 0; i < iconNames.length; i++)
icons[i] = par1IconRegister.registerIcon(Reference.PREFIX + iconNames[i]);
}
@Override
public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List)
{
for (int i = 0; i < iconNames.length; i++)
par3List.add(new ItemStack(par1, 1, i));
} }
} }

View file

@ -97,7 +97,7 @@ public class Electrical
public static Block blockGenerator; public static Block blockGenerator;
// Machines // Machines
public static Block blockAdvancedFurnace, blockMachinePart, blockGrinderWheel, blockPurifier; public static Block blockAdvancedFurnace;
// Transport // Transport
public static Block blockEMLevitator; public static Block blockEMLevitator;
@ -124,11 +124,6 @@ public class Electrical
blockEncoder = contentRegistry.createTile(BlockEncoder.class, TileEncoder.class); blockEncoder = contentRegistry.createTile(BlockEncoder.class, TileEncoder.class);
itemDisk = contentRegistry.createItem(ItemDisk.class); itemDisk = contentRegistry.createItem(ItemDisk.class);
// Machines
blockMachinePart = contentRegistry.createBlock(BlockMachinePart.class);
blockGrinderWheel = contentRegistry.createTile(BlockGrinderWheel.class, TileGrinderWheel.class);
blockPurifier = contentRegistry.createTile(BlockPurifier.class, TilePurifier.class);
// Generator // Generator
blockSolarPanel = contentRegistry.createTile(BlockSolarPanel.class, TileSolarPanel.class); blockSolarPanel = contentRegistry.createTile(BlockSolarPanel.class, TileSolarPanel.class);
blockGenerator = contentRegistry.createTile(BlockGenerator.class, TileGenerator.class); blockGenerator = contentRegistry.createTile(BlockGenerator.class, TileGenerator.class);

View file

@ -88,7 +88,9 @@ public class TileBattery extends TileElectrical implements IConnector<BatteryNet
if (!this.worldObj.isRemote) if (!this.worldObj.isRemote)
{ {
if ((markDistributionUpdate || this.produce() > 0) && ticks % 5 == 0) long produce = this.produce();
if ((markDistributionUpdate || produce > 0) && ticks % 5 == 0)
{ {
this.getNetwork().redistribute(); this.getNetwork().redistribute();
markDistributionUpdate = false; markDistributionUpdate = false;

View file

@ -92,8 +92,15 @@ public class TileGenerator extends TileElectrical implements IRotatable
long currentTorque = Math.abs(mech.getTorque()); long currentTorque = Math.abs(mech.getTorque());
if (currentTorque != 0) if (currentTorque != 0)
{
setTorque = Math.min(+setTorque, maxTorque) * (mech.getTorque() / currentTorque); setTorque = Math.min(+setTorque, maxTorque) * (mech.getTorque() / currentTorque);
if (setTorque < currentTorque)
{
setTorque = (long) Math.max(setTorque, currentTorque * (currentTorque / maxTorque));
}
}
float currentVelo = Math.abs(mech.getAngularVelocity()); float currentVelo = Math.abs(mech.getAngularVelocity());
if (currentVelo != 0) if (currentVelo != 0)
setAngularVelocity = Math.min(+setAngularVelocity, maxAngularVelocity) * (mech.getAngularVelocity() / currentVelo); setAngularVelocity = Math.min(+setAngularVelocity, maxAngularVelocity) * (mech.getAngularVelocity() / currentVelo);

View file

@ -6,6 +6,7 @@ import net.minecraftforge.oredict.OreDictionary;
import resonantinduction.core.Reference; import resonantinduction.core.Reference;
import resonantinduction.core.ResonantInduction; import resonantinduction.core.ResonantInduction;
import resonantinduction.core.Settings; import resonantinduction.core.Settings;
import resonantinduction.electrical.purifier.BlockPurifier;
import resonantinduction.mechanical.belt.BlockConveyorBelt; import resonantinduction.mechanical.belt.BlockConveyorBelt;
import resonantinduction.mechanical.belt.TileConveyorBelt; import resonantinduction.mechanical.belt.TileConveyorBelt;
import resonantinduction.mechanical.fluid.pipe.ItemBlockFluidContainer; import resonantinduction.mechanical.fluid.pipe.ItemBlockFluidContainer;
@ -26,6 +27,9 @@ import resonantinduction.mechanical.logistic.TileManipulator;
import resonantinduction.mechanical.logistic.TileRejector; import resonantinduction.mechanical.logistic.TileRejector;
import resonantinduction.mechanical.network.IMechanical; import resonantinduction.mechanical.network.IMechanical;
import resonantinduction.mechanical.network.PacketNetwork; import resonantinduction.mechanical.network.PacketNetwork;
import resonantinduction.mechanical.process.BlockGrinderWheel;
import resonantinduction.mechanical.process.TileGrinderWheel;
import resonantinduction.mechanical.process.TilePurifier;
import calclavia.lib.content.ContentRegistry; import calclavia.lib.content.ContentRegistry;
import calclavia.lib.network.PacketHandler; import calclavia.lib.network.PacketHandler;
import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod;
@ -81,6 +85,10 @@ public class Mechanical
public static Item itemPipe; public static Item itemPipe;
public static Item itemPipeGuage; public static Item itemPipeGuage;
// Machines
public static Block blockGrinderWheel;
public static Block blockPurifier;
public static final PacketNetwork PACKET_NETWORK = new PacketNetwork(IMechanical.class, Reference.CHANNEL); public static final PacketNetwork PACKET_NETWORK = new PacketNetwork(IMechanical.class, Reference.CHANNEL);
@EventHandler @EventHandler
@ -102,6 +110,10 @@ public class Mechanical
itemPipeGuage = contentRegistry.createItem(ItemPipeGauge.class); itemPipeGuage = contentRegistry.createItem(ItemPipeGauge.class);
itemPipe = contentRegistry.createItem(ItemPipe.class); itemPipe = contentRegistry.createItem(ItemPipe.class);
// Machines
blockGrinderWheel = contentRegistry.createTile(BlockGrinderWheel.class, TileGrinderWheel.class);
blockPurifier = contentRegistry.createTile(BlockPurifier.class, TilePurifier.class);
OreDictionary.registerOre("gear", itemGear); OreDictionary.registerOre("gear", itemGear);
proxy.preInit(); proxy.preInit();

View file

@ -8,8 +8,8 @@ import net.minecraftforge.fluids.FluidStack;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import resonantinduction.archaic.Archaic;
import resonantinduction.core.render.RenderFluidHelper; import resonantinduction.core.render.RenderFluidHelper;
import resonantinduction.electrical.Electrical;
import resonantinduction.mechanical.Mechanical; import resonantinduction.mechanical.Mechanical;
import resonantinduction.mechanical.fluid.prefab.TileFluidNetwork; import resonantinduction.mechanical.fluid.prefab.TileFluidNetwork;
import calclavia.lib.render.RenderUtility; import calclavia.lib.render.RenderUtility;
@ -94,24 +94,24 @@ public class RenderTank extends TileEntitySpecialRenderer
if (!north) if (!north)
{ {
// north east // north east
RenderUtility.renderCube(0.475, -0.501, -0.501, 0.501, 0.501, -0.475, Electrical.blockMachinePart); RenderUtility.renderCube(0.475, -0.501, -0.501, 0.501, 0.501, -0.475, Archaic.blockMachinePart);
} }
if (!south) if (!south)
{ {
// south east // south east
RenderUtility.renderCube(0.475, -0.501, 0.475, 0.501, 0.501, 0.501, Electrical.blockMachinePart); RenderUtility.renderCube(0.475, -0.501, 0.475, 0.501, 0.501, 0.501, Archaic.blockMachinePart);
} }
if (!down) if (!down)
{ {
// bottom east // bottom east
RenderUtility.renderCube(0.475, -0.501, -0.501, 0.501, -0.475, 0.501, Electrical.blockMachinePart); RenderUtility.renderCube(0.475, -0.501, -0.501, 0.501, -0.475, 0.501, Archaic.blockMachinePart);
} }
if (!up) if (!up)
{ {
// top east // top east
RenderUtility.renderCube(0.475, 0.475, -0.501, 0.501, 0.501, 0.501, Electrical.blockMachinePart); RenderUtility.renderCube(0.475, 0.475, -0.501, 0.501, 0.501, 0.501, Archaic.blockMachinePart);
} }
} }
@ -120,22 +120,22 @@ public class RenderTank extends TileEntitySpecialRenderer
if (!north) if (!north)
{ {
// north west // north west
RenderUtility.renderCube(-0.501, -0.501, -0.501, -0.475, 0.501, -0.475, Electrical.blockMachinePart); RenderUtility.renderCube(-0.501, -0.501, -0.501, -0.475, 0.501, -0.475, Archaic.blockMachinePart);
} }
if (!south) if (!south)
{ {
// south west // south west
RenderUtility.renderCube(-0.501, -0.501, 0.475, -0.475, 0.501, 0.501, Electrical.blockMachinePart); RenderUtility.renderCube(-0.501, -0.501, 0.475, -0.475, 0.501, 0.501, Archaic.blockMachinePart);
} }
if (!down) if (!down)
{ {
// bottom west // bottom west
RenderUtility.renderCube(-0.501, -0.501, -0.501, -0.475, -0.475, 0.501, Electrical.blockMachinePart); RenderUtility.renderCube(-0.501, -0.501, -0.501, -0.475, -0.475, 0.501, Archaic.blockMachinePart);
} }
if (!up) if (!up)
{ {
// top west // top west
RenderUtility.renderCube(-0.501, 0.475, -0.501, -0.475, 0.501, 0.501, Electrical.blockMachinePart); RenderUtility.renderCube(-0.501, 0.475, -0.501, -0.475, 0.501, 0.501, Archaic.blockMachinePart);
} }
} }
if (!north) if (!north)
@ -143,12 +143,12 @@ public class RenderTank extends TileEntitySpecialRenderer
if (!up) if (!up)
{ {
// top north // top north
RenderUtility.renderCube(-0.501, 0.475, -0.501, 0.501, 0.501, -0.475, Electrical.blockMachinePart); RenderUtility.renderCube(-0.501, 0.475, -0.501, 0.501, 0.501, -0.475, Archaic.blockMachinePart);
} }
if (!down) if (!down)
{ {
// bottom north // bottom north
RenderUtility.renderCube(-0.501, -0.501, -0.501, 0.501, -0.475, -0.475, Electrical.blockMachinePart); RenderUtility.renderCube(-0.501, -0.501, -0.501, 0.501, -0.475, -0.475, Archaic.blockMachinePart);
} }
} }
@ -157,12 +157,12 @@ public class RenderTank extends TileEntitySpecialRenderer
if (!up) if (!up)
{ {
// top south // top south
RenderUtility.renderCube(-0.501, 0.475, 0.475, 0.501, 0.501, 0.501, Electrical.blockMachinePart); RenderUtility.renderCube(-0.501, 0.475, 0.475, 0.501, 0.501, 0.501, Archaic.blockMachinePart);
} }
if (!down) if (!down)
{ {
// bottom south // bottom south
RenderUtility.renderCube(-0.501, -0.501, 0.475, 0.501, -0.475, 0.501, Electrical.blockMachinePart); RenderUtility.renderCube(-0.501, -0.501, 0.475, 0.501, -0.475, 0.501, Archaic.blockMachinePart);
} }
} }

View file

@ -38,7 +38,7 @@ public class PartGear extends PartMechanical implements IMechanical
manualCrankTime--; manualCrankTime--;
} }
angularVelocity *= 0.9f; angularVelocity *= 0.95f;
} }
super.update(); super.update();

View file

@ -19,11 +19,9 @@ import calclavia.lib.utility.FluidUtility;
public class ItemPipeGauge extends ItemRI public class ItemPipeGauge extends ItemRI
{ {
Icon pipeGuage;
public ItemPipeGauge() public ItemPipeGauge()
{ {
super("pipeGuage"); super("pipeGauge");
this.setHasSubtypes(true); this.setHasSubtypes(true);
this.setMaxStackSize(1); this.setMaxStackSize(1);

View file

@ -31,6 +31,7 @@ import universalelectricity.core.net.NetworkTickHandler;
*/ */
public class MechanicalNetwork extends Network<IMechanicalNetwork, IMechanical> implements IMechanicalNetwork, IUpdate public class MechanicalNetwork extends Network<IMechanicalNetwork, IMechanical> implements IMechanicalNetwork, IUpdate
{ {
public static final float ACCELERATION = 0.1f;
/** The current rotation of the network */ /** The current rotation of the network */
private float rotation = 0; private float rotation = 0;
private long lastRotateTime; private long lastRotateTime;
@ -79,19 +80,18 @@ public class MechanicalNetwork extends Network<IMechanicalNetwork, IMechanical>
if (adjacentMech != null) if (adjacentMech != null)
{ {
float ratio = adjacentMech.getRatio() / mechanical.getRatio(); float ratio = adjacentMech.getRatio() / mechanical.getRatio();
float acceleration = 0.5f;
long torque = mechanical.getTorque(); long torque = mechanical.getTorque();
if (Math.abs(torque - adjacentMech.getTorque() / ratio * acceleration) < Math.abs(adjacentMech.getTorque() / ratio)) if (Math.abs(torque - adjacentMech.getTorque() / ratio * ACCELERATION) < Math.abs(adjacentMech.getTorque() / ratio))
{ {
mechanical.setTorque((long) (torque - (adjacentMech.getTorque() / ratio * acceleration))); mechanical.setTorque((long) (torque - (adjacentMech.getTorque() / ratio * ACCELERATION)));
} }
float velocity = mechanical.getAngularVelocity(); float velocity = mechanical.getAngularVelocity();
if (Math.abs(velocity - adjacentMech.getAngularVelocity() * ratio * acceleration) < Math.abs(adjacentMech.getAngularVelocity() * ratio)) if (Math.abs(velocity - adjacentMech.getAngularVelocity() * ratio * ACCELERATION) < Math.abs(adjacentMech.getAngularVelocity() * ratio))
{ {
mechanical.setAngularVelocity(velocity - (adjacentMech.getAngularVelocity() * ratio * acceleration)); mechanical.setAngularVelocity(velocity - (adjacentMech.getAngularVelocity() * ratio * ACCELERATION));
} }
} }
} }

View file

@ -79,7 +79,7 @@ tile.resonantinduction\:fluidPipe.16.name=White Wood Trough
tile.resonantinduction\:tesla.name=Tesla Coil tile.resonantinduction\:tesla.name=Tesla Coil
tile.resonantinduction\:levitator.name=Electromagnetic Levitator tile.resonantinduction\:levitator.name=Electromagnetic Levitator
tile.resonantinduction\:battery.name=Battery tile.resonantinduction\:battery.name=Battery
tile.resonantinduction\:machinePart.name=Machine Part tile.resonantinduction\:material.name=Material
tile.resonantinduction\:grindingWheel.name=Grinder Wheel tile.resonantinduction\:grindingWheel.name=Grinder Wheel
tile.resonantinduction\:purifier.name=Purifier Rotor tile.resonantinduction\:purifier.name=Purifier Rotor
tile.resonantinduction\:filter.name=Filter tile.resonantinduction\:filter.name=Filter