mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
Merge branch 'HbmMods:master' into master
This commit is contained in:
commit
d69ac11c11
38
README.md
38
README.md
@ -40,17 +40,45 @@ Please note that these installation instructions are assuming you're running Mic
|
||||
|
||||
## Contributing
|
||||
If you want to make some changes to the mod, follow this guide:
|
||||
1. Follow steps 1-4 from *Building from source* section
|
||||
2. Setup forge decompilation workspace
|
||||
1. Follow steps 1-2 from *Building from source* section
|
||||
2. Create a directory where the repository will reside, using a name that is not "Hbm-s-Nuclear-Tech-GIT"
|
||||
3. Download the forge src from [here](https://files.minecraftforge.net/net/minecraftforge/forge/index_1.7.10.html) and extract it into the directory.
|
||||
4. Download the source code:
|
||||
* Using Git Bash, enter wherever your directory is located:
|
||||
```bash
|
||||
cd $HOME/Downloads
|
||||
```
|
||||
* Download the source code:
|
||||
```bash
|
||||
git clone https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
|
||||
```
|
||||
* Move or copy every file within the new folder into your directory, making sure to overwrite any files.
|
||||
* Feel free to delete the remaining folder and rename your directory (such as "Hbm-s-Nuclear-Tech-GIT")
|
||||
5. Enter the source directory
|
||||
```bash
|
||||
cd Hbm-s-Nuclear-Tech-GIT
|
||||
```
|
||||
6. Setup forge decompilation workspace
|
||||
```bash
|
||||
./gradlew setupDecompWorkspace
|
||||
```
|
||||
3. (OPTIONAL, but needed if you use eclipse) Generate eclipse files
|
||||
### Necessary for Eclipse users
|
||||
7. Generate eclipse files
|
||||
```bash
|
||||
./gradlew eclipse
|
||||
```
|
||||
4. Open up the project directory in eclipse using *Open existing project from file system*
|
||||
5. Code!
|
||||
8. Switch to the **eclipse** folder inside your directory as a workspace.
|
||||
9. If necessary, make sure that Eclipse is using the JDK8.
|
||||
* On Linux, enter Windows>Preferences>Java>Installed JREs.
|
||||
* Click search to navigate to /usr/lib/jvm and open it. Select the Java 8 JDK (e.g., java-8-openjdk).
|
||||
* Afterwards, enter Execution Environment, select JavaSE-1.8, and select the jre listed as a **[perfect match]**
|
||||
* On Windows, you may need to set your JAVA_HOME.
|
||||
* Search for Environment Variables and click Edit the System Environment Variables.
|
||||
* Click Environment Variables. Click new under System Variables.
|
||||
* Enter **JAVA_HOME** under Variable Name and enter the path to your JDK 8 under Variable Value (e.g., C:\Program-Files\Java\jdk1.8.0_102).
|
||||
* In Eclipse, now enter Windows>Preferences>Java>Installed JREs.
|
||||
* Click **Add Standard VM**; in the JRE home, navigate to the directory where the JDK is installed, then click finish and select it.
|
||||
10. Code!
|
||||
|
||||
# License
|
||||
This software is licensed under the GNU Public License version 3. In short: This software is free, you may run the software freely, create modified versions, distribute this software and distribute modified versions, as long as the modified software too has a free software license. You win this round, Stallman. The full license can be found in the `LICENSE` file.
|
||||
|
||||
25
src/main/java/api/hbm/block/ICrucibleAcceptor.java
Normal file
25
src/main/java/api/hbm/block/ICrucibleAcceptor.java
Normal file
@ -0,0 +1,25 @@
|
||||
package api.hbm.block;
|
||||
|
||||
import com.hbm.inventory.material.Mats.MaterialStack;
|
||||
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public interface ICrucibleAcceptor {
|
||||
|
||||
/*
|
||||
* Pouring: The metal leaves the channel/crucible and usually (but not always) falls down. The additional double coords give a more precise impact location.
|
||||
* Also useful for entities like large crucibles since they are filled from the top.
|
||||
*/
|
||||
//public boolean canAcceptPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack);
|
||||
public boolean canAcceptPartialPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack);
|
||||
public MaterialStack pour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack);
|
||||
|
||||
/*
|
||||
* Flowing: The "safe" transfer of metal using a channel or other means, usually from block to block and usually horizontally (but not necessarily).
|
||||
* May also be used for entities like minecarts that could be loaded from the side.
|
||||
*/
|
||||
//public boolean canAcceptFlow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack);
|
||||
public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack);
|
||||
public MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack);
|
||||
}
|
||||
@ -10,6 +10,7 @@ public interface IToolable {
|
||||
public static enum ToolType {
|
||||
SCREWDRIVER,
|
||||
HAND_DRILL,
|
||||
DEFUSER
|
||||
DEFUSER,
|
||||
WRENCH
|
||||
}
|
||||
}
|
||||
|
||||
17
src/main/java/api/hbm/fluid/IFillableItem.java
Normal file
17
src/main/java/api/hbm/fluid/IFillableItem.java
Normal file
@ -0,0 +1,17 @@
|
||||
package api.hbm.fluid;
|
||||
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public interface IFillableItem {
|
||||
|
||||
/** Whether this stack can be filled with this type. Not particularly useful for normal operations */
|
||||
public boolean acceptsFluid(FluidType type, ItemStack stack);
|
||||
/** Tries to fill the stack, returns the remainder that couldn't be added */
|
||||
public int tryFill(FluidType type, int amount, ItemStack stack);
|
||||
/** Whether this stack can fill tiles with this type. Not particularly useful for normal operations */
|
||||
public boolean providesFluid(FluidType type, ItemStack stack);
|
||||
/** Provides fluid with the maximum being the requested amount */
|
||||
public int tryEmpty(FluidType type, int amount, ItemStack stack);
|
||||
}
|
||||
@ -1,7 +1,7 @@
|
||||
package api.hbm.fluid;
|
||||
|
||||
import com.hbm.inventory.FluidTank;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
|
||||
/**
|
||||
* Uses default implementation to make the underlying interfaces easier to use for the most common fluid users.
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
package api.hbm.fluid;
|
||||
|
||||
import com.hbm.inventory.FluidTank;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
|
||||
/**
|
||||
* Uses default implementation to make the underlying interfaces easier to use for the most common fluid users.
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
package api.hbm.fluid;
|
||||
|
||||
import com.hbm.inventory.FluidTank;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
|
||||
/**
|
||||
* transceiver [trăn-sē′vər], noun
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package api.hbm.fluid;
|
||||
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
import com.hbm.packet.AuxParticlePacketNT;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
|
||||
@ -90,4 +91,11 @@ public interface IFluidUser extends IFluidConnector {
|
||||
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
|
||||
this.tryUnsubscribe(type, world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all internal tanks of this tile. Not used by the fluid network, it should only be used for display purposes or edge cases that can't be solved otherwise.
|
||||
* The array is either composed of the original tank or outright the original tank array, so changes done to this array will extend to the IFluidUser.
|
||||
* @return
|
||||
*/
|
||||
public FluidTank[] getAllTanks();
|
||||
}
|
||||
|
||||
@ -7,12 +7,13 @@ import java.util.Random;
|
||||
import com.hbm.handler.MultiblockHandlerXR;
|
||||
import com.hbm.handler.ThreeInts;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.IPersistentNBT;
|
||||
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.enchantment.EnchantmentHelper;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@ -22,7 +23,9 @@ import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.stats.StatList;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
@ -200,6 +203,7 @@ public abstract class BlockDummyable extends BlockContainer {
|
||||
int meta = getMetaForCore(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, (EntityPlayer) player, dir.ordinal() + offset);
|
||||
//lastCore = new BlockPos(x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o);
|
||||
world.setBlock(x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, this, meta, 3);
|
||||
IPersistentNBT.restoreData(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, itemStack);
|
||||
fillSpace(world, x, y, z, dir, o);
|
||||
}
|
||||
y -= getHeightOffset();
|
||||
@ -411,4 +415,62 @@ public abstract class BlockDummyable extends BlockContainer {
|
||||
player.addStat(StatList.mineBlockStatArray[getIdFromBlock(this)], 1);
|
||||
player.addExhaustion(0.025F);
|
||||
}
|
||||
|
||||
public boolean useDetailedHitbox() {
|
||||
return !bounding.isEmpty();
|
||||
}
|
||||
|
||||
public List<AxisAlignedBB> bounding = new ArrayList();
|
||||
|
||||
@Override
|
||||
public void addCollisionBoxesToList(World world, int x, int y, int z, AxisAlignedBB entityBounding, List list, Entity entity) {
|
||||
|
||||
if(!this.useDetailedHitbox()) {
|
||||
super.addCollisionBoxesToList(world, x, y, z, entityBounding, list, entity);
|
||||
return;
|
||||
}
|
||||
|
||||
int[] pos = this.findCore(world, x, y, z);
|
||||
|
||||
if(pos == null)
|
||||
return;
|
||||
|
||||
x = pos[0];
|
||||
y = pos[1];
|
||||
z = pos[2];
|
||||
|
||||
for(AxisAlignedBB aabb :this.bounding) {
|
||||
AxisAlignedBB boxlet = getAABBRotationOffset(aabb, x, y, z, ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z) - this.offset).getRotation(ForgeDirection.UP));
|
||||
|
||||
if(entityBounding.intersectsWith(boxlet)) {
|
||||
list.add(boxlet);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static AxisAlignedBB getAABBRotationOffset(AxisAlignedBB aabb, int x, int y, int z, ForgeDirection dir) {
|
||||
|
||||
AxisAlignedBB newBox = null;
|
||||
|
||||
if(dir == ForgeDirection.NORTH) newBox = AxisAlignedBB.getBoundingBox(aabb.minX, aabb.minY, aabb.minZ, aabb.maxX, aabb.maxY, aabb.maxZ);
|
||||
if(dir == ForgeDirection.EAST) newBox = AxisAlignedBB.getBoundingBox(-aabb.maxZ, aabb.minY, aabb.minX, -aabb.minZ, aabb.maxY, aabb.maxX);
|
||||
if(dir == ForgeDirection.SOUTH) newBox = AxisAlignedBB.getBoundingBox(-aabb.maxX, aabb.minY, -aabb.maxZ, -aabb.minX, aabb.maxY, -aabb.minZ);
|
||||
if(dir == ForgeDirection.WEST) newBox = AxisAlignedBB.getBoundingBox(aabb.minZ, aabb.minY, -aabb.maxX, aabb.maxZ, aabb.maxY, -aabb.minX);
|
||||
|
||||
if(newBox != null) {
|
||||
newBox.offset(x + 0.5, y, z + 0.5);
|
||||
return newBox;
|
||||
}
|
||||
|
||||
return AxisAlignedBB.getBoundingBox(aabb.minX, aabb.minY, aabb.minZ, aabb.maxX, aabb.maxY, aabb.maxZ).offset(x + 0.5, y + 0.5, z + 0.5);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) {
|
||||
if(!this.useDetailedHitbox()) {
|
||||
super.setBlockBoundsBasedOnState(world, x, y, z);
|
||||
} else {
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.999F, 1.0F); //for some fucking reason setting maxY to something that isn't 1 magically fixes item collisions
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
12
src/main/java/com/hbm/blocks/IPersistentInfoProvider.java
Normal file
12
src/main/java/com/hbm/blocks/IPersistentInfoProvider.java
Normal file
@ -0,0 +1,12 @@
|
||||
package com.hbm.blocks;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
||||
public interface IPersistentInfoProvider {
|
||||
|
||||
public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext);
|
||||
}
|
||||
@ -38,24 +38,18 @@ public class ModBlocks {
|
||||
}
|
||||
|
||||
public static Block test_render;
|
||||
public static Block test_container;
|
||||
public static Block test_bomb;
|
||||
public static Block test_bomb_advanced;
|
||||
public static Block test_nuke;
|
||||
public static final int guiID_test_nuke = 2;
|
||||
public static Block event_tester;
|
||||
public static Block rotation_tester;
|
||||
public static Block obj_tester;
|
||||
public static Block test_ticker;
|
||||
public static Block test_missile;
|
||||
public static Block test_core;
|
||||
public static Block test_charge;
|
||||
public static Block test_conductor;
|
||||
public static Block test_pipe;
|
||||
public static Block test_ct;
|
||||
public static Block test_rail;
|
||||
public static Block test_bb_bork;
|
||||
public static Block test_bb_inf;
|
||||
public static Block structure_anchor;
|
||||
|
||||
public static Block ore_uranium;
|
||||
public static Block ore_uranium_scorched;
|
||||
@ -341,6 +335,32 @@ public class ModBlocks {
|
||||
public static Block brick_light;
|
||||
public static Block brick_compound;
|
||||
public static Block brick_asbestos;
|
||||
public static Block brick_fire;
|
||||
|
||||
public static Block concrete_slab;
|
||||
public static Block concrete_double_slab;
|
||||
public static Block concrete_brick_slab;
|
||||
public static Block concrete_brick_double_slab;
|
||||
public static Block brick_slab;
|
||||
public static Block brick_double_slab;
|
||||
|
||||
public static Block concrete_smooth_stairs;
|
||||
public static Block concrete_stairs;
|
||||
public static Block concrete_asbestos_stairs;
|
||||
public static Block ducrete_smooth_stairs;
|
||||
public static Block ducrete_stairs;
|
||||
public static Block brick_concrete_stairs;
|
||||
public static Block brick_concrete_mossy_stairs;
|
||||
public static Block brick_concrete_cracked_stairs;
|
||||
public static Block brick_concrete_broken_stairs;
|
||||
public static Block brick_ducrete_stairs;
|
||||
public static Block reinforced_stone_stairs;
|
||||
public static Block reinforced_brick_stairs;
|
||||
public static Block brick_obsidian_stairs;
|
||||
public static Block brick_light_stairs;
|
||||
public static Block brick_compound_stairs;
|
||||
public static Block brick_asbestos_stairs;
|
||||
public static Block brick_fire_stairs;
|
||||
|
||||
public static Block cmb_brick;
|
||||
public static Block cmb_brick_reinforced;
|
||||
@ -387,6 +407,8 @@ public class ModBlocks {
|
||||
public static Block brick_dungeon_circle;
|
||||
|
||||
public static Block brick_forgotten;
|
||||
|
||||
public static Block deco_computer;
|
||||
|
||||
public static Block tape_recorder;
|
||||
public static Block steel_poles;
|
||||
@ -452,6 +474,7 @@ public class ModBlocks {
|
||||
public static Block mush_block_stem;
|
||||
|
||||
public static Block plant_flower;
|
||||
public static Block plant_dead;
|
||||
|
||||
public static Block waste_earth;
|
||||
public static Block waste_mycelium;
|
||||
@ -617,20 +640,24 @@ public class ModBlocks {
|
||||
public static final int guiID_nuke_fstbmb = 96;
|
||||
public static Block bomb_multi;
|
||||
public static final int guiID_bomb_multi = 10;
|
||||
|
||||
public static Block cel_prime;
|
||||
public static final int guiID_cel_prime = 62;
|
||||
public static Block cel_prime_terminal;
|
||||
public static Block cel_prime_battery;
|
||||
public static Block cel_prime_port;
|
||||
public static Block cel_prime_tanks;
|
||||
|
||||
public static Block heater_firebox;
|
||||
public static Block heater_oilburner;
|
||||
public static Block heater_electric;
|
||||
|
||||
public static Block furnace_iron;
|
||||
public static Block furnace_steel;
|
||||
public static Block machine_stirling;
|
||||
public static Block machine_stirling_steel;
|
||||
public static Block machine_sawmill;
|
||||
public static Block machine_crucible;
|
||||
public static Block machine_boiler;
|
||||
|
||||
public static Block foundry_mold;
|
||||
public static Block foundry_basin;
|
||||
public static Block foundry_channel;
|
||||
public static Block foundry_tank;
|
||||
public static Block foundry_outlet;
|
||||
|
||||
public static Block machine_difurnace_off;
|
||||
public static Block machine_difurnace_on;
|
||||
@ -745,7 +772,6 @@ public class ModBlocks {
|
||||
public static Block cable_detector;
|
||||
public static Block cable_diode;
|
||||
public static Block machine_detector;
|
||||
public static Block rf_cable;
|
||||
public static Block oil_duct_solid;
|
||||
public static Block oil_duct;
|
||||
public static Block gas_duct_solid;
|
||||
@ -756,12 +782,14 @@ public class ModBlocks {
|
||||
public static Block fluid_duct_box;
|
||||
|
||||
public static Block conveyor;
|
||||
//public static Block conveyor_classic;
|
||||
public static Block conveyor_double;
|
||||
public static Block conveyor_triple;
|
||||
public static Block conveyor_chute;
|
||||
public static Block conveyor_lift;
|
||||
public static Block crane_extractor;
|
||||
public static Block crane_inserter;
|
||||
public static Block crane_router;
|
||||
public static Block crane_boxer;
|
||||
public static Block crane_unboxer;
|
||||
|
||||
@ -809,12 +837,10 @@ public class ModBlocks {
|
||||
public static Block factory_titanium_hull;
|
||||
@Deprecated public static Block factory_titanium_furnace;
|
||||
@Deprecated public static Block factory_titanium_conductor;
|
||||
@Deprecated public static Block factory_titanium_core;
|
||||
|
||||
public static Block factory_advanced_hull;
|
||||
@Deprecated public static Block factory_advanced_furnace;
|
||||
@Deprecated public static Block factory_advanced_conductor;
|
||||
@Deprecated public static Block factory_advanced_core;
|
||||
|
||||
public static Block reactor_element;
|
||||
public static Block reactor_control;
|
||||
@ -903,6 +929,7 @@ public class ModBlocks {
|
||||
|
||||
public static Block machine_teleporter;
|
||||
public static final int guiID_machine_teleporter = 36;
|
||||
public static Block teleanchor;
|
||||
|
||||
public static Block machine_reix_mainframe;
|
||||
public static final int guiID_machine_reix_mainframe = 38;
|
||||
@ -1075,13 +1102,7 @@ public class ModBlocks {
|
||||
public static Block anvil_murky;
|
||||
public static final int guiID_anvil = 121;
|
||||
|
||||
public static Block turret_light;
|
||||
public static Block turret_heavy;
|
||||
public static Block turret_rocket;
|
||||
public static Block turret_flamer;
|
||||
public static Block turret_tau;
|
||||
public static Block turret_spitfire;
|
||||
public static Block turret_cwis;
|
||||
public static Block turret_cheapo;
|
||||
|
||||
public static Block turret_chekhov;
|
||||
@ -1223,22 +1244,18 @@ public class ModBlocks {
|
||||
public static Block sulfuric_acid_block;
|
||||
public static Fluid sulfuric_acid_fluid;
|
||||
|
||||
public static Block concrete_liquid;
|
||||
|
||||
public static Block volcano_core;
|
||||
|
||||
public static Block dummy_block_flare;
|
||||
public static Block dummy_port_flare;
|
||||
public static Block dummy_block_drill;
|
||||
public static Block dummy_port_drill;
|
||||
public static Block dummy_block_assembler;
|
||||
public static Block dummy_port_assembler;
|
||||
public static Block dummy_block_chemplant;
|
||||
public static Block dummy_port_chemplant;
|
||||
public static Block dummy_block_fluidtank;
|
||||
public static Block dummy_port_fluidtank;
|
||||
public static Block dummy_block_refinery;
|
||||
public static Block dummy_port_refinery;
|
||||
public static Block dummy_block_pumpjack;
|
||||
public static Block dummy_port_pumpjack;
|
||||
public static Block dummy_block_turbofan;
|
||||
public static Block dummy_port_turbofan;
|
||||
public static Block dummy_block_ams_limiter;
|
||||
@ -1247,8 +1264,6 @@ public class ModBlocks {
|
||||
public static Block dummy_port_ams_emitter;
|
||||
public static Block dummy_block_ams_base;
|
||||
public static Block dummy_port_ams_base;
|
||||
public static Block dummy_block_radgen;
|
||||
public static Block dummy_port_radgen;
|
||||
public static Block dummy_block_vault;
|
||||
public static Block dummy_block_blast;
|
||||
public static Block dummy_block_uf6;
|
||||
@ -1287,23 +1302,17 @@ public class ModBlocks {
|
||||
private static void initializeBlock() {
|
||||
|
||||
test_render = new TestRender(Material.rock).setBlockName("test_render").setCreativeTab(null);
|
||||
test_container = new TestContainer(0).setBlockName("test_container").setCreativeTab(null);
|
||||
test_bomb = new TestBomb(Material.tnt).setBlockName("test_bomb").setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":test_bomb");
|
||||
test_bomb_advanced = new TestBombAdvanced(Material.tnt).setBlockName("test_bomb_advanced").setCreativeTab(null);
|
||||
test_nuke = new TestNuke(Material.iron).setBlockName("test_nuke").setCreativeTab(null).setHardness(2.5F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":test_nuke");
|
||||
event_tester = new TestEventTester(Material.iron).setBlockName("event_tester").setCreativeTab(null).setHardness(2.5F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":event_tester");
|
||||
rotation_tester = new TestRotationTester(Material.iron).setBlockName("rotation_tester").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F);
|
||||
obj_tester = new TestObjTester(Material.iron).setBlockName("obj_tester").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F);
|
||||
test_ticker = new TestTicker(Material.iron).setBlockName("test_ticker").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_ticker");
|
||||
test_missile = new TestMissile(Material.iron).setBlockName("test_missile").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_missile");
|
||||
test_core = new TestCore(Material.iron).setBlockName("test_core").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_core");
|
||||
test_charge = new TestCharge(Material.iron).setBlockName("test_charge").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F);
|
||||
test_conductor = new TestConductor(Material.iron).setBlockName("test_conductor").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":cable_neo");
|
||||
test_pipe = new TestPipe(Material.iron).setBlockName("test_pipe").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":pipe_neo");
|
||||
test_ct = new TestCT(Material.iron).setBlockName("test_ct").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_ct");
|
||||
test_rail = new TestRail(Material.iron).setBlockName("test_rail").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_rail");
|
||||
test_bb_bork = new TestBB(Material.iron).setBlockName("test_bb_bork").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_bb_bork");
|
||||
test_bb_inf = new TestBB(Material.iron).setBlockName("test_bb_inf").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_bb_inf");
|
||||
structure_anchor = new BlockGeneric(Material.iron).setBlockName("structure_anchor").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":structure_anchor");
|
||||
|
||||
ore_uranium = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_uranium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_uranium");
|
||||
ore_uranium_scorched = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_uranium_scorched").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_uranium_scorched");
|
||||
@ -1421,7 +1430,7 @@ public class ModBlocks {
|
||||
ore_oil_sand = new BlockFalling(Material.sand).setBlockName("ore_oil_sand").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeSand).setHardness(0.5F).setResistance(1.0F).setBlockTextureName(RefStrings.MODID + ":ore_oil_sand_alt");
|
||||
ore_bedrock_oil = new BlockGeneric(Material.rock).setBlockName("ore_bedrock_oil").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(1_000_000).setBlockTextureName(RefStrings.MODID + ":ore_bedrock_oil");
|
||||
|
||||
ore_tikite = new BlockGeneric(Material.rock).setBlockName("ore_tikite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_tikite_alt");
|
||||
ore_tikite = new BlockDragonProof(Material.rock).setBlockName("ore_tikite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_tikite_alt");
|
||||
|
||||
crystal_power = new BlockCrystal(Material.glass).setBlockName("crystal_power").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(1.0F).setBlockTextureName(RefStrings.MODID + ":crystal_power");
|
||||
crystal_energy = new BlockCrystal(Material.glass).setBlockName("crystal_energy").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(1.0F).setBlockTextureName(RefStrings.MODID + ":crystal_energy");
|
||||
@ -1588,12 +1597,38 @@ public class ModBlocks {
|
||||
cmb_brick = new BlockGeneric(Material.rock).setBlockName("cmb_brick").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":cmb_brick");
|
||||
cmb_brick_reinforced = new BlockGeneric(Material.rock).setBlockName("cmb_brick_reinforced").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":cmb_brick_reinforced");
|
||||
brick_asbestos = new BlockOutgas(Material.rock, true, 5, true).setBlockName("brick_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":brick_asbestos");
|
||||
brick_fire = new BlockGeneric(Material.rock).setBlockName("brick_fire").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(160.0F).setBlockTextureName(RefStrings.MODID + ":brick_fire");
|
||||
|
||||
|
||||
ducrete_smooth = new BlockGeneric(Material.rock).setBlockName("ducrete_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(20.0F).setResistance(8000.0F).setBlockTextureName(RefStrings.MODID + ":ducrete");
|
||||
ducrete = new BlockGeneric(Material.rock).setBlockName("ducrete").setCreativeTab(MainRegistry.blockTab).setHardness(20.0F).setResistance(8000.0F).setBlockTextureName(RefStrings.MODID + ":ducrete_tile");
|
||||
brick_ducrete = new BlockGeneric(Material.rock).setBlockName("brick_ducrete").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(12000.0F).setBlockTextureName(RefStrings.MODID + ":brick_ducrete");
|
||||
reinforced_ducrete = new BlockGeneric(Material.rock).setBlockName("reinforced_ducrete").setCreativeTab(MainRegistry.blockTab).setHardness(20.0F).setResistance(24000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_ducrete");
|
||||
|
||||
concrete_slab = new BlockMultiSlab(null, Material.rock, concrete_smooth, concrete, concrete_asbestos, ducrete_smooth, ducrete).setBlockName("concrete_slab").setCreativeTab(MainRegistry.blockTab);
|
||||
concrete_double_slab = new BlockMultiSlab(concrete_slab, Material.rock, concrete_smooth, concrete, concrete_asbestos, ducrete_smooth, ducrete).setBlockName("concrete_double_slab").setCreativeTab(MainRegistry.blockTab);
|
||||
concrete_brick_slab = new BlockMultiSlab(null, Material.rock, brick_concrete, brick_concrete_mossy, brick_concrete_cracked, brick_concrete_broken, brick_ducrete).setBlockName("concrete_brick_slab").setCreativeTab(MainRegistry.blockTab);
|
||||
concrete_brick_double_slab = new BlockMultiSlab(concrete_brick_slab, Material.rock, brick_concrete, brick_concrete_mossy, brick_concrete_cracked, brick_concrete_broken, brick_ducrete).setBlockName("concrete_brick_double_slab").setCreativeTab(MainRegistry.blockTab);
|
||||
brick_slab = new BlockMultiSlab(null, Material.rock, reinforced_stone, reinforced_brick, brick_obsidian, brick_light, brick_compound, brick_asbestos, brick_fire).setBlockName("brick_slab").setCreativeTab(MainRegistry.blockTab);
|
||||
brick_double_slab = new BlockMultiSlab(brick_slab, Material.rock, reinforced_stone, reinforced_brick, brick_obsidian, brick_light, brick_compound, brick_asbestos, brick_fire).setBlockName("brick_double_slab").setCreativeTab(MainRegistry.blockTab);
|
||||
|
||||
concrete_smooth_stairs = new BlockGenericStairs(concrete_smooth, 0).setBlockName("concrete_smooth_stairs").setCreativeTab(MainRegistry.blockTab);
|
||||
concrete_stairs = new BlockGenericStairs(concrete, 0).setBlockName("concrete_stairs").setCreativeTab(MainRegistry.blockTab);
|
||||
concrete_asbestos_stairs = new BlockGenericStairs(concrete_asbestos, 0).setBlockName("concrete_asbestos_stairs").setCreativeTab(MainRegistry.blockTab);
|
||||
ducrete_smooth_stairs = new BlockGenericStairs(ducrete_smooth, 0).setBlockName("ducrete_smooth_stairs").setCreativeTab(MainRegistry.blockTab);
|
||||
ducrete_stairs = new BlockGenericStairs(ducrete, 0).setBlockName("ducrete_stairs").setCreativeTab(MainRegistry.blockTab);
|
||||
brick_concrete_stairs = new BlockGenericStairs(brick_concrete, 0).setBlockName("brick_concrete_stairs").setCreativeTab(MainRegistry.blockTab);
|
||||
brick_concrete_mossy_stairs = new BlockGenericStairs(brick_concrete_mossy, 0).setBlockName("brick_concrete_mossy_stairs").setCreativeTab(MainRegistry.blockTab);
|
||||
brick_concrete_cracked_stairs = new BlockGenericStairs(brick_concrete_cracked, 0).setBlockName("brick_concrete_cracked_stairs").setCreativeTab(MainRegistry.blockTab);
|
||||
brick_concrete_broken_stairs = new BlockGenericStairs(brick_concrete_broken, 0).setBlockName("brick_concrete_broken_stairs").setCreativeTab(MainRegistry.blockTab);
|
||||
brick_ducrete_stairs = new BlockGenericStairs(brick_ducrete, 0).setBlockName("brick_ducrete_stairs").setCreativeTab(MainRegistry.blockTab);
|
||||
reinforced_stone_stairs = new BlockGenericStairs(reinforced_stone, 0).setBlockName("reinforced_stone_stairs").setCreativeTab(MainRegistry.blockTab);
|
||||
reinforced_brick_stairs = new BlockGenericStairs(reinforced_brick, 0).setBlockName("reinforced_brick_stairs").setCreativeTab(MainRegistry.blockTab);
|
||||
brick_obsidian_stairs = new BlockGenericStairs(brick_obsidian, 0).setBlockName("brick_obsidian_stairs").setCreativeTab(MainRegistry.blockTab);
|
||||
brick_light_stairs = new BlockGenericStairs(brick_light, 0).setBlockName("brick_light_stairs").setCreativeTab(MainRegistry.blockTab);
|
||||
brick_compound_stairs = new BlockGenericStairs(brick_compound, 0).setBlockName("brick_compound_stairs").setCreativeTab(MainRegistry.blockTab);
|
||||
brick_asbestos_stairs = new BlockGenericStairs(brick_asbestos, 0).setBlockName("brick_asbestos_stairs").setCreativeTab(MainRegistry.blockTab);
|
||||
brick_fire_stairs = new BlockGenericStairs(brick_fire, 0).setBlockName("brick_fire_stairs").setCreativeTab(MainRegistry.blockTab);
|
||||
|
||||
|
||||
tile_lab = new BlockOutgas(Material.rock, false, 5, true).setBlockName("tile_lab").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":tile_lab");
|
||||
tile_lab_cracked = new BlockOutgas(Material.rock, false, 5, true).setBlockName("tile_lab_cracked").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":tile_lab_cracked");
|
||||
@ -1636,7 +1671,9 @@ public class ModBlocks {
|
||||
brick_dungeon_circle = new BlockGeneric(Material.rock).setBlockName("brick_dungeon_circle").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_dungeon_circle");
|
||||
|
||||
brick_forgotten = new BlockGeneric(Material.rock).setBlockName("brick_forgotten").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(1000000).setBlockTextureName(RefStrings.MODID + ":brick_forgotten");
|
||||
|
||||
|
||||
deco_computer = new BlockDecoModel(Material.iron, 1).setBlockName("deco_computer").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_computer");
|
||||
|
||||
tape_recorder = new DecoTapeRecorder(Material.iron).setBlockName("tape_recorder").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_tape_recorder");
|
||||
steel_poles = new DecoSteelPoles(Material.iron).setBlockName("steel_poles").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_beam");
|
||||
pole_top = new DecoPoleTop(Material.iron).setBlockName("pole_top").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_pole_top");
|
||||
@ -1700,6 +1737,7 @@ public class ModBlocks {
|
||||
mush_block_stem = new BlockMushHuge(Material.plants).setBlockName("mush_block_stem").setLightLevel(1.0F).setStepSound(Block.soundTypeGrass).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":mush_block_stem");
|
||||
|
||||
plant_flower = new BlockNTMFlower().setBlockName("plant_flower").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.0F);
|
||||
plant_dead = new BlockDeadPlant().setBlockName("plant_dead").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGrass).setHardness(0.0F);
|
||||
|
||||
waste_earth = new WasteEarth(Material.ground, true).setBlockName("waste_earth").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":waste_earth");
|
||||
waste_mycelium = new WasteEarth(Material.ground, true).setBlockName("waste_mycelium").setStepSound(Block.soundTypeGrass).setLightLevel(1F).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":waste_mycelium_side");
|
||||
@ -1757,12 +1795,6 @@ public class ModBlocks {
|
||||
nuke_n45 = new NukeN45(Material.iron).setBlockName("nuke_n45").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":code");
|
||||
nuke_fstbmb = new NukeBalefire(Material.iron, guiID_nuke_fstbmb).setBlockName("nuke_fstbmb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":nuke_fstbmb");
|
||||
|
||||
cel_prime = new CelPrime(Material.iron).setBlockName("cel_prime").setCreativeTab(null).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":code");
|
||||
cel_prime_terminal = new CelPrimePart(Material.iron).setBlockName("cel_prime_terminal").setCreativeTab(null).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":code");
|
||||
cel_prime_battery = new CelPrimePart(Material.iron).setBlockName("cel_prime_battery").setCreativeTab(null).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":code");
|
||||
cel_prime_port = new CelPrimePart(Material.iron).setBlockName("cel_prime_port").setCreativeTab(null).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":code");
|
||||
cel_prime_tanks = new CelPrimePart(Material.iron).setBlockName("cel_prime_tanks").setCreativeTab(null).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":code");
|
||||
|
||||
bomb_multi = new BombMulti(Material.iron).setBlockName("bomb_multi").setCreativeTab(MainRegistry.nukeTab).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":bomb_multi1");
|
||||
//bomb_multi_large = new BombMultiLarge(Material.iron).setBlockName("bomb_multi_large").setCreativeTab(MainRegistry.tabNuke).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":bomb_multi_large");
|
||||
|
||||
@ -1798,10 +1830,21 @@ public class ModBlocks {
|
||||
|
||||
heater_firebox = new HeaterFirebox().setBlockName("heater_firebox").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
heater_oilburner = new HeaterOilburner().setBlockName("heater_oilburner").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
heater_electric = new HeaterElectric().setBlockName("heater_electric").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
|
||||
furnace_iron = new FurnaceIron().setBlockName("furnace_iron").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_aluminium");
|
||||
furnace_steel = new FurnaceSteel().setBlockName("furnace_steel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
machine_stirling = new MachineStirling().setBlockName("machine_stirling").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
machine_stirling_steel = new MachineStirling().setBlockName("machine_stirling_steel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
machine_sawmill = new MachineSawmill().setBlockName("machine_sawmill").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
machine_crucible = new MachineCrucible().setBlockName("machine_crucible").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire");
|
||||
machine_boiler = new MachineHeatBoiler().setBlockName("machine_boiler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper");
|
||||
|
||||
foundry_mold = new FoundryMold().setBlockName("foundry_mold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire");
|
||||
foundry_basin = new FoundryBasin().setBlockName("foundry_basin").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire");
|
||||
foundry_channel = new FoundryChannel().setBlockName("foundry_channel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire");
|
||||
foundry_tank = new FoundryTank().setBlockName("foundry_tank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire");
|
||||
foundry_outlet = new FoundryOutlet().setBlockName("foundry_outlet").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_fire");
|
||||
|
||||
machine_difurnace_off = new MachineDiFurnace(false).setBlockName("machine_difurnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
|
||||
machine_difurnace_on = new MachineDiFurnace(true).setBlockName("machine_difurnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F);
|
||||
@ -1884,6 +1927,7 @@ public class ModBlocks {
|
||||
machine_combine_factory = new MachineCMBFactory(Material.iron).setBlockName("machine_combine_factory").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
|
||||
|
||||
machine_teleporter = new MachineTeleporter(Material.iron).setBlockName("machine_teleporter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
|
||||
teleanchor = new MachineTeleanchor().setBlockName("teleanchor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
|
||||
|
||||
machine_rtg_grey = new MachineRTG(Material.iron).setBlockName("machine_rtg_grey").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtg");
|
||||
//machine_rtg_red = new MachineRTG(Material.iron).setBlockName("machine_rtg_red").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
|
||||
@ -1902,7 +1946,6 @@ public class ModBlocks {
|
||||
red_wire_coated = new WireCoated(Material.iron).setBlockName("red_wire_coated").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_wire_coated");
|
||||
red_cable = new BlockCable(Material.iron).setBlockName("red_cable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":cable_neo");
|
||||
red_cable_classic = new BlockCable(Material.iron).setBlockName("red_cable_classic").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_cable_classic");
|
||||
rf_cable = new BlockRFCable(Material.iron).setBlockName("rf_cable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rf_cable_icon");
|
||||
red_connector = new ConnectorRedWire(Material.iron).setBlockName("red_connector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_connector");
|
||||
red_pylon = new PylonRedWire(Material.iron).setBlockName("red_pylon").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon");
|
||||
red_pylon_large = new PylonLarge(Material.iron).setBlockName("red_pylon_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon_large");
|
||||
@ -1921,12 +1964,14 @@ public class ModBlocks {
|
||||
fluid_duct_box = new FluidDuctBox(Material.iron).setBlockName("fluid_duct_box").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box");
|
||||
|
||||
conveyor = new BlockConveyor().setBlockName("conveyor").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor");
|
||||
//conveyor_classic = new BlockConveyorClassic().setBlockName("conveyor_classic").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor");
|
||||
conveyor_double = new BlockConveyorDouble().setBlockName("conveyor_double").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor_double");
|
||||
conveyor_triple = new BlockConveyorTriple().setBlockName("conveyor_triple").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor_triple");
|
||||
conveyor_chute = new BlockConveyorChute().setBlockName("conveyor_chute").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor");
|
||||
conveyor_lift = new BlockConveyorLift().setBlockName("conveyor_lift").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor");
|
||||
crane_extractor = new CraneExtractor().setBlockName("crane_extractor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
|
||||
crane_inserter = new CraneInserter().setBlockName("crane_inserter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
|
||||
crane_router = new CraneRouter().setBlockName("crane_router").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
|
||||
crane_boxer = new CraneBoxer().setBlockName("crane_boxer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
|
||||
crane_unboxer = new CraneUnboxer().setBlockName("crane_unboxer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
|
||||
|
||||
@ -1973,11 +2018,9 @@ public class ModBlocks {
|
||||
factory_titanium_hull = new BlockGeneric(Material.iron).setBlockName("factory_titanium_hull").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_titanium_hull");
|
||||
factory_titanium_furnace = new FactoryHatch(Material.iron).setBlockName("factory_titanium_furnace").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_titanium_furnace");
|
||||
factory_titanium_conductor = new BlockPillar(Material.iron, RefStrings.MODID + ":factory_titanium_conductor").setBlockName("factory_titanium_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_titanium_hull");
|
||||
factory_titanium_core = new FactoryCoreTitanium(Material.iron).setBlockName("factory_titanium_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_titanium_core");
|
||||
factory_advanced_hull = new BlockGeneric(Material.iron).setBlockName("factory_advanced_hull").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_advanced_hull");
|
||||
factory_advanced_furnace = new FactoryHatch(Material.iron).setBlockName("factory_advanced_furnace").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_advanced_furnace");
|
||||
factory_advanced_conductor = new BlockPillar(Material.iron, RefStrings.MODID + ":factory_advanced_conductor").setBlockName("factory_advanced_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_advanced_hull");
|
||||
factory_advanced_core = new FactoryCoreAdvanced(Material.iron).setBlockName("factory_advanced_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_advanced_core");
|
||||
|
||||
reactor_element = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_element_top", RefStrings.MODID + ":reactor_element_base").setBlockName("reactor_element").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_element_side");
|
||||
reactor_control = new BlockPillar(Material.iron, RefStrings.MODID + ":reactor_control_top").setBlockName("reactor_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":reactor_control_side");
|
||||
@ -2079,13 +2122,7 @@ public class ModBlocks {
|
||||
sat_dock = new MachineSatDock(Material.iron).setBlockName("sat_dock").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":sat_dock");
|
||||
soyuz_capsule = new SoyuzCapsule(Material.iron).setBlockName("soyuz_capsule").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":soyuz_capsule");
|
||||
|
||||
turret_light = new TurretLight(Material.iron).setBlockName("turret_light").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":turret_light");
|
||||
turret_heavy = new TurretHeavy(Material.iron).setBlockName("turret_heavy").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":turret_heavy");
|
||||
turret_rocket = new TurretRocket(Material.iron).setBlockName("turret_rocket").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":turret_rocket");
|
||||
turret_flamer = new TurretFlamer(Material.iron).setBlockName("turret_flamer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":turret_flamer");
|
||||
turret_tau = new TurretTau(Material.iron).setBlockName("turret_tau").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":turret_tau");
|
||||
turret_spitfire = new TurretSpitfire(Material.iron).setBlockName("turret_spitfire").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":code");
|
||||
turret_cwis = new TurretCIWS(Material.iron).setBlockName("turret_cwis").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":turret_cwis");
|
||||
turret_cheapo = new TurretCheapo(Material.iron).setBlockName("turret_cheapo").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":turret_cheapo");
|
||||
|
||||
turret_chekhov = new TurretChekhov(Material.iron).setBlockName("turret_chekhov").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
@ -2303,21 +2340,18 @@ public class ModBlocks {
|
||||
sulfuric_acid_fluid = new GenericFluid("sulfuric_acid_fluid").setDensity(1840).setViscosity(1000).setTemperature(273);
|
||||
FluidRegistry.registerFluid(sulfuric_acid_fluid);
|
||||
sulfuric_acid_block = new GenericFluidBlock(sulfuric_acid_fluid, Material.water, "sulfuric_acid_still", "sulfuric_acid_flowing").setDamage(ModDamageSource.acid, 5F).setBlockName("sulfuric_acid_block").setResistance(500F);
|
||||
|
||||
Fluid liquidConcrete = new GenericFluid("concrete_liquid").setViscosity(2000);
|
||||
concrete_liquid = new GenericFiniteFluid(liquidConcrete, Material.rock, "concrete_liquid", "concrete_liquid_flowing").setQuantaPerBlock(4).setBlockName("concrete_liquid").setResistance(500F);
|
||||
|
||||
dummy_block_flare = new DummyBlockFlare(Material.iron, false).setBlockName("dummy_block_flare").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_aluminium");
|
||||
dummy_port_flare = new DummyBlockFlare(Material.iron, true).setBlockName("dummy_port_flare").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_aluminium");
|
||||
dummy_block_drill = new DummyBlockDrill(Material.iron, false).setBlockName("dummy_block_drill").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_lead");
|
||||
dummy_port_drill = new DummyBlockDrill(Material.iron, true).setBlockName("dummy_port_drill").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_lead");
|
||||
dummy_block_assembler = new DummyBlockAssembler(Material.iron, false).setBlockName("dummy_block_assembler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
dummy_port_assembler = new DummyBlockAssembler(Material.iron, true).setBlockName("dummy_port_assembler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
dummy_block_chemplant = new BlockGeneric(Material.iron).setBlockName("dummy_block_chemplant").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
dummy_port_chemplant = new BlockGeneric(Material.iron).setBlockName("dummy_port_chemplant").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
dummy_block_fluidtank = new DummyBlockFluidTank(Material.iron, false).setBlockName("dummy_block_fluidtank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
dummy_port_fluidtank = new DummyBlockFluidTank(Material.iron, true).setBlockName("dummy_port_fluidtank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
dummy_block_refinery = new DummyBlockRefinery(Material.iron, false).setBlockName("dummy_block_refinery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_titanium");
|
||||
dummy_port_refinery = new DummyBlockRefinery(Material.iron, true).setBlockName("dummy_port_refinery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_titanium");
|
||||
dummy_block_pumpjack = new BlockGeneric(Material.iron).setBlockName("dummy_block_pumpjack").setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_titanium");
|
||||
dummy_port_pumpjack = new BlockGeneric(Material.iron).setBlockName("dummy_port_pumpjack").setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_titanium");
|
||||
dummy_block_turbofan = new DummyBlockTurbofan(Material.iron, false).setBlockName("dummy_block_turbofan").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
dummy_port_turbofan = new DummyBlockTurbofan(Material.iron, true).setBlockName("dummy_port_turbofan").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
dummy_block_ams_limiter = new DummyBlockAMSLimiter(Material.iron).setBlockName("dummy_block_ams_limiter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper");
|
||||
@ -2326,8 +2360,6 @@ public class ModBlocks {
|
||||
dummy_port_ams_emitter = new DummyBlockAMSEmitter(Material.iron).setBlockName("dummy_port_ams_emitter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper");
|
||||
dummy_block_ams_base = new DummyBlockAMSBase(Material.iron).setBlockName("dummy_block_ams_base").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper");
|
||||
dummy_port_ams_base = new DummyBlockAMSBase(Material.iron).setBlockName("dummy_port_ams_base").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_copper");
|
||||
dummy_block_radgen = new DummyBlockRadGen(Material.iron).setBlockName("dummy_block_radgen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
dummy_port_radgen = new DummyBlockRadGen(Material.iron).setBlockName("dummy_port_radgen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
dummy_block_vault = new DummyBlockVault(Material.iron).setBlockName("dummy_block_vault").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
dummy_block_blast = new DummyBlockBlast(Material.iron).setBlockName("dummy_block_blast").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
dummy_block_uf6 = new DummyBlockMachine(Material.iron, guiID_uf6_tank, machine_uf6_tank, false).setBlockName("dummy_block_uf6").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_titanium");
|
||||
@ -2344,7 +2376,7 @@ public class ModBlocks {
|
||||
pink_planks = new BlockGeneric(Material.wood).setBlockName("pink_planks").setStepSound(Block.soundTypeWood).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pink_planks");
|
||||
pink_slab = new BlockPinkSlab(false, Material.wood).setBlockName("pink_slab").setStepSound(Block.soundTypeWood).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pink_planks");
|
||||
pink_double_slab = new BlockPinkSlab(true, Material.wood).setBlockName("pink_double_slab").setStepSound(Block.soundTypeWood).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pink_planks");
|
||||
pink_stairs = new BlockPinkStairs(pink_planks, 0).setBlockName("pink_stairs").setStepSound(Block.soundTypeWood).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pink_planks");
|
||||
pink_stairs = new BlockGenericStairs(pink_planks, 0).setBlockName("pink_stairs").setStepSound(Block.soundTypeWood).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pink_planks");
|
||||
|
||||
ff = new BlockFF(Material.iron).setBlockName("ff").setHardness(0.5F).setStepSound(Block.soundTypeGravel).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":code");
|
||||
}
|
||||
@ -2359,18 +2391,13 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(test_nuke, test_nuke.getUnlocalizedName());
|
||||
|
||||
GameRegistry.registerBlock(event_tester, event_tester.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(rotation_tester, rotation_tester.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(obj_tester, obj_tester.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(test_ticker, test_ticker.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(test_missile, test_missile.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(test_core, test_core.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(test_charge, test_charge.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(test_conductor, test_conductor.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(test_pipe, test_pipe.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(test_ct, test_ct.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(test_rail, test_rail.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(test_bb_bork, test_bb_bork.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(test_bb_inf, test_bb_inf.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(structure_anchor, structure_anchor.getUnlocalizedName());
|
||||
|
||||
//Ores
|
||||
GameRegistry.registerBlock(ore_uranium, ore_uranium.getUnlocalizedName());
|
||||
@ -2675,6 +2702,32 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(brick_compound, ItemBlockBlastInfo.class, brick_compound.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(brick_light, ItemBlockBlastInfo.class, brick_light.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(brick_asbestos, brick_asbestos.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(brick_fire, ItemBlockBlastInfo.class, brick_fire.getUnlocalizedName());
|
||||
|
||||
GameRegistry.registerBlock(concrete_slab, ItemModSlab.class, concrete_slab.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(concrete_double_slab, ItemModSlab.class, concrete_double_slab.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(concrete_brick_slab, ItemModSlab.class, concrete_brick_slab.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(concrete_brick_double_slab, ItemModSlab.class, concrete_brick_double_slab.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(brick_slab, ItemModSlab.class, brick_slab.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(brick_double_slab, ItemModSlab.class, brick_double_slab.getUnlocalizedName());
|
||||
|
||||
GameRegistry.registerBlock(concrete_smooth_stairs, concrete_smooth_stairs.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(concrete_stairs, concrete_stairs.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(concrete_asbestos_stairs, concrete_asbestos_stairs.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(ducrete_smooth_stairs, ducrete_smooth_stairs.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(brick_concrete_stairs, brick_concrete_stairs.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(brick_concrete_mossy_stairs, brick_concrete_mossy_stairs.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(brick_concrete_cracked_stairs, brick_concrete_cracked_stairs.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(brick_concrete_broken_stairs, brick_concrete_broken_stairs.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(brick_ducrete_stairs, brick_ducrete_stairs.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(reinforced_stone_stairs, reinforced_stone_stairs.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(reinforced_brick_stairs, reinforced_brick_stairs.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(brick_obsidian_stairs, brick_obsidian_stairs.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(brick_light_stairs, brick_light_stairs.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(brick_compound_stairs, brick_compound_stairs.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(brick_asbestos_stairs, brick_asbestos_stairs.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(brick_fire_stairs, brick_fire_stairs.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(ducrete_stairs, ducrete_stairs.getUnlocalizedName());
|
||||
|
||||
//CMB Building Elements
|
||||
GameRegistry.registerBlock(cmb_brick, ItemBlockBlastInfo.class, cmb_brick.getUnlocalizedName());
|
||||
@ -2733,6 +2786,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(brick_dungeon_tile, brick_dungeon_tile.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(brick_dungeon_circle, brick_dungeon_circle.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(brick_forgotten, brick_forgotten.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_computer, ItemBlockMeta.class, deco_computer.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(tape_recorder, tape_recorder.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(steel_poles, steel_poles.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(pole_top, pole_top.getUnlocalizedName());
|
||||
@ -2767,7 +2821,8 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(deco_pipe_quad_green_rusted, ItemBlockBase.class, deco_pipe_quad_green_rusted.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_quad_red, ItemBlockBase.class, deco_pipe_quad_red.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_pipe_quad_marked, ItemBlockBase.class, deco_pipe_quad_marked.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(plant_flower, ItemBlockBase.class, plant_flower.getUnlocalizedName());
|
||||
register(plant_flower);
|
||||
register(plant_dead);
|
||||
GameRegistry.registerBlock(mush, mush.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(mush_block, mush_block.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(mush_block_stem, mush_block_stem.getUnlocalizedName());
|
||||
@ -2802,12 +2857,6 @@ public class ModBlocks {
|
||||
//RAD
|
||||
GameRegistry.registerBlock(sellafield_slaked, sellafield_slaked.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(sellafield, ItemBlockNamedMeta.class, sellafield.getUnlocalizedName());
|
||||
/*GameRegistry.registerBlock(sellafield_0, sellafield_0.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(sellafield_1, sellafield_1.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(sellafield_2, sellafield_2.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(sellafield_3, sellafield_3.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(sellafield_4, sellafield_4.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(sellafield_core, sellafield_core.getUnlocalizedName());*/
|
||||
|
||||
//Geysirs
|
||||
GameRegistry.registerBlock(geysir_water, geysir_water.getUnlocalizedName());
|
||||
@ -2839,13 +2888,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(c4, c4.getUnlocalizedName());
|
||||
|
||||
//Turrets
|
||||
GameRegistry.registerBlock(turret_light, turret_light.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(turret_heavy, turret_heavy.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(turret_rocket, turret_rocket.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(turret_flamer, turret_flamer.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(turret_tau, turret_tau.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(turret_spitfire, turret_spitfire.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(turret_cwis, ItemBlockLore.class, turret_cwis.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(turret_cheapo, turret_cheapo.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(turret_chekhov, turret_chekhov.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(turret_friendly, turret_friendly.getUnlocalizedName());
|
||||
@ -2872,13 +2915,6 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(mine_shrap, mine_shrap.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(mine_fat, mine_fat.getUnlocalizedName());
|
||||
|
||||
//Wot
|
||||
GameRegistry.registerBlock(cel_prime, cel_prime.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(cel_prime_terminal, cel_prime_terminal.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(cel_prime_battery, cel_prime_battery.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(cel_prime_port, cel_prime_port.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(cel_prime_tanks, cel_prime_tanks.getUnlocalizedName());
|
||||
|
||||
//Block Bombs
|
||||
GameRegistry.registerBlock(flame_war, flame_war.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(float_bomb, float_bomb.getUnlocalizedName());
|
||||
@ -2946,12 +2982,12 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(door_bunker, door_bunker.getUnlocalizedName());
|
||||
|
||||
//Crates
|
||||
GameRegistry.registerBlock(crate_iron, crate_iron.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(crate_steel, crate_steel.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(crate_desh, crate_desh.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(crate_tungsten, crate_tungsten.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(safe, safe.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(mass_storage, ItemBlockBase.class, mass_storage.getUnlocalizedName());
|
||||
register(crate_iron);
|
||||
register(crate_steel);
|
||||
register(crate_desh);
|
||||
register(crate_tungsten);
|
||||
register(safe);
|
||||
register(mass_storage);
|
||||
|
||||
//Junk
|
||||
GameRegistry.registerBlock(boxcar, boxcar.getUnlocalizedName());
|
||||
@ -2981,9 +3017,19 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(machine_epress, machine_epress.getUnlocalizedName());
|
||||
register(heater_firebox);
|
||||
register(heater_oilburner);
|
||||
register(heater_electric);
|
||||
register(furnace_iron);
|
||||
register(furnace_steel);
|
||||
register(machine_stirling);
|
||||
register(machine_stirling_steel);
|
||||
register(machine_sawmill);
|
||||
register(machine_crucible);
|
||||
register(machine_boiler);
|
||||
register(foundry_mold);
|
||||
register(foundry_basin);
|
||||
register(foundry_channel);
|
||||
register(foundry_tank);
|
||||
register(foundry_outlet);
|
||||
GameRegistry.registerBlock(machine_difurnace_off, machine_difurnace_off.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_difurnace_on, machine_difurnace_on.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_difurnace_rtg_off, machine_difurnace_rtg_off.getUnlocalizedName());
|
||||
@ -3086,7 +3132,6 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(cable_detector, cable_detector.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(cable_diode, ItemBlockBase.class, cable_diode.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_detector, machine_detector.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(rf_cable, rf_cable.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(oil_duct, oil_duct.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(oil_duct_solid, oil_duct_solid.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(gas_duct, gas_duct.getUnlocalizedName());
|
||||
@ -3098,9 +3143,11 @@ public class ModBlocks {
|
||||
|
||||
GameRegistry.registerBlock(crane_extractor, crane_extractor.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(crane_inserter, crane_inserter.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(crane_router, crane_router.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(crane_boxer, crane_boxer.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(crane_unboxer, crane_unboxer.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(conveyor, conveyor.getUnlocalizedName());
|
||||
//GameRegistry.registerBlock(conveyor_classic, conveyor_classic.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(conveyor_double, conveyor_double.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(conveyor_triple, conveyor_triple.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(conveyor_chute, conveyor_chute.getUnlocalizedName());
|
||||
@ -3118,18 +3165,18 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(ladder_lead, ladder_lead.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(ladder_cobalt, ladder_cobalt.getUnlocalizedName());
|
||||
|
||||
GameRegistry.registerBlock(barrel_plastic, ItemBlockLore.class, barrel_plastic.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(barrel_corroded, ItemBlockLore.class, barrel_corroded.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(barrel_iron, ItemBlockLore.class, barrel_iron.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(barrel_steel, ItemBlockLore.class, barrel_steel.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(barrel_tcalloy, ItemBlockLore.class, barrel_tcalloy.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(barrel_antimatter, ItemBlockLore.class, barrel_antimatter.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_battery_potato, machine_battery_potato.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_battery, machine_battery.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_lithium_battery, machine_lithium_battery.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_schrabidium_battery, machine_schrabidium_battery.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_dineutronium_battery, machine_dineutronium_battery.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_fensu, machine_fensu.getUnlocalizedName());
|
||||
register(barrel_plastic);
|
||||
register(barrel_corroded);
|
||||
register(barrel_iron);
|
||||
register(barrel_steel);
|
||||
register(barrel_tcalloy);
|
||||
register(barrel_antimatter);
|
||||
register(machine_battery_potato);
|
||||
register(machine_battery);
|
||||
register(machine_lithium_battery);
|
||||
register(machine_schrabidium_battery);
|
||||
register(machine_dineutronium_battery);
|
||||
register(machine_fensu);
|
||||
GameRegistry.registerBlock(machine_transformer, machine_transformer.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_transformer_20, machine_transformer_20.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_transformer_dnt, machine_transformer_dnt.getUnlocalizedName());
|
||||
@ -3145,16 +3192,16 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(machine_assemfac, machine_assemfac.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_chemplant, machine_chemplant.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_chemfac, machine_chemfac.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_fluidtank, machine_fluidtank.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_bat9000, machine_bat9000.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_orbus, machine_orbus.getUnlocalizedName());
|
||||
register(machine_fluidtank);
|
||||
register(machine_bat9000);
|
||||
register(machine_orbus);
|
||||
GameRegistry.registerBlock(machine_boiler_off, machine_boiler_off.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_boiler_on, machine_boiler_on.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_boiler_electric_on, machine_boiler_electric_on.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_boiler_electric_off, machine_boiler_electric_off.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_turbine, machine_turbine.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_large_turbine, machine_large_turbine.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_chungus, machine_chungus.getUnlocalizedName());
|
||||
register(machine_turbine);
|
||||
register(machine_large_turbine);
|
||||
register(machine_chungus);
|
||||
GameRegistry.registerBlock(machine_condenser, machine_condenser.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_tower_small, machine_tower_small.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_tower_large, machine_tower_large.getUnlocalizedName());
|
||||
@ -3184,6 +3231,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(machine_schrabidium_transmutator, machine_schrabidium_transmutator.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_combine_factory, machine_combine_factory.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_teleporter, machine_teleporter.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(teleanchor, teleanchor.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_satlinker, machine_satlinker.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_keyforge, machine_keyforge.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_armor_table, machine_armor_table.getUnlocalizedName());
|
||||
@ -3223,13 +3271,11 @@ public class ModBlocks {
|
||||
|
||||
//Industrial Factories
|
||||
GameRegistry.registerBlock(factory_titanium_hull, factory_titanium_hull.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(factory_titanium_furnace, factory_titanium_furnace.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(factory_titanium_conductor, factory_titanium_conductor.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(factory_titanium_core, factory_titanium_core.getUnlocalizedName());
|
||||
//GameRegistry.registerBlock(factory_titanium_furnace, factory_titanium_furnace.getUnlocalizedName());
|
||||
//GameRegistry.registerBlock(factory_titanium_conductor, factory_titanium_conductor.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(factory_advanced_hull, factory_advanced_hull.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(factory_advanced_furnace, factory_advanced_furnace.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(factory_advanced_conductor, factory_advanced_conductor.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(factory_advanced_core, factory_advanced_core.getUnlocalizedName());
|
||||
//GameRegistry.registerBlock(factory_advanced_furnace, factory_advanced_furnace.getUnlocalizedName());
|
||||
//GameRegistry.registerBlock(factory_advanced_conductor, factory_advanced_conductor.getUnlocalizedName());
|
||||
|
||||
//The Fluid Inserter
|
||||
//GameRegistry.registerBlock(machine_inserter, machine_inserter.getUnlocalizedName());
|
||||
@ -3340,22 +3386,17 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(corium_block, corium_block.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(volcanic_lava_block, volcanic_lava_block.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(sulfuric_acid_block, sulfuric_acid_block.getUnlocalizedName());
|
||||
//GameRegistry.registerBlock(concrete_liquid, concrete_liquid.getUnlocalizedName());
|
||||
|
||||
//Multiblock Dummy Blocks
|
||||
GameRegistry.registerBlock(dummy_block_flare, dummy_block_flare.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(dummy_port_flare, dummy_port_flare.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(dummy_block_drill, dummy_block_drill.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(dummy_port_drill, dummy_port_drill.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(dummy_block_assembler, dummy_block_assembler.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(dummy_port_assembler, dummy_port_assembler.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(dummy_block_chemplant, dummy_block_chemplant.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(dummy_port_chemplant, dummy_port_chemplant.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(dummy_block_fluidtank, dummy_block_fluidtank.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(dummy_port_fluidtank, dummy_port_fluidtank.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(dummy_block_refinery, dummy_block_refinery.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(dummy_port_refinery, dummy_port_refinery.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(dummy_block_pumpjack, dummy_block_pumpjack.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(dummy_port_pumpjack, dummy_port_pumpjack.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(dummy_block_turbofan, dummy_block_turbofan.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(dummy_port_turbofan, dummy_port_turbofan.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(dummy_block_ams_limiter, dummy_block_ams_limiter.getUnlocalizedName());
|
||||
@ -3364,8 +3405,6 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(dummy_port_ams_emitter, dummy_port_ams_emitter.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(dummy_block_ams_base, dummy_block_ams_base.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(dummy_port_ams_base, dummy_port_ams_base.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(dummy_block_radgen, dummy_block_radgen.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(dummy_port_radgen, dummy_port_radgen.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(dummy_block_vault, dummy_block_vault.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(dummy_block_blast, dummy_block_blast.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(dummy_block_uf6, dummy_block_uf6.getUnlocalizedName());
|
||||
|
||||
@ -1,83 +0,0 @@
|
||||
package com.hbm.blocks.bomb;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.bomb.TileEntityCelPrime;
|
||||
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class CelPrime extends BlockContainer {
|
||||
|
||||
public CelPrime(Material p_i45386_1_) {
|
||||
super(p_i45386_1_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
|
||||
return new TileEntityCelPrime();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||
if(world.isRemote)
|
||||
{
|
||||
return true;
|
||||
} else if(!player.isSneaking())
|
||||
{
|
||||
TileEntityCelPrime entity = (TileEntityCelPrime) world.getTileEntity(x, y, z);
|
||||
if(entity != null)
|
||||
{
|
||||
FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_cel_prime, world, x, y, z);
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRenderType(){
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) {
|
||||
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
|
||||
|
||||
if(i == 0)
|
||||
{
|
||||
world.setBlockMetadataWithNotify(x, y, z, 5, 2);
|
||||
}
|
||||
if(i == 1)
|
||||
{
|
||||
world.setBlockMetadataWithNotify(x, y, z, 3, 2);
|
||||
}
|
||||
if(i == 2)
|
||||
{
|
||||
world.setBlockMetadataWithNotify(x, y, z, 4, 2);
|
||||
}
|
||||
if(i == 3)
|
||||
{
|
||||
world.setBlockMetadataWithNotify(x, y, z, 2, 2);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,73 +0,0 @@
|
||||
package com.hbm.blocks.bomb;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.tileentity.bomb.TileEntityCelPrimeBattery;
|
||||
import com.hbm.tileentity.bomb.TileEntityCelPrimePort;
|
||||
import com.hbm.tileentity.bomb.TileEntityCelPrimeTanks;
|
||||
import com.hbm.tileentity.bomb.TileEntityCelPrimeTerminal;
|
||||
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class CelPrimePart extends BlockContainer {
|
||||
|
||||
public CelPrimePart(Material p_i45386_1_) {
|
||||
super(p_i45386_1_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
|
||||
if(this == ModBlocks.cel_prime_terminal)
|
||||
return new TileEntityCelPrimeTerminal();
|
||||
if(this == ModBlocks.cel_prime_battery)
|
||||
return new TileEntityCelPrimeBattery();
|
||||
if(this == ModBlocks.cel_prime_port)
|
||||
return new TileEntityCelPrimePort();
|
||||
if(this == ModBlocks.cel_prime_tanks)
|
||||
return new TileEntityCelPrimeTanks();
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRenderType(){
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) {
|
||||
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
|
||||
|
||||
if(i == 0)
|
||||
{
|
||||
world.setBlockMetadataWithNotify(x, y, z, 5, 2);
|
||||
}
|
||||
if(i == 1)
|
||||
{
|
||||
world.setBlockMetadataWithNotify(x, y, z, 3, 2);
|
||||
}
|
||||
if(i == 2)
|
||||
{
|
||||
world.setBlockMetadataWithNotify(x, y, z, 4, 2);
|
||||
}
|
||||
if(i == 3)
|
||||
{
|
||||
world.setBlockMetadataWithNotify(x, y, z, 2, 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -134,21 +134,11 @@ public class NukeMike extends BlockContainer implements IBomb {
|
||||
|
||||
world.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(world, BombConfig.mikeRadius, x + 0.5, y + 0.5, z + 0.5));
|
||||
|
||||
if(GeneralConfig.enableNukeClouds) {
|
||||
EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, r * 0.005F);
|
||||
entity2.posX = x;
|
||||
entity2.posY = y;
|
||||
entity2.posZ = z;
|
||||
world.spawnEntityInWorld(entity2);
|
||||
} else {
|
||||
EntityNukeCloudSmall entity2 = new EntityNukeCloudNoShroom(world, 1000);
|
||||
entity2.posX = x;
|
||||
entity2.posY = y - (r / 10);
|
||||
entity2.posZ = z;
|
||||
world.spawnEntityInWorld(entity2);
|
||||
}
|
||||
|
||||
// ExplosionNukeAdvanced.mush(world, x, y, z);
|
||||
EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, r * 0.005F);
|
||||
entity2.posX = x;
|
||||
entity2.posY = y;
|
||||
entity2.posZ = z;
|
||||
world.spawnEntityInWorld(entity2);
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
52
src/main/java/com/hbm/blocks/fluid/GenericFiniteFluid.java
Normal file
52
src/main/java/com/hbm/blocks/fluid/GenericFiniteFluid.java
Normal file
@ -0,0 +1,52 @@
|
||||
package com.hbm.blocks.fluid;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.lib.RefStrings;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.fluids.BlockFluidFinite;
|
||||
import net.minecraftforge.fluids.Fluid;
|
||||
|
||||
public class GenericFiniteFluid extends BlockFluidFinite {
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public static IIcon stillIcon;
|
||||
@SideOnly(Side.CLIENT)
|
||||
public static IIcon flowingIcon;
|
||||
public Random rand = new Random();
|
||||
|
||||
private String stillName;
|
||||
private String flowingName;
|
||||
|
||||
public GenericFiniteFluid(Fluid fluid, Material material, String still, String flowing) {
|
||||
super(fluid, material);
|
||||
setCreativeTab(null);
|
||||
stillName = still;
|
||||
flowingName = flowing;
|
||||
displacements.put(this, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getIcon(int side, int meta) {
|
||||
return (side == 0 || side == 1) ? stillIcon : flowingIcon;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerBlockIcons(IIconRegister register) {
|
||||
stillIcon = register.registerIcon(RefStrings.MODID + ":" + stillName);
|
||||
flowingIcon = register.registerIcon(RefStrings.MODID + ":" + flowingName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int onBlockPlaced(World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ, int meta) {
|
||||
return this.quantaPerBlock - 1;
|
||||
}
|
||||
}
|
||||
@ -33,8 +33,9 @@ public class BlockGasCoal extends BlockGasBase {
|
||||
|
||||
EntityLivingBase living = (EntityLivingBase) entity;
|
||||
|
||||
if(!ArmorRegistry.hasProtection(living, 3, HazardClass.PARTICLE_COARSE))
|
||||
if(!ArmorRegistry.hasProtection(living, 3, HazardClass.PARTICLE_COARSE)) {
|
||||
HbmLivingProps.incrementBlackLung(living, 10);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -181,14 +181,14 @@ public class BlockBobble extends BlockContainer {
|
||||
PU238( "Pu-238", "Pu-238", "Improved Tom impact mechanics", null, false, ScrapType.CPU_REGISTER),
|
||||
VT( "VT-6/24", "VT-6/24", "Balefire warhead model and general texturework", "You cannot unfuck a horse.", true, ScrapType.CPU_EXT),
|
||||
DOC( "The Doctor", "Doctor17PH", "Russian localization, lunar miner", "Perhaps the moon rocks were too expensive", true, ScrapType.CPU_CACHE),
|
||||
BLUEHAT( "The Blue Hat", "The Blue Hat", "Textures", "there's a listening device in this bobblehead$don't touch it thanks", true, ScrapType.MEM_16K_A),
|
||||
BLUEHAT( "The Blue Hat", "The Blue Hat", "Textures", "payday 2's deagle freeaim champ of the year 2022", true, ScrapType.MEM_16K_A),
|
||||
PHEO( "Pheo", "Pheonix", "Deuterium machines, tantalium textures, Reliant Rocket", "RUN TO THE BEDROOM, ON THE SUITCASE ON THE LEFT,$YOU'LL FIND MY FAVORITE AXE", true, ScrapType.MEM_16K_B),
|
||||
ADAM29( "Adam29", "Adam29", "Ethanol, liquid petroleum gas", "You know, nukes are really quite beatiful.$It's like watching a star be born for a split second.", true, ScrapType.MEM_16K_C),
|
||||
UFFR( "UFFR", "UFFR", "All sorts of things from his PR", "fried shrimp", false, ScrapType.MEM_SOCKET),
|
||||
VAER( "vaer", "vaer", "ZIRNOX", "taken de family out to the weekend cigarette festival", true, ScrapType.MEM_16K_D),
|
||||
NOS( "Dr Nostalgia", "Dr Nostalgia", "SSG and Vortex models", "Take a picture, I'ma pose, paparazzi$I've been drinking, moving like a zombie", true, ScrapType.BOARD_TRANSISTOR),
|
||||
DRILLGON( "Drillgon200", "Drillgon200", "1.12 Port", null, false, ScrapType.CPU_LOGIC),
|
||||
CIRNO( "Cirno", "Cirno", "being a dumb ice fairy", "No brain. Head empty.", true, ScrapType.BOARD_BLANK);
|
||||
CIRNO( "Cirno", "Cirno", "the only multi layered skin i had", "No brain. Head empty.", true, ScrapType.BOARD_BLANK);
|
||||
|
||||
public String name; //the title of the tooltip
|
||||
public String label; //the name engraved in the socket
|
||||
|
||||
@ -1,11 +1,10 @@
|
||||
package com.hbm.blocks.generic;
|
||||
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockCrystal extends Block {
|
||||
public class BlockCrystal extends BlockDragonProof {
|
||||
|
||||
public BlockCrystal(Material mat) {
|
||||
super(mat);
|
||||
|
||||
85
src/main/java/com/hbm/blocks/generic/BlockDeadPlant.java
Normal file
85
src/main/java/com/hbm/blocks/generic/BlockDeadPlant.java
Normal file
@ -0,0 +1,85 @@
|
||||
package com.hbm.blocks.generic;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.BlockEnumMulti;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockDeadPlant extends BlockEnumMulti {
|
||||
|
||||
public BlockDeadPlant() {
|
||||
super(Material.plants, EnumDeadPlantType.class, false, true);
|
||||
}
|
||||
|
||||
public static enum EnumDeadPlantType {
|
||||
GENERIC,
|
||||
GRASS,
|
||||
FLOWER,
|
||||
BIGFLOWER,
|
||||
FERN
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPlaceBlockAt(World world, int x, int y, int z) {
|
||||
return super.canPlaceBlockAt(world, x, y, z) && this.canBlockStay(world, x, y, z);
|
||||
}
|
||||
|
||||
protected boolean canPlaceBlockOn(Block block) {
|
||||
return block == Blocks.grass || block == Blocks.dirt || block == ModBlocks.waste_earth || block == ModBlocks.dirt_oily || block == ModBlocks.dirt_dead;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNeighborBlockChange(World world, int x, int y, int z, Block block) {
|
||||
super.onNeighborBlockChange(world, x, y, z, block);
|
||||
this.checkAndDropBlock(world, x, y, z);
|
||||
}
|
||||
|
||||
protected void checkAndDropBlock(World world, int x, int y, int z) {
|
||||
if(!this.canBlockStay(world, x, y, z)) {
|
||||
this.dropBlockAsItem(world, x, y, z, world.getBlockMetadata(x, y, z), 0);
|
||||
world.setBlock(x, y, z, getBlockById(0), 0, 2);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canBlockStay(World world, int x, int y, int z) {
|
||||
return canPlaceBlockOn(world.getBlock(x, y - 1, z));
|
||||
}
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRenderType() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int damageDropped(int meta) {
|
||||
return meta;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItemDropped(int meta, Random rand, int fortune) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
102
src/main/java/com/hbm/blocks/generic/BlockDecoModel.java
Normal file
102
src/main/java/com/hbm/blocks/generic/BlockDecoModel.java
Normal file
@ -0,0 +1,102 @@
|
||||
package com.hbm.blocks.generic;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.lib.RefStrings;
|
||||
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockDecoModel extends Block {
|
||||
|
||||
//Allows between 1-4 differently colored/textured sub-blocks altogether.
|
||||
int subTypes;
|
||||
|
||||
public BlockDecoModel(Material mat, int types) {
|
||||
super(mat);
|
||||
subTypes = types;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
protected IIcon[] icons;
|
||||
|
||||
@Override
|
||||
public int damageDropped(int meta) {
|
||||
return meta & 12;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void getSubBlocks(Item item, CreativeTabs tabs, List list) {
|
||||
for(byte i = 0; i < subTypes; i++) {
|
||||
list.add(new ItemStack(item, 1, i));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerBlockIcons(IIconRegister iconRegister) {
|
||||
super.registerBlockIcons(iconRegister);
|
||||
icons = new IIcon[subTypes];
|
||||
|
||||
for(byte i = 0; i < subTypes; i++)
|
||||
icons[i] = iconRegister.registerIcon(this.textureName + "_" + i);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getIcon(int side, int meta) {
|
||||
return this.icons[(meta >> 2) % this.icons.length];
|
||||
}
|
||||
|
||||
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
|
||||
|
||||
@Override
|
||||
public int getRenderType() {
|
||||
return renderID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock() {
|
||||
return false;
|
||||
}
|
||||
|
||||
//Did somebody say - pain?
|
||||
//Alright fuckers, looks like 2/b010 = North, 3/b011 = South, 4/b100 = West, 5/b101 = East for sides.
|
||||
//I'll just opt for something similar (0/b00 North, 1/b01 South, 2/b10 West, 3/b11 East)
|
||||
|
||||
//Assumes meta is using the third and fourth bits.
|
||||
@Override
|
||||
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) {
|
||||
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
|
||||
|
||||
int meta;
|
||||
|
||||
if((i & 1) != 1)
|
||||
meta = i >> 1; //For North(b00>b00) and South(b10>b01), shift bits right by one
|
||||
else {
|
||||
if(i == 3)
|
||||
meta = 2; //For West(b11>b10), just set to 2
|
||||
else
|
||||
meta = 3; //For East(b01>b11), just set to 3
|
||||
}
|
||||
|
||||
world.setBlockMetadataWithNotify(x, y, z, meta, 2);
|
||||
}
|
||||
}
|
||||
17
src/main/java/com/hbm/blocks/generic/BlockDragonProof.java
Normal file
17
src/main/java/com/hbm/blocks/generic/BlockDragonProof.java
Normal file
@ -0,0 +1,17 @@
|
||||
package com.hbm.blocks.generic;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.boss.EntityDragon;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
|
||||
public class BlockDragonProof extends BlockGeneric {
|
||||
|
||||
public BlockDragonProof(Material material) {
|
||||
super(material);
|
||||
}
|
||||
|
||||
public boolean canEntityDestroy(IBlockAccess world, int x, int y, int z, Entity entity) {
|
||||
return !(entity instanceof EntityDragon);
|
||||
}
|
||||
}
|
||||
19
src/main/java/com/hbm/blocks/generic/BlockGenericStairs.java
Normal file
19
src/main/java/com/hbm/blocks/generic/BlockGenericStairs.java
Normal file
@ -0,0 +1,19 @@
|
||||
package com.hbm.blocks.generic;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockStairs;
|
||||
|
||||
public class BlockGenericStairs extends BlockStairs {
|
||||
|
||||
public static List<Object[]> recipeGen = new ArrayList();
|
||||
|
||||
public BlockGenericStairs(Block block, int meta) {
|
||||
super(block, meta);
|
||||
this.useNeighborBrightness = true;
|
||||
|
||||
recipeGen.add(new Object[] {block, meta, this});
|
||||
}
|
||||
}
|
||||
99
src/main/java/com/hbm/blocks/generic/BlockMultiSlab.java
Normal file
99
src/main/java/com/hbm/blocks/generic/BlockMultiSlab.java
Normal file
@ -0,0 +1,99 @@
|
||||
package com.hbm.blocks.generic;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockSlab;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockMultiSlab extends BlockSlab {
|
||||
|
||||
public static List<Object[]> recipeGen = new ArrayList();
|
||||
|
||||
public Block[] slabMaterials;
|
||||
public Block single;
|
||||
|
||||
public BlockMultiSlab(Block single, Material mat, Block... slabMaterials) {
|
||||
super(single != null, mat);
|
||||
this.single = single;
|
||||
this.slabMaterials = slabMaterials;
|
||||
this.useNeighborBrightness = true;
|
||||
|
||||
if(single == null) {
|
||||
for(int i = 0; i < slabMaterials.length; i++) {
|
||||
recipeGen.add(new Object[] {slabMaterials[i], this, i});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getIcon(int side, int meta) {
|
||||
meta = (meta & 7) % slabMaterials.length;
|
||||
Block block = slabMaterials[meta];
|
||||
return block.getIcon(side, meta);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItemDropped(int meta, Random rand, int fortune) {
|
||||
return Item.getItemFromBlock(single != null ? single : this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ItemStack createStackedBlock(int meta) {
|
||||
return new ItemStack(Item.getItemFromBlock(single != null ? single : this), 2, (meta & 7) % slabMaterials.length);
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public Item getItem(World world, int x, int y, int z) {
|
||||
return Item.getItemFromBlock(single != null ? single : this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String func_150002_b(int meta) {
|
||||
meta = (meta & 7) % slabMaterials.length;
|
||||
Block block = slabMaterials[meta];
|
||||
return super.getUnlocalizedName() + "." + block.getUnlocalizedName().substring(5);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDamageValue(World world, int x, int y, int z) {
|
||||
return (super.getDamageValue(world, x, y, z) & 7) % slabMaterials.length;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void getSubBlocks(Item item, CreativeTabs tab, List list) {
|
||||
|
||||
if(single == null) {
|
||||
for(int i = 0; i < slabMaterials.length; ++i) {
|
||||
list.add(new ItemStack(item, 1, i));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getExplosionResistance(Entity entity, World world, int x, int y, int z, double explosionX, double explosionY, double explosionZ) {
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
meta = (meta & 7) % slabMaterials.length;
|
||||
Block block = slabMaterials[meta];
|
||||
return block.getExplosionResistance(entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getBlockHardness(World world, int x, int y, int z) {
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
meta = (meta & 7) % slabMaterials.length;
|
||||
Block block = slabMaterials[meta];
|
||||
return block.getBlockHardness(world, x, y, z); //relies on block not assuming that they are at that position
|
||||
}
|
||||
}
|
||||
@ -15,15 +15,15 @@ public class BlockPinkSlab extends BlockSlab {
|
||||
super(bool, mat);
|
||||
}
|
||||
|
||||
public Item getItemDropped(int i, Random rand, int j)
|
||||
{
|
||||
return Item.getItemFromBlock(ModBlocks.pink_slab);
|
||||
}
|
||||
|
||||
protected ItemStack createStackedBlock(int i)
|
||||
{
|
||||
return new ItemStack(Item.getItemFromBlock(ModBlocks.pink_slab), 2, i & 7);
|
||||
}
|
||||
@Override
|
||||
public Item getItemDropped(int i, Random rand, int j) {
|
||||
return Item.getItemFromBlock(ModBlocks.pink_slab);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ItemStack createStackedBlock(int i) {
|
||||
return new ItemStack(Item.getItemFromBlock(ModBlocks.pink_slab), 2, i & 7);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String func_150002_b(int p_150002_1_) {
|
||||
|
||||
@ -1,12 +0,0 @@
|
||||
package com.hbm.blocks.generic;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockStairs;
|
||||
|
||||
public class BlockPinkStairs extends BlockStairs {
|
||||
|
||||
public BlockPinkStairs(Block p_i45428_1_, int p_i45428_2_) {
|
||||
super(p_i45428_1_, p_i45428_2_);
|
||||
}
|
||||
|
||||
}
|
||||
@ -17,26 +17,26 @@ public class BlockSmolder extends Block {
|
||||
public BlockSmolder(Material mat) {
|
||||
super(mat);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void randomDisplayTick(World world, int x, int y, int z, Random rand) {
|
||||
super.randomDisplayTick(world, x, y, z, rand);
|
||||
|
||||
if(world.getBlock(x, y + 1, z).getMaterial() == Material.air) {
|
||||
|
||||
world.spawnParticle("lava", x + 0.25 + rand.nextDouble() * 0.5, y + 1.1, z + 0.25 + rand.nextDouble() * 0.5, 0.0, 0.0, 0.0);
|
||||
world.spawnParticle("flame", x + 0.25 + rand.nextDouble() * 0.5, y + 1.1, z + 0.25 + rand.nextDouble() * 0.5, 0.0, 0.0, 0.0);
|
||||
}
|
||||
}
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void randomDisplayTick(World world, int x, int y, int z, Random rand) {
|
||||
super.randomDisplayTick(world, x, y, z, rand);
|
||||
|
||||
if(world.getBlock(x, y + 1, z).getMaterial() == Material.air) {
|
||||
|
||||
world.spawnParticle("lava", x + 0.25 + rand.nextDouble() * 0.5, y + 1.1, z + 0.25 + rand.nextDouble() * 0.5, 0.0, 0.0, 0.0);
|
||||
world.spawnParticle("flame", x + 0.25 + rand.nextDouble() * 0.5, y + 1.1, z + 0.25 + rand.nextDouble() * 0.5, 0.0, 0.0, 0.0);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItemDropped(int i, Random rand, int j) {
|
||||
return ModItems.powder_fire;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Override
|
||||
public void onEntityWalking(World world, int x, int y, int z, Entity entity) {
|
||||
entity.setFire(3);
|
||||
}
|
||||
entity.setFire(3);
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@ package com.hbm.blocks.generic;
|
||||
import java.io.IOException;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.IBlockMulti;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.tool.ItemLock;
|
||||
@ -38,7 +39,7 @@ import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockStorageCrate extends BlockContainer {
|
||||
public class BlockStorageCrate extends BlockContainer implements IBlockMulti {
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
private IIcon iconTop;
|
||||
@ -264,4 +265,9 @@ public class BlockStorageCrate extends BlockContainer {
|
||||
public Item getItemDropped(int i, Random rand, int j) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSubCount() {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,27 +1,37 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.IPersistentInfoProvider;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.IPersistentNBT;
|
||||
import com.hbm.tileentity.machine.storage.TileEntityBarrel;
|
||||
import com.hbm.util.I18nUtil;
|
||||
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.ISidedInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.stats.StatList;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockFluidBarrel extends BlockContainer {
|
||||
public class BlockFluidBarrel extends BlockContainer implements IPersistentInfoProvider {
|
||||
|
||||
int capacity;
|
||||
|
||||
@ -125,4 +135,38 @@ public class BlockFluidBarrel extends BlockContainer {
|
||||
|
||||
super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) {
|
||||
super.onBlockPlacedBy(world, x, y, z, player, stack);
|
||||
IPersistentNBT.restoreData(world, x, y, z, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
|
||||
return IPersistentNBT.getDrops(world, x, y, z, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) {
|
||||
|
||||
if(!player.capabilities.isCreativeMode) {
|
||||
harvesters.set(player);
|
||||
this.dropBlockAsItem(world, x, y, z, meta, 0);
|
||||
harvesters.set(null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) {
|
||||
player.addStat(StatList.mineBlockStatArray[getIdFromBlock(this)], 1);
|
||||
player.addExhaustion(0.025F);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) {
|
||||
FluidTank tank = new FluidTank(Fluids.NONE, 0, 0);
|
||||
tank.readFromNBT(persistentTag, "tank");
|
||||
list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName()));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,9 +1,6 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.interfaces.IDummy;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.machine.TileEntityDummy;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineAssembler;
|
||||
@ -11,8 +8,6 @@ import com.hbm.tileentity.machine.TileEntityMachineAssembler;
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
|
||||
@ -1,59 +0,0 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.interfaces.IDummy;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.machine.TileEntityDummy;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineCyclotron;
|
||||
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class DummyBlockCyclotron extends DummyOldBase {
|
||||
|
||||
public DummyBlockCyclotron(Material p_i45386_1_, boolean port) {
|
||||
super(p_i45386_1_, port);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public Item getItem(World world, int x, int y, int z)
|
||||
{
|
||||
return Item.getItemFromBlock(ModBlocks.machine_cyclotron);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||
if(world.isRemote)
|
||||
{
|
||||
return true;
|
||||
} else if(!player.isSneaking())
|
||||
{
|
||||
TileEntity te = world.getTileEntity(x, y, z);
|
||||
if(te != null && te instanceof TileEntityDummy) {
|
||||
int a = ((TileEntityDummy)te).targetX;
|
||||
int b = ((TileEntityDummy)te).targetY;
|
||||
int c = ((TileEntityDummy)te).targetZ;
|
||||
|
||||
TileEntityMachineCyclotron entity = (TileEntityMachineCyclotron) world.getTileEntity(a, b, c);
|
||||
if(entity != null)
|
||||
{
|
||||
FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_machine_cyclotron, world, a, b, c);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,59 +0,0 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.interfaces.IDummy;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.machine.TileEntityDummy;
|
||||
import com.hbm.tileentity.machine.oil.TileEntityMachineGasFlare;
|
||||
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class DummyBlockFlare extends DummyOldBase {
|
||||
|
||||
public DummyBlockFlare(Material p_i45386_1_, boolean port) {
|
||||
super(p_i45386_1_, port);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public Item getItem(World world, int x, int y, int z)
|
||||
{
|
||||
return Item.getItemFromBlock(ModBlocks.machine_flare);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||
if(world.isRemote)
|
||||
{
|
||||
return true;
|
||||
} else if(!player.isSneaking())
|
||||
{
|
||||
TileEntity te = world.getTileEntity(x, y, z);
|
||||
if(te != null && te instanceof TileEntityDummy) {
|
||||
int a = ((TileEntityDummy)te).targetX;
|
||||
int b = ((TileEntityDummy)te).targetY;
|
||||
int c = ((TileEntityDummy)te).targetZ;
|
||||
|
||||
TileEntityMachineGasFlare entity = (TileEntityMachineGasFlare) world.getTileEntity(a, b, c);
|
||||
if(entity != null)
|
||||
{
|
||||
FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_machine_flare, world, a, b, c);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,105 +0,0 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.interfaces.IDummy;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.machine.TileEntityDummy;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineRadGen;
|
||||
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class DummyBlockRadGen extends BlockContainer implements IDummy {
|
||||
|
||||
public static boolean safeBreak = false;
|
||||
|
||||
public DummyBlockRadGen(Material p_i45386_1_) {
|
||||
super(p_i45386_1_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
|
||||
return new TileEntityDummy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void breakBlock(World world, int x, int y, int z, Block block, int i)
|
||||
{
|
||||
if(!safeBreak) {
|
||||
TileEntity te = world.getTileEntity(x, y, z);
|
||||
if(te != null && te instanceof TileEntityDummy) {
|
||||
int a = ((TileEntityDummy)te).targetX;
|
||||
int b = ((TileEntityDummy)te).targetY;
|
||||
int c = ((TileEntityDummy)te).targetZ;
|
||||
|
||||
//world.getBlock(a, b, c).breakBlock(world, a, b, c, block, i);
|
||||
if(!world.isRemote)
|
||||
world.func_147480_a(a, b, c, true);
|
||||
}
|
||||
}
|
||||
world.removeTileEntity(x, y, z);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRenderType() {
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public Item getItem(World world, int x, int y, int z)
|
||||
{
|
||||
return Item.getItemFromBlock(ModBlocks.machine_radgen);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||
if(world.isRemote)
|
||||
{
|
||||
return true;
|
||||
} else if(!player.isSneaking())
|
||||
{
|
||||
TileEntity te = world.getTileEntity(x, y, z);
|
||||
if(te != null && te instanceof TileEntityDummy) {
|
||||
int a = ((TileEntityDummy)te).targetX;
|
||||
int b = ((TileEntityDummy)te).targetY;
|
||||
int c = ((TileEntityDummy)te).targetZ;
|
||||
|
||||
TileEntityMachineRadGen entity = (TileEntityMachineRadGen) world.getTileEntity(a, b, c);
|
||||
if(entity != null)
|
||||
{
|
||||
FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_radgen, world, a, b, c);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,81 +0,0 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.tileentity.machine.TileEntityCoreAdvanced;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class FactoryCoreAdvanced extends BlockContainer {
|
||||
|
||||
private final Random field_149933_a = new Random();
|
||||
private static boolean keepInventory;
|
||||
|
||||
public FactoryCoreAdvanced(Material p_i45386_1_) {
|
||||
super(p_i45386_1_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
|
||||
return new TileEntityCoreAdvanced();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_)
|
||||
{
|
||||
if (!keepInventory)
|
||||
{
|
||||
TileEntityCoreAdvanced tileentityfurnace = (TileEntityCoreAdvanced)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_);
|
||||
|
||||
if (tileentityfurnace != null)
|
||||
{
|
||||
for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1)
|
||||
{
|
||||
ItemStack itemstack = tileentityfurnace.getStackInSlot(i1);
|
||||
|
||||
if (itemstack != null)
|
||||
{
|
||||
float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F;
|
||||
float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F;
|
||||
float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F;
|
||||
|
||||
while (itemstack.stackSize > 0)
|
||||
{
|
||||
int j1 = this.field_149933_a.nextInt(21) + 10;
|
||||
|
||||
if (j1 > itemstack.stackSize)
|
||||
{
|
||||
j1 = itemstack.stackSize;
|
||||
}
|
||||
|
||||
itemstack.stackSize -= j1;
|
||||
EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));
|
||||
|
||||
if (itemstack.hasTagCompound())
|
||||
{
|
||||
entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy());
|
||||
}
|
||||
|
||||
float f3 = 0.05F;
|
||||
entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3;
|
||||
entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F;
|
||||
entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3;
|
||||
p_149749_1_.spawnEntityInWorld(entityitem);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_);
|
||||
}
|
||||
}
|
||||
|
||||
super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_);
|
||||
}
|
||||
}
|
||||
@ -1,82 +0,0 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.tileentity.machine.TileEntityCoreTitanium;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class FactoryCoreTitanium extends BlockContainer {
|
||||
|
||||
private final Random field_149933_a = new Random();
|
||||
private static boolean keepInventory;
|
||||
|
||||
public FactoryCoreTitanium(Material p_i45386_1_) {
|
||||
super(p_i45386_1_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
|
||||
return new TileEntityCoreTitanium();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_)
|
||||
{
|
||||
if (!keepInventory)
|
||||
{
|
||||
TileEntityCoreTitanium tileentityfurnace = (TileEntityCoreTitanium)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_);
|
||||
|
||||
if (tileentityfurnace != null)
|
||||
{
|
||||
for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1)
|
||||
{
|
||||
ItemStack itemstack = tileentityfurnace.getStackInSlot(i1);
|
||||
|
||||
if (itemstack != null)
|
||||
{
|
||||
float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F;
|
||||
float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F;
|
||||
float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F;
|
||||
|
||||
while (itemstack.stackSize > 0)
|
||||
{
|
||||
int j1 = this.field_149933_a.nextInt(21) + 10;
|
||||
|
||||
if (j1 > itemstack.stackSize)
|
||||
{
|
||||
j1 = itemstack.stackSize;
|
||||
}
|
||||
|
||||
itemstack.stackSize -= j1;
|
||||
EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));
|
||||
|
||||
if (itemstack.hasTagCompound())
|
||||
{
|
||||
entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy());
|
||||
}
|
||||
|
||||
float f3 = 0.05F;
|
||||
entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3;
|
||||
entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F;
|
||||
entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3;
|
||||
p_149749_1_.spawnEntityInWorld(entityitem);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_);
|
||||
}
|
||||
}
|
||||
|
||||
super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_);
|
||||
}
|
||||
|
||||
}
|
||||
@ -5,8 +5,6 @@ import java.util.Random;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.machine.TileEntityCoreAdvanced;
|
||||
import com.hbm.tileentity.machine.TileEntityCoreTitanium;
|
||||
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
|
||||
91
src/main/java/com/hbm/blocks/machine/FoundryBasin.java
Normal file
91
src/main/java/com/hbm/blocks/machine/FoundryBasin.java
Normal file
@ -0,0 +1,91 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.inventory.material.Mats.MaterialStack;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.tileentity.machine.TileEntityFoundryBasin;
|
||||
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class FoundryBasin extends FoundryCastingBase {
|
||||
|
||||
@SideOnly(Side.CLIENT) public IIcon iconTop;
|
||||
@SideOnly(Side.CLIENT) public IIcon iconSide;
|
||||
@SideOnly(Side.CLIENT) public IIcon iconBottom;
|
||||
@SideOnly(Side.CLIENT) public IIcon iconInner;
|
||||
|
||||
public FoundryBasin() {
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerBlockIcons(IIconRegister iconRegister) {
|
||||
super.registerBlockIcons(iconRegister);
|
||||
this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":foundry_basin_top");
|
||||
this.iconSide = iconRegister.registerIcon(RefStrings.MODID + ":foundry_basin_side");
|
||||
this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":foundry_basin_bottom");
|
||||
this.iconInner = iconRegister.registerIcon(RefStrings.MODID + ":foundry_basin_inner");
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
return new TileEntityFoundryBasin();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addCollisionBoxesToList(World world, int x, int y, int z, AxisAlignedBB entityBounding, List list, Entity entity) {
|
||||
|
||||
AxisAlignedBB[] bbs = new AxisAlignedBB[] {
|
||||
AxisAlignedBB.getBoundingBox(x, y, z, x + 1D, y + 0.125D, z + 1D),
|
||||
AxisAlignedBB.getBoundingBox(x, y, z, x + 1D, y + 1D, z + 0.125D),
|
||||
AxisAlignedBB.getBoundingBox(x, y, z, x + 0.125D, y + 1D, z + 1D),
|
||||
AxisAlignedBB.getBoundingBox(x + 0.875D, y, z, x + 1D, y + 1D, z + 1D),
|
||||
AxisAlignedBB.getBoundingBox(x, y, z + 0.875, x + 1D, y + 1D, z + 1D),
|
||||
};
|
||||
|
||||
for(AxisAlignedBB bb : bbs) {
|
||||
if(entityBounding.intersectsWith(bb)) {
|
||||
list.add(bb);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) {
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.999F, 1.0F); //for some fucking reason setting maxY to something that isn't 1 magically fixes item collisions
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int x, int y, int z) {
|
||||
setBlockBoundsBasedOnState(world, x, y, z);
|
||||
return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ);
|
||||
}
|
||||
|
||||
@Override public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { return false; }
|
||||
@Override public MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { return stack; }
|
||||
|
||||
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
|
||||
|
||||
@Override
|
||||
public int getRenderType() {
|
||||
return renderID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSideSolid(IBlockAccess world, int x, int y, int z, ForgeDirection side) {
|
||||
return side != ForgeDirection.UP;
|
||||
}
|
||||
}
|
||||
210
src/main/java/com/hbm/blocks/machine/FoundryCastingBase.java
Normal file
210
src/main/java/com/hbm/blocks/machine/FoundryCastingBase.java
Normal file
@ -0,0 +1,210 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ILookOverlay;
|
||||
import com.hbm.inventory.material.Mats.MaterialStack;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemMold;
|
||||
import com.hbm.items.machine.ItemMold.Mold;
|
||||
import com.hbm.items.machine.ItemScraps;
|
||||
import com.hbm.tileentity.machine.TileEntityFoundryCastingBase;
|
||||
import com.hbm.util.I18nUtil;
|
||||
|
||||
import api.hbm.block.ICrucibleAcceptor;
|
||||
import api.hbm.block.IToolable;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.ItemTool;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public abstract class FoundryCastingBase extends BlockContainer implements ICrucibleAcceptor, IToolable, ILookOverlay {
|
||||
|
||||
protected FoundryCastingBase() {
|
||||
super(Material.rock);
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canAcceptPartialPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack) {
|
||||
return ((ICrucibleAcceptor) world.getTileEntity(x, y, z)).canAcceptPartialPour(world, x, y, z, dX, dY, dZ, side, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MaterialStack pour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack) {
|
||||
return ((ICrucibleAcceptor) world.getTileEntity(x, y, z)).pour(world, x, y, z, dX, dY, dZ, side, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) {
|
||||
return ((ICrucibleAcceptor) world.getTileEntity(x, y, z)).canAcceptPartialFlow(world, x, y, z, side, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) {
|
||||
return ((ICrucibleAcceptor) world.getTileEntity(x, y, z)).flow(world, x, y, z, side, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||
if(world.isRemote) {
|
||||
return true;
|
||||
}
|
||||
|
||||
TileEntityFoundryCastingBase cast = (TileEntityFoundryCastingBase) world.getTileEntity(x, y, z);
|
||||
|
||||
//remove casted item
|
||||
if(cast.slots[1] != null) {
|
||||
if(!player.inventory.addItemStackToInventory(cast.slots[1].copy())) {
|
||||
EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, cast.slots[1].copy());
|
||||
world.spawnEntityInWorld(item);
|
||||
} else {
|
||||
player.inventoryContainer.detectAndSendChanges();
|
||||
}
|
||||
|
||||
cast.slots[1] = null;
|
||||
cast.markDirty();
|
||||
world.markBlockForUpdate(x, y, z);
|
||||
return true;
|
||||
}
|
||||
|
||||
//insert mold
|
||||
if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.mold && cast.slots[0] == null) {
|
||||
Mold mold = ((ItemMold) player.getHeldItem().getItem()).getMold(player.getHeldItem());
|
||||
|
||||
if(mold.size == cast.getMoldSize()) {
|
||||
cast.slots[0] = player.getHeldItem().copy();
|
||||
cast.slots[0].stackSize = 1;
|
||||
player.getHeldItem().stackSize--;
|
||||
world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F);
|
||||
cast.markDirty();
|
||||
world.markBlockForUpdate(x, y, z);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemTool && ((ItemTool) player.getHeldItem().getItem()).getToolClasses(player.getHeldItem()).contains("shovel")) {
|
||||
if(cast.amount > 0) {
|
||||
ItemStack scrap = ItemScraps.create(new MaterialStack(cast.type, cast.amount));
|
||||
if(!player.inventory.addItemStackToInventory(scrap)) {
|
||||
EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, scrap);
|
||||
world.spawnEntityInWorld(item);
|
||||
} else {
|
||||
player.inventoryContainer.detectAndSendChanges();
|
||||
}
|
||||
cast.amount = 0;
|
||||
cast.type = null;
|
||||
cast.markDirty();
|
||||
world.markBlockForUpdate(x, y, z);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void breakBlock(World world, int x, int y, int z, Block b, int i) {
|
||||
|
||||
TileEntityFoundryCastingBase cast = (TileEntityFoundryCastingBase) world.getTileEntity(x, y, z);
|
||||
if(cast.amount > 0) {
|
||||
ItemStack scrap = ItemScraps.create(new MaterialStack(cast.type, cast.amount));
|
||||
EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, scrap);
|
||||
world.spawnEntityInWorld(item);
|
||||
cast.amount = 0; //just for safety
|
||||
}
|
||||
|
||||
for(ItemStack stack : cast.slots) {
|
||||
if(stack != null) {
|
||||
EntityItem drop = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, stack.copy());
|
||||
world.spawnEntityInWorld(drop);
|
||||
}
|
||||
}
|
||||
|
||||
super.breakBlock(world, x, y, z, b, i);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void randomDisplayTick(World world, int x, int y, int z, Random rand) {
|
||||
super.randomDisplayTick(world, x, y, z, rand);
|
||||
|
||||
TileEntityFoundryCastingBase cast = (TileEntityFoundryCastingBase) world.getTileEntity(x, y, z);
|
||||
|
||||
if(cast.amount > 0 && cast.amount >= cast.getCapacity()) {
|
||||
world.spawnParticle("smoke", x + 0.25 + rand.nextDouble() * 0.5, y + this.maxY, z + 0.25 + rand.nextDouble() * 0.5, 0.0, 0.0, 0.0);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) {
|
||||
|
||||
if(tool != ToolType.SCREWDRIVER)
|
||||
return false;
|
||||
|
||||
TileEntityFoundryCastingBase cast = (TileEntityFoundryCastingBase) world.getTileEntity(x, y, z);
|
||||
|
||||
if(cast.slots[0] == null)
|
||||
return false;
|
||||
|
||||
if(!player.inventory.addItemStackToInventory(cast.slots[0].copy())) {
|
||||
EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, cast.slots[0].copy());
|
||||
world.spawnEntityInWorld(item);
|
||||
} else {
|
||||
player.inventoryContainer.detectAndSendChanges();
|
||||
}
|
||||
|
||||
cast.markDirty();
|
||||
world.markBlockForUpdate(x, y, z);
|
||||
|
||||
cast.slots[0] = null;
|
||||
cast.markDirty();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void printHook(Pre event, World world, int x, int y, int z) {
|
||||
TileEntityFoundryCastingBase cast = (TileEntityFoundryCastingBase) world.getTileEntity(x, y, z);
|
||||
List<String> text = new ArrayList();
|
||||
|
||||
if(cast.slots[0] == null) {
|
||||
text.add(EnumChatFormatting.RED + I18nUtil.resolveKey("foundry.noCast"));
|
||||
} else if(cast.slots[0].getItem() == ModItems.mold){
|
||||
Mold mold = ((ItemMold) cast.slots[0].getItem()).getMold(cast.slots[0]);
|
||||
text.add(EnumChatFormatting.BLUE + mold.getTitle());
|
||||
}
|
||||
|
||||
if(cast.type != null && cast.amount > 0) {
|
||||
text.add(EnumChatFormatting.YELLOW + cast.type.names[0] + ": " + cast.amount + " / " + cast.getCapacity());
|
||||
}
|
||||
|
||||
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(this.getUnlocalizedName() + ".name"), 0xFF4000, 0x401000, text);
|
||||
}
|
||||
}
|
||||
195
src/main/java/com/hbm/blocks/machine/FoundryChannel.java
Normal file
195
src/main/java/com/hbm/blocks/machine/FoundryChannel.java
Normal file
@ -0,0 +1,195 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.inventory.material.Mats.MaterialStack;
|
||||
import com.hbm.items.machine.ItemScraps;
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.tileentity.machine.TileEntityFoundryChannel;
|
||||
|
||||
import api.hbm.block.ICrucibleAcceptor;
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.ItemTool;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class FoundryChannel extends BlockContainer implements ICrucibleAcceptor {
|
||||
|
||||
@SideOnly(Side.CLIENT) public IIcon iconTop;
|
||||
@SideOnly(Side.CLIENT) public IIcon iconSide;
|
||||
@SideOnly(Side.CLIENT) public IIcon iconBottom;
|
||||
@SideOnly(Side.CLIENT) public IIcon iconInner;
|
||||
@SideOnly(Side.CLIENT) public IIcon iconLava;
|
||||
|
||||
public FoundryChannel() {
|
||||
super(Material.rock);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerBlockIcons(IIconRegister iconRegister) {
|
||||
super.registerBlockIcons(iconRegister);
|
||||
this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":foundry_channel_top");
|
||||
this.iconSide = iconRegister.registerIcon(RefStrings.MODID + ":foundry_channel_side");
|
||||
this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":foundry_channel_bottom");
|
||||
this.iconInner = iconRegister.registerIcon(RefStrings.MODID + ":foundry_channel_inner");
|
||||
this.iconLava = iconRegister.registerIcon(RefStrings.MODID + ":lava_gray");
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
return new TileEntityFoundryChannel();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addCollisionBoxesToList(World world, int x, int y, int z, AxisAlignedBB entityBounding, List list, Entity entity) {
|
||||
|
||||
List<AxisAlignedBB> bbs = new ArrayList();
|
||||
|
||||
bbs.add(AxisAlignedBB.getBoundingBox(x + 0.3125D, y, z + 0.3125D, x + 0.6875D, y + 0.5D, z + 0.6875D));
|
||||
|
||||
if(canConnectTo(world, x, y, z, Library.POS_X)) bbs.add(AxisAlignedBB.getBoundingBox(x + 0.6875D, y, z + 0.3125D, x + 1D, y + 0.5D, z + 0.6875D));
|
||||
if(canConnectTo(world, x, y, z, Library.NEG_X)) bbs.add(AxisAlignedBB.getBoundingBox(x, y, z + 0.3125D, x + 0.3125D, y + 0.5D, z + 0.6875D));
|
||||
if(canConnectTo(world, x, y, z, Library.POS_Z)) bbs.add(AxisAlignedBB.getBoundingBox(x + 0.3125D, y, z + 0.6875D, x + 0.6875D, y + 0.5D, z + 1D));
|
||||
if(canConnectTo(world, x, y, z, Library.NEG_Z)) bbs.add(AxisAlignedBB.getBoundingBox(x + 0.3125D, y, z, x + 0.6875D, y + 0.5D, z + 0.3125D));
|
||||
|
||||
for(AxisAlignedBB bb : bbs) {
|
||||
if(entityBounding.intersectsWith(bb)) {
|
||||
list.add(bb);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int x, int y, int z) {
|
||||
setBlockBoundsBasedOnState(world, x, y, z);
|
||||
return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) {
|
||||
this.setBlockBounds(
|
||||
canConnectTo(world, x, y, z, Library.NEG_X) ? 0F : 0.3125F,
|
||||
0F,
|
||||
canConnectTo(world, x, y, z, Library.NEG_Z) ? 0F : 0.3125F,
|
||||
canConnectTo(world, x, y, z, Library.POS_X) ? 1F : 0.6875F,
|
||||
0.5F,
|
||||
canConnectTo(world, x, y, z, Library.POS_Z) ? 1F : 0.6875F);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canAcceptPartialPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack) {
|
||||
return ((ICrucibleAcceptor) world.getTileEntity(x, y, z)).canAcceptPartialPour(world, x, y, z, dX, dY, dZ, side, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MaterialStack pour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack) {
|
||||
return ((ICrucibleAcceptor) world.getTileEntity(x, y, z)).pour(world, x, y, z, dX, dY, dZ, side, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) {
|
||||
return ((ICrucibleAcceptor) world.getTileEntity(x, y, z)).canAcceptPartialFlow(world, x, y, z, side, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) {
|
||||
return ((ICrucibleAcceptor) world.getTileEntity(x, y, z)).flow(world, x, y, z, side, stack);
|
||||
}
|
||||
|
||||
public boolean canConnectTo(IBlockAccess world, int x, int y, int z, ForgeDirection dir) {
|
||||
|
||||
if(dir == ForgeDirection.UP || dir == ForgeDirection.DOWN || dir == ForgeDirection.UNKNOWN)
|
||||
return false;
|
||||
|
||||
Block b = world.getBlock(x + dir.offsetX, y, z + dir.offsetZ);
|
||||
int meta = world.getBlockMetadata(x + dir.offsetX, y, z + dir.offsetZ);
|
||||
|
||||
if(b == ModBlocks.foundry_outlet && meta == dir.ordinal())
|
||||
return true;
|
||||
|
||||
return b == ModBlocks.foundry_channel || b == ModBlocks.foundry_mold;
|
||||
}
|
||||
|
||||
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
|
||||
|
||||
@Override
|
||||
public int getRenderType() {
|
||||
return renderID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||
if(world.isRemote) {
|
||||
return true;
|
||||
}
|
||||
|
||||
TileEntityFoundryChannel cast = (TileEntityFoundryChannel) world.getTileEntity(x, y, z);
|
||||
|
||||
if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemTool && ((ItemTool) player.getHeldItem().getItem()).getToolClasses(player.getHeldItem()).contains("shovel")) {
|
||||
if(cast.amount > 0) {
|
||||
ItemStack scrap = ItemScraps.create(new MaterialStack(cast.type, cast.amount));
|
||||
if(!player.inventory.addItemStackToInventory(scrap)) {
|
||||
EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, scrap);
|
||||
world.spawnEntityInWorld(item);
|
||||
} else {
|
||||
player.inventoryContainer.detectAndSendChanges();
|
||||
}
|
||||
cast.amount = 0;
|
||||
cast.type = null;
|
||||
cast.markDirty();
|
||||
world.markBlockForUpdate(x, y, z);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void breakBlock(World world, int x, int y, int z, Block b, int i) {
|
||||
|
||||
TileEntityFoundryChannel channel = (TileEntityFoundryChannel) world.getTileEntity(x, y, z);
|
||||
if(channel.amount > 0) {
|
||||
ItemStack scrap = ItemScraps.create(new MaterialStack(channel.type, channel.amount));
|
||||
EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, scrap);
|
||||
world.spawnEntityInWorld(item);
|
||||
channel.amount = 0;
|
||||
}
|
||||
|
||||
super.breakBlock(world, x, y, z, b, i);
|
||||
}
|
||||
}
|
||||
86
src/main/java/com/hbm/blocks/machine/FoundryMold.java
Normal file
86
src/main/java/com/hbm/blocks/machine/FoundryMold.java
Normal file
@ -0,0 +1,86 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.tileentity.machine.TileEntityFoundryMold;
|
||||
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class FoundryMold extends FoundryCastingBase {
|
||||
|
||||
@SideOnly(Side.CLIENT) public IIcon iconTop;
|
||||
@SideOnly(Side.CLIENT) public IIcon iconSide;
|
||||
@SideOnly(Side.CLIENT) public IIcon iconBottom;
|
||||
@SideOnly(Side.CLIENT) public IIcon iconInner;
|
||||
|
||||
public FoundryMold() {
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerBlockIcons(IIconRegister iconRegister) {
|
||||
super.registerBlockIcons(iconRegister);
|
||||
this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":foundry_mold_top");
|
||||
this.iconSide = iconRegister.registerIcon(RefStrings.MODID + ":foundry_mold_side");
|
||||
this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":foundry_mold_bottom");
|
||||
this.iconInner = iconRegister.registerIcon(RefStrings.MODID + ":foundry_mold_inner");
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
return new TileEntityFoundryMold();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addCollisionBoxesToList(World world, int x, int y, int z, AxisAlignedBB entityBounding, List list, Entity entity) {
|
||||
|
||||
AxisAlignedBB[] bbs = new AxisAlignedBB[] {
|
||||
AxisAlignedBB.getBoundingBox(x, y, z, x + 1D, y + 0.125D, z + 1D),
|
||||
AxisAlignedBB.getBoundingBox(x, y, z, x + 1D, y + 0.5D, z + 0.125D),
|
||||
AxisAlignedBB.getBoundingBox(x, y, z, x + 0.125D, y + 0.5D, z + 1D),
|
||||
AxisAlignedBB.getBoundingBox(x + 0.875D, y, z, x + 1D, y + 0.5D, z + 1D),
|
||||
AxisAlignedBB.getBoundingBox(x, y, z + 0.875, x + 1D, y + 0.5D, z + 1D),
|
||||
};
|
||||
|
||||
for(AxisAlignedBB bb : bbs) {
|
||||
if(entityBounding.intersectsWith(bb)) {
|
||||
list.add(bb);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) {
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int x, int y, int z) {
|
||||
return AxisAlignedBB.getBoundingBox(x, y, z, x + 1D, y + 0.5D, z + 1D);
|
||||
}
|
||||
|
||||
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
|
||||
|
||||
@Override
|
||||
public int getRenderType() {
|
||||
return renderID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSideSolid(IBlockAccess world, int x, int y, int z, ForgeDirection side) {
|
||||
return side == ForgeDirection.DOWN;
|
||||
}
|
||||
}
|
||||
183
src/main/java/com/hbm/blocks/machine/FoundryOutlet.java
Normal file
183
src/main/java/com/hbm/blocks/machine/FoundryOutlet.java
Normal file
@ -0,0 +1,183 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.ILookOverlay;
|
||||
import com.hbm.inventory.material.Mats.MaterialStack;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemScraps;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.tileentity.machine.TileEntityFoundryOutlet;
|
||||
import com.hbm.util.I18nUtil;
|
||||
|
||||
import api.hbm.block.ICrucibleAcceptor;
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class FoundryOutlet extends BlockContainer implements ICrucibleAcceptor, ILookOverlay {
|
||||
|
||||
@SideOnly(Side.CLIENT) public IIcon iconTop;
|
||||
@SideOnly(Side.CLIENT) public IIcon iconSide;
|
||||
@SideOnly(Side.CLIENT) public IIcon iconBottom;
|
||||
@SideOnly(Side.CLIENT) public IIcon iconInner;
|
||||
@SideOnly(Side.CLIENT) public IIcon iconFront;
|
||||
@SideOnly(Side.CLIENT) public IIcon iconLock;
|
||||
@SideOnly(Side.CLIENT) public IIcon iconFilter;
|
||||
|
||||
public FoundryOutlet() {
|
||||
super(Material.rock);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerBlockIcons(IIconRegister iconRegister) {
|
||||
super.registerBlockIcons(iconRegister);
|
||||
this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":foundry_outlet_top");
|
||||
this.iconSide = iconRegister.registerIcon(RefStrings.MODID + ":foundry_outlet_side");
|
||||
this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":foundry_outlet_bottom");
|
||||
this.iconInner = iconRegister.registerIcon(RefStrings.MODID + ":foundry_outlet_inner");
|
||||
this.iconFront = iconRegister.registerIcon(RefStrings.MODID + ":foundry_outlet_front");
|
||||
this.iconLock = iconRegister.registerIcon(RefStrings.MODID + ":foundry_outlet_lock");
|
||||
this.iconFilter = iconRegister.registerIcon(RefStrings.MODID + ":foundry_outlet_filter");
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) {
|
||||
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
|
||||
|
||||
if(i == 0) world.setBlockMetadataWithNotify(x, y, z, 2, 2);
|
||||
if(i == 1) world.setBlockMetadataWithNotify(x, y, z, 5, 2);
|
||||
if(i == 2) world.setBlockMetadataWithNotify(x, y, z, 3, 2);
|
||||
if(i == 3) world.setBlockMetadataWithNotify(x, y, z, 4, 2);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
return new TileEntityFoundryOutlet();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addCollisionBoxesToList(World world, int x, int y, int z, AxisAlignedBB entityBounding, List list, Entity entity) {
|
||||
|
||||
AxisAlignedBB aabb = null;
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
|
||||
if(meta == 4) aabb = AxisAlignedBB.getBoundingBox(x + 0.625D, y, z + 0.3125D, x + 1D, y + 0.5D, z + 0.6875D);
|
||||
if(meta == 5) aabb = AxisAlignedBB.getBoundingBox(x + 0D, y, z + 0.3125D, x + 0.375D, y + 0.5D, z + 0.6875D);
|
||||
if(meta == 2) aabb = AxisAlignedBB.getBoundingBox(x + 0.3125D, y, z + 0.625D, x + 0.6875D, y + 0.5D, z + 1D);
|
||||
if(meta == 3) aabb = AxisAlignedBB.getBoundingBox(x + 0.3125D, y, z + 0D, x + 0.6875D, y + 0.5D, z + 0.375D);
|
||||
|
||||
if(aabb != null && entityBounding.intersectsWith(aabb)) {
|
||||
list.add(aabb);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int x, int y, int z) {
|
||||
setBlockBoundsBasedOnState(world, x, y, z);
|
||||
return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) {
|
||||
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
if(meta == 4) this.setBlockBounds(0.625F, 0F, 0.3125F, 1F, 0.5F, 0.6875F);
|
||||
if(meta == 5) this.setBlockBounds(0F, 0F, 0.3125F, 0.375F, 0.5F, 0.6875F);
|
||||
if(meta == 2) this.setBlockBounds(0.3125F, 0F, 0.625F, 0.6875F, 0.5F, 1F);
|
||||
if(meta == 3) this.setBlockBounds(0.3125F, 0F, 0F, 0.6875F, 0.5F, 0.375F);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||
if(world.isRemote) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if(!player.isSneaking()) {
|
||||
TileEntityFoundryOutlet tile = (TileEntityFoundryOutlet) world.getTileEntity(x, y, z);
|
||||
|
||||
if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.scraps) {
|
||||
MaterialStack mat = ItemScraps.getMats(player.getHeldItem());
|
||||
if(mat != null) {
|
||||
tile.filter = mat.material;
|
||||
}
|
||||
} else {
|
||||
tile.invertRedstone = !tile.invertRedstone;
|
||||
}
|
||||
tile.markDirty();
|
||||
world.markBlockForUpdate(x, y, z);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override public boolean canAcceptPartialPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack) { return false; }
|
||||
@Override public MaterialStack pour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack) { return stack; }
|
||||
|
||||
@Override
|
||||
public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) {
|
||||
return ((TileEntityFoundryOutlet) world.getTileEntity(x, y, z)).canAcceptPartialFlow(world, x, y, z, side, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) {
|
||||
return ((TileEntityFoundryOutlet) world.getTileEntity(x, y, z)).flow(world, x, y, z, side, stack);
|
||||
}
|
||||
|
||||
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
|
||||
|
||||
@Override
|
||||
public int getRenderType() {
|
||||
return renderID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void printHook(Pre event, World world, int x, int y, int z) {
|
||||
TileEntityFoundryOutlet outlet = (TileEntityFoundryOutlet) world.getTileEntity(x, y, z);
|
||||
List<String> text = new ArrayList();
|
||||
|
||||
if(outlet.filter != null) {
|
||||
text.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("foundry.filter", outlet.filter.names[0]));
|
||||
}
|
||||
if(outlet.invertRedstone) {
|
||||
text.add(EnumChatFormatting.DARK_RED + I18nUtil.resolveKey("foundry.inverted"));
|
||||
}
|
||||
|
||||
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(this.getUnlocalizedName() + ".name"), 0xFF4000, 0x401000, text);
|
||||
}
|
||||
}
|
||||
137
src/main/java/com/hbm/blocks/machine/FoundryTank.java
Normal file
137
src/main/java/com/hbm/blocks/machine/FoundryTank.java
Normal file
@ -0,0 +1,137 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import com.hbm.inventory.material.Mats.MaterialStack;
|
||||
import com.hbm.items.machine.ItemScraps;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.tileentity.machine.TileEntityFoundryTank;
|
||||
|
||||
import api.hbm.block.ICrucibleAcceptor;
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.ItemTool;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class FoundryTank extends BlockContainer implements ICrucibleAcceptor {
|
||||
|
||||
@SideOnly(Side.CLIENT) public IIcon iconTop;
|
||||
@SideOnly(Side.CLIENT) public IIcon iconSide;
|
||||
@SideOnly(Side.CLIENT) public IIcon iconSideUpper;
|
||||
@SideOnly(Side.CLIENT) public IIcon iconBottom;
|
||||
@SideOnly(Side.CLIENT) public IIcon iconInner;
|
||||
@SideOnly(Side.CLIENT) public IIcon iconLava;
|
||||
|
||||
public FoundryTank() {
|
||||
super(Material.rock);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerBlockIcons(IIconRegister iconRegister) {
|
||||
super.registerBlockIcons(iconRegister);
|
||||
this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":foundry_tank_top");
|
||||
this.iconSide = iconRegister.registerIcon(RefStrings.MODID + ":foundry_tank_side");
|
||||
this.iconSideUpper = iconRegister.registerIcon(RefStrings.MODID + ":foundry_tank_upper");
|
||||
this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":foundry_tank_bottom");
|
||||
this.iconInner = iconRegister.registerIcon(RefStrings.MODID + ":foundry_tank_inner");
|
||||
this.iconLava = iconRegister.registerIcon(RefStrings.MODID + ":lava_gray");
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
return new TileEntityFoundryTank();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canAcceptPartialPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack) {
|
||||
return ((ICrucibleAcceptor) world.getTileEntity(x, y, z)).canAcceptPartialPour(world, x, y, z, dX, dY, dZ, side, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MaterialStack pour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack) {
|
||||
return ((ICrucibleAcceptor) world.getTileEntity(x, y, z)).pour(world, x, y, z, dX, dY, dZ, side, stack);
|
||||
}
|
||||
|
||||
@Override public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { return false; }
|
||||
@Override public MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { return stack; }
|
||||
|
||||
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
|
||||
|
||||
@Override
|
||||
public int getRenderType() {
|
||||
return renderID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||
if(world.isRemote) {
|
||||
return true;
|
||||
}
|
||||
|
||||
TileEntityFoundryTank cast = (TileEntityFoundryTank) world.getTileEntity(x, y, z);
|
||||
|
||||
if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemTool && ((ItemTool) player.getHeldItem().getItem()).getToolClasses(player.getHeldItem()).contains("shovel")) {
|
||||
if(cast.amount > 0) {
|
||||
ItemStack scrap = ItemScraps.create(new MaterialStack(cast.type, cast.amount));
|
||||
if(!player.inventory.addItemStackToInventory(scrap)) {
|
||||
EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, scrap);
|
||||
world.spawnEntityInWorld(item);
|
||||
} else {
|
||||
player.inventoryContainer.detectAndSendChanges();
|
||||
}
|
||||
cast.amount = 0;
|
||||
cast.type = null;
|
||||
cast.markDirty();
|
||||
world.markBlockForUpdate(x, y, z);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void breakBlock(World world, int x, int y, int z, Block b, int i) {
|
||||
|
||||
TileEntityFoundryTank tank = (TileEntityFoundryTank) world.getTileEntity(x, y, z);
|
||||
if(tank.amount > 0) {
|
||||
ItemStack scrap = ItemScraps.create(new MaterialStack(tank.type, tank.amount));
|
||||
EntityItem item = new EntityItem(world, x + 0.5, y + this.maxY, z + 0.5, scrap);
|
||||
world.spawnEntityInWorld(item);
|
||||
tank.amount = 0;
|
||||
}
|
||||
|
||||
super.breakBlock(world, x, y, z, b, i);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSideSolid(IBlockAccess world, int x, int y, int z, ForgeDirection side) {
|
||||
return side != ForgeDirection.UP;
|
||||
}
|
||||
}
|
||||
107
src/main/java/com/hbm/blocks/machine/HeaterElectric.java
Normal file
107
src/main/java/com/hbm/blocks/machine/HeaterElectric.java
Normal file
@ -0,0 +1,107 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import api.hbm.block.IToolable;
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ILookOverlay;
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
import com.hbm.tileentity.machine.TileEntityHeaterElectric;
|
||||
import com.hbm.util.I18nUtil;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class HeaterElectric extends BlockDummyable implements ILookOverlay, ITooltipProvider, IToolable {
|
||||
|
||||
public HeaterElectric() {
|
||||
super(Material.iron);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
|
||||
if(meta >= 12)
|
||||
return new TileEntityHeaterElectric();
|
||||
|
||||
if(hasExtra(meta))
|
||||
return new TileEntityProxyCombo().power();
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getDimensions() {
|
||||
return new int[] {0, 0, 1, 2, 1, 1};
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOffset() {
|
||||
return 2;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
|
||||
super.fillSpace(world, x, y, z, dir, o);
|
||||
this.makeExtra(world, x, y, z);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
||||
this.addStandardInfo(stack, player, list, ext);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void printHook(Pre event, World world, int x, int y, int z) {
|
||||
|
||||
int[] pos = this.findCore(world, x, y, z);
|
||||
|
||||
if(pos == null)
|
||||
return;
|
||||
|
||||
TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||
|
||||
if(!(te instanceof TileEntityHeaterElectric))
|
||||
return;
|
||||
|
||||
TileEntityHeaterElectric heater = (TileEntityHeaterElectric) te;
|
||||
|
||||
List<String> text = new ArrayList();
|
||||
text.add(String.format("%,d", heater.heatEnergy) + " TU");
|
||||
text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + heater.getConsumption() + " HE/t");
|
||||
text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + heater.getHeatGen() + " TU/t");
|
||||
|
||||
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) {
|
||||
|
||||
if(tool != ToolType.SCREWDRIVER)
|
||||
return false;
|
||||
|
||||
if(world.isRemote) return true;
|
||||
|
||||
int[] pos = this.findCore(world, x, y, z);
|
||||
|
||||
if(pos == null) return false;
|
||||
|
||||
TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||
|
||||
if(!(te instanceof TileEntityHeaterElectric)) return false;
|
||||
|
||||
TileEntityHeaterElectric tile = (TileEntityHeaterElectric) te;
|
||||
tile.toggleSetting();
|
||||
tile.markDirty();
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -5,10 +5,11 @@ import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ILookOverlay;
|
||||
import com.hbm.blocks.IPersistentInfoProvider;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.machine.TileEntityDiFurnace;
|
||||
import com.hbm.tileentity.IPersistentNBT;
|
||||
import com.hbm.tileentity.machine.storage.TileEntityMachineBattery;
|
||||
import com.hbm.util.BobMathUtil;
|
||||
import com.hbm.util.I18nUtil;
|
||||
@ -26,13 +27,15 @@ import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.stats.StatList;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
|
||||
|
||||
public class MachineBattery extends BlockContainer implements ILookOverlay {
|
||||
public class MachineBattery extends BlockContainer implements ILookOverlay, IPersistentInfoProvider {
|
||||
|
||||
private final Random field_149933_a = new Random();
|
||||
private static boolean keepInventory;
|
||||
@ -143,8 +146,10 @@ public class MachineBattery extends BlockContainer implements ILookOverlay {
|
||||
}
|
||||
|
||||
if(itemStack.hasDisplayName()) {
|
||||
((TileEntityDiFurnace) world.getTileEntity(x, y, z)).setCustomName(itemStack.getDisplayName());
|
||||
((TileEntityMachineBattery) world.getTileEntity(x, y, z)).setCustomName(itemStack.getDisplayName());
|
||||
}
|
||||
|
||||
IPersistentNBT.restoreData(world, x, y, z, itemStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -249,4 +254,30 @@ public class MachineBattery extends BlockContainer implements ILookOverlay {
|
||||
TileEntityMachineBattery battery = (TileEntityMachineBattery) te;
|
||||
return battery.getComparatorPower();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
|
||||
return IPersistentNBT.getDrops(world, x, y, z, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) {
|
||||
|
||||
if(!player.capabilities.isCreativeMode) {
|
||||
harvesters.set(player);
|
||||
this.dropBlockAsItem(world, x, y, z, meta, 0);
|
||||
harvesters.set(null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) {
|
||||
player.addStat(StatList.mineBlockStatArray[getIdFromBlock(this)], 1);
|
||||
player.addExhaustion(0.025F);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) {
|
||||
list.add(EnumChatFormatting.YELLOW + "" + BobMathUtil.getShortNumber(persistentTag.getLong("power")) + "/" + BobMathUtil.getShortNumber(this.maxPower) + "HE");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,20 +1,31 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.IPersistentInfoProvider;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.handler.MultiblockHandlerXR;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.IPersistentNBT;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
import com.hbm.tileentity.machine.storage.TileEntityMachineBAT9000;
|
||||
import com.hbm.util.I18nUtil;
|
||||
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class MachineBigAssTank9000 extends BlockDummyable {
|
||||
public class MachineBigAssTank9000 extends BlockDummyable implements IPersistentInfoProvider {
|
||||
|
||||
public MachineBigAssTank9000(Material mat) {
|
||||
super(mat);
|
||||
@ -82,4 +93,16 @@ public class MachineBigAssTank9000 extends BlockDummyable {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
|
||||
return IPersistentNBT.getDrops(world, x, y, z, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) {
|
||||
FluidTank tank = new FluidTank(Fluids.NONE, 0, 0);
|
||||
tank.readFromNBT(persistentTag, "tank");
|
||||
list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName()));
|
||||
}
|
||||
}
|
||||
|
||||
@ -30,7 +30,6 @@ import net.minecraft.world.World;
|
||||
public class MachineBoiler extends BlockContainer {
|
||||
|
||||
private final Random field_149933_a = new Random();
|
||||
private Random rand;
|
||||
private final boolean isActive;
|
||||
private static boolean keepInventory;
|
||||
|
||||
@ -41,7 +40,6 @@ public class MachineBoiler extends BlockContainer {
|
||||
|
||||
public MachineBoiler(boolean blockState) {
|
||||
super(Material.iron);
|
||||
rand = new Random();
|
||||
isActive = blockState;
|
||||
}
|
||||
|
||||
|
||||
@ -1,32 +1,16 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.handler.MultiblockHandler;
|
||||
import com.hbm.interfaces.IMultiblock;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineCentrifuge;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineGasCent;
|
||||
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
@ -66,7 +50,7 @@ public class MachineCentrifuge extends BlockDummyable implements IMultiblock {
|
||||
|
||||
@Override
|
||||
public int[] getDimensions() {
|
||||
return new int[] {2, 0, 0, 0, 0, 0,};
|
||||
return new int[] {3, 0, 0, 0, 0, 0,};
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -1,6 +1,9 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.handler.MultiblockHandlerXR;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
@ -9,11 +12,12 @@ import com.hbm.tileentity.machine.TileEntityChungus;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class MachineChungus extends BlockDummyable {
|
||||
public class MachineChungus extends BlockDummyable implements ITooltipProvider {
|
||||
|
||||
public MachineChungus(Material mat) {
|
||||
super(mat);
|
||||
@ -126,4 +130,9 @@ public class MachineChungus extends BlockDummyable {
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
||||
this.addStandardInfo(stack, player, list, ext);
|
||||
}
|
||||
}
|
||||
|
||||
116
src/main/java/com/hbm/blocks/machine/MachineCrucible.java
Normal file
116
src/main/java/com/hbm/blocks/machine/MachineCrucible.java
Normal file
@ -0,0 +1,116 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.inventory.material.Mats.MaterialStack;
|
||||
import com.hbm.items.machine.ItemScraps;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.machine.TileEntityCrucible;
|
||||
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.ItemTool;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class MachineCrucible extends BlockDummyable {
|
||||
|
||||
public MachineCrucible() {
|
||||
super(Material.rock);
|
||||
|
||||
this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5D, 0D, -1.5D, 1.5D, 0.5D, 1.5D));
|
||||
this.bounding.add(AxisAlignedBB.getBoundingBox(-1.25D, 0.5D, -1.25D, 1.25D, 1.5D, -1D));
|
||||
this.bounding.add(AxisAlignedBB.getBoundingBox(-1.25D, 0.5D, -1.25D, -1D, 1.5D, 1.25D));
|
||||
this.bounding.add(AxisAlignedBB.getBoundingBox(-1.25D, 0.5D, 1D, 1.25D, 1.5D, 1.25D));
|
||||
this.bounding.add(AxisAlignedBB.getBoundingBox(1D, 0.5D, -1.25D, 1.25D, 1.5D, 1.25D));
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
|
||||
if(meta >= 12)
|
||||
return new TileEntityCrucible();
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||
|
||||
if(world.isRemote) {
|
||||
return true;
|
||||
} else if(!player.isSneaking()) {
|
||||
int[] pos = this.findCore(world, x, y, z);
|
||||
|
||||
if(pos == null)
|
||||
return false;
|
||||
if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemTool && ((ItemTool) player.getHeldItem().getItem()).getToolClasses(player.getHeldItem()).contains("shovel")) {
|
||||
TileEntityCrucible crucible = (TileEntityCrucible) world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||
List<MaterialStack> stacks = new ArrayList();
|
||||
stacks.addAll(crucible.recipeStack);
|
||||
stacks.addAll(crucible.wasteStack);
|
||||
|
||||
for(MaterialStack stack : stacks) {
|
||||
ItemStack scrap = ItemScraps.create(new MaterialStack(stack.material, stack.amount));
|
||||
if(!player.inventory.addItemStackToInventory(scrap)) {
|
||||
EntityItem item = new EntityItem(world, x + hitX, y + hitY, z + hitZ, scrap);
|
||||
world.spawnEntityInWorld(item);
|
||||
}
|
||||
}
|
||||
|
||||
player.inventoryContainer.detectAndSendChanges();
|
||||
crucible.recipeStack.clear();
|
||||
crucible.wasteStack.clear();
|
||||
crucible.markDirty();
|
||||
|
||||
} else {
|
||||
FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]);
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getDimensions() {
|
||||
return new int[] {1, 0, 1, 1, 1, 1};
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOffset() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void breakBlock(World world, int x, int y, int z, Block b, int i) {
|
||||
|
||||
TileEntity te = world.getTileEntity(x, y, z);
|
||||
|
||||
if(te instanceof TileEntityCrucible) {
|
||||
TileEntityCrucible crucible = (TileEntityCrucible) te;
|
||||
|
||||
List<MaterialStack> stacks = new ArrayList();
|
||||
stacks.addAll(crucible.recipeStack);
|
||||
stacks.addAll(crucible.wasteStack);
|
||||
|
||||
for(MaterialStack stack : stacks) {
|
||||
ItemStack scrap = ItemScraps.create(new MaterialStack(stack.material, stack.amount));
|
||||
EntityItem item = new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, scrap);
|
||||
world.spawnEntityInWorld(item);
|
||||
}
|
||||
|
||||
crucible.recipeStack.clear();
|
||||
crucible.wasteStack.clear();
|
||||
}
|
||||
|
||||
super.breakBlock(world, x, y, z, b, i);
|
||||
}
|
||||
}
|
||||
@ -2,7 +2,6 @@ package com.hbm.blocks.machine;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineCyclotron;
|
||||
@ -10,7 +9,6 @@ import com.hbm.tileentity.machine.TileEntityMachineCyclotron;
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
@ -28,7 +28,6 @@ import net.minecraft.world.World;
|
||||
public class MachineDiFurnace extends BlockContainer {
|
||||
|
||||
private final Random field_149933_a = new Random();
|
||||
private Random rand;
|
||||
private final boolean isActive;
|
||||
private static boolean keepInventory;
|
||||
|
||||
@ -39,7 +38,6 @@ public class MachineDiFurnace extends BlockContainer {
|
||||
|
||||
public MachineDiFurnace(boolean blockState) {
|
||||
super(Material.iron);
|
||||
rand = new Random();
|
||||
isActive = blockState;
|
||||
}
|
||||
|
||||
|
||||
@ -5,7 +5,7 @@ import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade;
|
||||
import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineDiesel;
|
||||
|
||||
@ -5,6 +5,7 @@ import java.util.List;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ILookOverlay;
|
||||
import com.hbm.blocks.IPersistentInfoProvider;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.machine.storage.TileEntityMachineBattery;
|
||||
@ -15,11 +16,14 @@ import com.hbm.util.I18nUtil;
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
|
||||
|
||||
public class MachineFENSU extends BlockDummyable implements ILookOverlay {
|
||||
public class MachineFENSU extends BlockDummyable implements ILookOverlay, IPersistentInfoProvider {
|
||||
|
||||
public MachineFENSU(Material mat) {
|
||||
super(mat);
|
||||
@ -91,4 +95,9 @@ public class MachineFENSU extends BlockDummyable implements ILookOverlay {
|
||||
|
||||
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) {
|
||||
list.add(EnumChatFormatting.YELLOW + "" + BobMathUtil.getShortNumber(persistentTag.getLong("power")) + "/" + BobMathUtil.getShortNumber(Long.MAX_VALUE) + "HE");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,13 +1,20 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.IPersistentInfoProvider;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.handler.MultiblockHandler;
|
||||
import com.hbm.interfaces.IMultiblock;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.IPersistentNBT;
|
||||
import com.hbm.tileentity.machine.TileEntityDummy;
|
||||
import com.hbm.tileentity.machine.storage.TileEntityMachineFluidTank;
|
||||
import com.hbm.util.I18nUtil;
|
||||
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import net.minecraft.block.Block;
|
||||
@ -20,11 +27,13 @@ import net.minecraft.inventory.ISidedInventory;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.stats.StatList;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class MachineFluidTank extends BlockContainer implements IMultiblock {
|
||||
public class MachineFluidTank extends BlockContainer implements IMultiblock, IPersistentInfoProvider {
|
||||
|
||||
public MachineFluidTank(Material p_i45386_1_) {
|
||||
super(p_i45386_1_);
|
||||
@ -76,6 +85,9 @@ public class MachineFluidTank extends BlockContainer implements IMultiblock {
|
||||
@Override
|
||||
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) {
|
||||
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
|
||||
|
||||
ItemStack drop = itemStack.copy();
|
||||
drop.stackSize = 1;
|
||||
|
||||
if (i == 0) {
|
||||
world.setBlockMetadataWithNotify(x, y, z, 5, 2);
|
||||
@ -119,8 +131,10 @@ public class MachineFluidTank extends BlockContainer implements IMultiblock {
|
||||
DummyBlockFluidTank.safeBreak = false;
|
||||
//
|
||||
|
||||
} else
|
||||
world.func_147480_a(x, y, z, true);
|
||||
} else {
|
||||
this.dropBlockAsItem(world, x, y, z, drop);
|
||||
world.func_147480_a(x, y, z, false);
|
||||
}
|
||||
}
|
||||
if (i == 1) {
|
||||
world.setBlockMetadataWithNotify(x, y, z, 3, 2);
|
||||
@ -164,8 +178,10 @@ public class MachineFluidTank extends BlockContainer implements IMultiblock {
|
||||
DummyBlockFluidTank.safeBreak = false;
|
||||
//
|
||||
|
||||
} else
|
||||
world.func_147480_a(x, y, z, true);
|
||||
} else {
|
||||
this.dropBlockAsItem(world, x, y, z, drop);
|
||||
world.func_147480_a(x, y, z, false);
|
||||
}
|
||||
}
|
||||
if (i == 2) {
|
||||
world.setBlockMetadataWithNotify(x, y, z, 4, 2);
|
||||
@ -209,8 +225,10 @@ public class MachineFluidTank extends BlockContainer implements IMultiblock {
|
||||
DummyBlockFluidTank.safeBreak = false;
|
||||
//
|
||||
|
||||
} else
|
||||
world.func_147480_a(x, y, z, true);
|
||||
} else {
|
||||
this.dropBlockAsItem(world, x, y, z, drop);
|
||||
world.func_147480_a(x, y, z, false);
|
||||
}
|
||||
}
|
||||
if (i == 3) {
|
||||
world.setBlockMetadataWithNotify(x, y, z, 2, 2);
|
||||
@ -254,9 +272,13 @@ public class MachineFluidTank extends BlockContainer implements IMultiblock {
|
||||
DummyBlockFluidTank.safeBreak = false;
|
||||
//
|
||||
|
||||
} else
|
||||
world.func_147480_a(x, y, z, true);
|
||||
} else {
|
||||
this.dropBlockAsItem(world, x, y, z, drop);
|
||||
world.func_147480_a(x, y, z, false);
|
||||
}
|
||||
}
|
||||
|
||||
IPersistentNBT.restoreData(world, x, y, z, itemStack);
|
||||
}
|
||||
|
||||
private final Random field_149933_a = new Random();
|
||||
@ -313,4 +335,35 @@ public class MachineFluidTank extends BlockContainer implements IMultiblock {
|
||||
|
||||
super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
|
||||
return IPersistentNBT.getDrops(world, x, y, z, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) {
|
||||
|
||||
if(!player.capabilities.isCreativeMode) {
|
||||
harvesters.set(player);
|
||||
this.dropBlockAsItem(world, x, y, z, meta, 0);
|
||||
harvesters.set(null);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Called after the block and TE are already gone, so this method is of no use to us.
|
||||
*/
|
||||
@Override
|
||||
public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) {
|
||||
player.addStat(StatList.mineBlockStatArray[getIdFromBlock(this)], 1);
|
||||
player.addExhaustion(0.025F);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) {
|
||||
FluidTank tank = new FluidTank(Fluids.NONE, 0, 0);
|
||||
tank.readFromNBT(persistentTag, "tank");
|
||||
list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName()));
|
||||
}
|
||||
}
|
||||
|
||||
193
src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java
Normal file
193
src/main/java/com/hbm/blocks/machine/MachineHeatBoiler.java
Normal file
@ -0,0 +1,193 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.IBlockMulti;
|
||||
import com.hbm.blocks.ILookOverlay;
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.trait.FT_Heatable;
|
||||
import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.IItemFluidIdentifier;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
import com.hbm.tileentity.machine.TileEntityHeatBoiler;
|
||||
import com.hbm.util.I18nUtil;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.ChatComponentText;
|
||||
import net.minecraft.util.ChatComponentTranslation;
|
||||
import net.minecraft.util.ChatStyle;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class MachineHeatBoiler extends BlockDummyable implements ILookOverlay, ITooltipProvider, IBlockMulti {
|
||||
|
||||
public MachineHeatBoiler() {
|
||||
super(Material.iron);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
|
||||
if(meta >= 12) return new TileEntityHeatBoiler();
|
||||
if(meta >= extra) return new TileEntityProxyCombo().fluid();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||
|
||||
if(!world.isRemote && !player.isSneaking()) {
|
||||
|
||||
if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) {
|
||||
int[] pos = this.findCore(world, x, y, z);
|
||||
|
||||
if(pos == null)
|
||||
return false;
|
||||
|
||||
TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||
|
||||
if(!(te instanceof TileEntityHeatBoiler))
|
||||
return false;
|
||||
|
||||
TileEntityHeatBoiler boiler = (TileEntityHeatBoiler) te;
|
||||
|
||||
FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem());
|
||||
|
||||
if(type.hasTrait(FT_Heatable.class) && type.getTrait(FT_Heatable.class).getEfficiency(HeatingType.BOILER) > 0) {
|
||||
boiler.tanks[0].setTankType(type);
|
||||
boiler.markDirty();
|
||||
player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase())).appendSibling(new ChatComponentText("!")));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) {
|
||||
super.onBlockPlacedBy(world, x, y, z, player, itemStack);
|
||||
|
||||
if(itemStack.getItemDamage() == 1) {
|
||||
|
||||
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
|
||||
int o = -getOffset();
|
||||
|
||||
ForgeDirection dir = ForgeDirection.NORTH;
|
||||
if(i == 0) dir = ForgeDirection.getOrientation(2);
|
||||
if(i == 1) dir = ForgeDirection.getOrientation(5);
|
||||
if(i == 2) dir = ForgeDirection.getOrientation(3);
|
||||
if(i == 3) dir = ForgeDirection.getOrientation(4);
|
||||
|
||||
dir = getDirModified(dir);
|
||||
|
||||
TileEntity te = world.getTileEntity(x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o);
|
||||
|
||||
if(te instanceof TileEntityHeatBoiler) {
|
||||
((TileEntityHeatBoiler) te).hasExploded = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
|
||||
ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
|
||||
|
||||
int count = quantityDropped(metadata, fortune, world.rand);
|
||||
int dmg = 0;
|
||||
|
||||
int[] pos = this.findCore(world, x, y, z);
|
||||
|
||||
if(pos != null) {
|
||||
TileEntityHeatBoiler boiler = (TileEntityHeatBoiler)world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||
if(boiler.hasExploded) {
|
||||
//dmg = 1;
|
||||
ret.add(new ItemStack(ModItems.ingot_steel, 4));
|
||||
ret.add(new ItemStack(ModItems.plate_copper, 8));
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
for(int i = 0; i < count; i++) {
|
||||
Item item = getItemDropped(metadata, world.rand, fortune);
|
||||
if(item != null) {
|
||||
ret.add(new ItemStack(item, 1, dmg));
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getDimensions() {
|
||||
return new int[] {3, 0, 1, 1, 1, 1};
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOffset() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
|
||||
super.fillSpace(world, x, y, z, dir, o);
|
||||
|
||||
x = x + dir.offsetX * o;
|
||||
z = z + dir.offsetZ * o;
|
||||
|
||||
ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
|
||||
|
||||
this.makeExtra(world, x + rot.offsetX, y, z + rot.offsetZ);
|
||||
this.makeExtra(world, x - rot.offsetX, y, z - rot.offsetZ);
|
||||
this.makeExtra(world, x, y + 3, z);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void printHook(Pre event, World world, int x, int y, int z) {
|
||||
|
||||
int[] pos = this.findCore(world, x, y, z);
|
||||
|
||||
if(pos == null)
|
||||
return;
|
||||
|
||||
TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||
|
||||
if(!(te instanceof TileEntityHeatBoiler))
|
||||
return;
|
||||
|
||||
TileEntityHeatBoiler boiler = (TileEntityHeatBoiler) te;
|
||||
|
||||
if(boiler.hasExploded) return;
|
||||
|
||||
List<String> text = new ArrayList();
|
||||
text.add(String.format("%,d", boiler.heat) + "TU");
|
||||
text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey(boiler.tanks[0].getTankType().getUnlocalizedName()) + ": " + String.format("%,d", boiler.tanks[0].getFill()) + " / " + String.format("%,d", boiler.tanks[0].getMaxFill()) + "mB");
|
||||
text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(boiler.tanks[1].getTankType().getUnlocalizedName()) + ": " + String.format("%,d", boiler.tanks[1].getFill()) + " / " + String.format("%,d", boiler.tanks[1].getMaxFill()) + "mB");
|
||||
|
||||
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSubCount() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
||||
this.addStandardInfo(stack, player, list, ext);
|
||||
}
|
||||
}
|
||||
@ -1,6 +1,9 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
@ -12,12 +15,11 @@ import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.ChatComponentText;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class MachineLargeTurbine extends BlockDummyable {
|
||||
public class MachineLargeTurbine extends BlockDummyable implements ITooltipProvider {
|
||||
|
||||
public MachineLargeTurbine(Material mat) {
|
||||
super(mat);
|
||||
@ -98,4 +100,9 @@ public class MachineLargeTurbine extends BlockDummyable {
|
||||
this.makeExtra(world, xc + dir2.offsetX, y, zc + dir2.offsetZ);
|
||||
this.makeExtra(world, xc - dir2.offsetX, y, zc - dir2.offsetZ);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
||||
this.addStandardInfo(stack, player, list, ext);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,19 +1,30 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.IPersistentInfoProvider;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.IPersistentNBT;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
import com.hbm.tileentity.machine.storage.TileEntityMachineOrbus;
|
||||
import com.hbm.util.I18nUtil;
|
||||
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class MachineOrbus extends BlockDummyable {
|
||||
public class MachineOrbus extends BlockDummyable implements IPersistentInfoProvider {
|
||||
|
||||
public MachineOrbus(Material mat) {
|
||||
super(mat);
|
||||
@ -73,4 +84,16 @@ public class MachineOrbus extends BlockDummyable {
|
||||
this.makeExtra(world, x + dir.offsetX + d2.offsetX, y + i, z + dir.offsetZ + d2.offsetZ);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
|
||||
return IPersistentNBT.getDrops(world, x, y, z, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) {
|
||||
FluidTank tank = new FluidTank(Fluids.NONE, 0, 0);
|
||||
tank.readFromNBT(persistentTag, "tank");
|
||||
list.add(EnumChatFormatting.YELLOW + "" + tank.getFill() + "/" + tank.getMaxFill() + "mB " + I18nUtil.resolveKey(tank.getTankType().getUnlocalizedName()));
|
||||
}
|
||||
}
|
||||
|
||||
232
src/main/java/com/hbm/blocks/machine/MachineSawmill.java
Normal file
232
src/main/java/com/hbm/blocks/machine/MachineSawmill.java
Normal file
@ -0,0 +1,232 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ILookOverlay;
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
import com.hbm.tileentity.machine.TileEntitySawmill;
|
||||
import com.hbm.util.BobMathUtil;
|
||||
import com.hbm.util.I18nUtil;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class MachineSawmill extends BlockDummyable implements ILookOverlay, ITooltipProvider {
|
||||
|
||||
public MachineSawmill() {
|
||||
super(Material.iron);
|
||||
|
||||
this.bounding.add(AxisAlignedBB.getBoundingBox(-1.5D, 0D, -1.5D, 1.5D, 1D, 1.5D));
|
||||
this.bounding.add(AxisAlignedBB.getBoundingBox(-1.25D, 1D, -0.5D, -0.625D, 1.875D, 0.5D));
|
||||
this.bounding.add(AxisAlignedBB.getBoundingBox(-0.625D, 1D, -1D, 1.375D, 2D, 1D));
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
|
||||
if(meta >= 12)
|
||||
return new TileEntitySawmill();
|
||||
|
||||
if(meta >= extra)
|
||||
return new TileEntityProxyCombo().inventory();
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getDimensions() {
|
||||
return new int[] {1, 0, 1, 1, 1, 1};
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOffset() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
|
||||
super.fillSpace(world, x, y, z, dir, o);
|
||||
|
||||
x = x + dir.offsetX * o;
|
||||
z = z + dir.offsetZ * o;
|
||||
|
||||
this.makeExtra(world, x + 1, y, z);
|
||||
this.makeExtra(world, x - 1, y, z);
|
||||
this.makeExtra(world, x, y, z + 1);
|
||||
this.makeExtra(world, x, y, z - 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||
|
||||
if(world.isRemote) {
|
||||
return true;
|
||||
|
||||
} else if(!player.isSneaking()) {
|
||||
int[] pos = this.findCore(world, x, y, z);
|
||||
|
||||
if(pos == null)
|
||||
return false;
|
||||
|
||||
TileEntitySawmill sawmill = (TileEntitySawmill)world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||
|
||||
if(!sawmill.hasBlade && player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.sawblade) {
|
||||
player.getHeldItem().stackSize--;
|
||||
sawmill.hasBlade = true;
|
||||
sawmill.markDirty();
|
||||
world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:item.upgradePlug", 1.5F, 0.75F);
|
||||
return true;
|
||||
}
|
||||
|
||||
if(sawmill.slots[1] != null || sawmill.slots[2] != null) {
|
||||
for(int i = 1; i < 3; i++) {
|
||||
if(sawmill.slots[i] != null) {
|
||||
if(!player.inventory.addItemStackToInventory(sawmill.slots[i].copy())) {
|
||||
player.dropPlayerItemWithRandomChoice(sawmill.slots[i].copy(), false);
|
||||
}
|
||||
sawmill.slots[i] = null;
|
||||
}
|
||||
}
|
||||
player.inventoryContainer.detectAndSendChanges();
|
||||
sawmill.markDirty();
|
||||
return true;
|
||||
|
||||
} else {
|
||||
if(sawmill.slots[0] == null && player.getHeldItem() != null && sawmill.getOutput(player.getHeldItem()) != null) {
|
||||
sawmill.slots[0] = player.getHeldItem().copy();
|
||||
sawmill.slots[0].stackSize = 1;
|
||||
player.getHeldItem().stackSize--;
|
||||
sawmill.markDirty();
|
||||
player.inventoryContainer.detectAndSendChanges();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) {
|
||||
super.onBlockPlacedBy(world, x, y, z, player, itemStack);
|
||||
|
||||
if(itemStack.getItemDamage() == 1) {
|
||||
|
||||
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
|
||||
int o = -getOffset();
|
||||
|
||||
ForgeDirection dir = ForgeDirection.NORTH;
|
||||
if(i == 0) dir = ForgeDirection.getOrientation(2);
|
||||
if(i == 1) dir = ForgeDirection.getOrientation(5);
|
||||
if(i == 2) dir = ForgeDirection.getOrientation(3);
|
||||
if(i == 3) dir = ForgeDirection.getOrientation(4);
|
||||
|
||||
dir = getDirModified(dir);
|
||||
|
||||
TileEntity te = world.getTileEntity(x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o);
|
||||
|
||||
if(te instanceof TileEntitySawmill) {
|
||||
((TileEntitySawmill) te).hasBlade = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
|
||||
ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
|
||||
|
||||
int count = quantityDropped(metadata, fortune, world.rand);
|
||||
int dmg = 0;
|
||||
|
||||
int[] pos = this.findCore(world, x, y, z);
|
||||
|
||||
if(pos != null) {
|
||||
TileEntitySawmill stirling = (TileEntitySawmill)world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||
if(!stirling.hasBlade) {
|
||||
dmg = 1;
|
||||
}
|
||||
}
|
||||
|
||||
for(int i = 0; i < count; i++) {
|
||||
Item item = getItemDropped(metadata, world.rand, fortune);
|
||||
if(item != null) {
|
||||
ret.add(new ItemStack(item, 1, dmg));
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { }
|
||||
|
||||
@Override
|
||||
public void printHook(Pre event, World world, int x, int y, int z) {
|
||||
|
||||
int[] pos = this.findCore(world, x, y, z);
|
||||
|
||||
if(pos == null)
|
||||
return;
|
||||
|
||||
TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||
|
||||
if(!(te instanceof TileEntitySawmill))
|
||||
return;
|
||||
|
||||
TileEntitySawmill stirling = (TileEntitySawmill) te;
|
||||
|
||||
List<String> text = new ArrayList();
|
||||
text.add(stirling.heat + "TU/t");
|
||||
|
||||
double percent = (double) stirling.heat / (double) 300;
|
||||
int color = ((int) (0xFF - 0xFF * percent)) << 16 | ((int)(0xFF * percent) << 8);
|
||||
|
||||
if(percent > 1D)
|
||||
color = 0xff0000;
|
||||
|
||||
text.add("&[" + color + "&]" + ((stirling.heat * 1000 / 300) / 10D) + "%");
|
||||
|
||||
int limiter = stirling.progress * 26 / stirling.processingTime;
|
||||
String bar = EnumChatFormatting.GREEN + "[ ";
|
||||
for(int i = 0; i < 25; i++) {
|
||||
if(i == limiter) {
|
||||
bar += EnumChatFormatting.RESET;
|
||||
}
|
||||
|
||||
bar += "▏";
|
||||
}
|
||||
|
||||
bar += EnumChatFormatting.GREEN + " ]";
|
||||
|
||||
text.add(bar);
|
||||
|
||||
for(int i = 0; i < 3; i++) {
|
||||
if(stirling.slots[i] != null) {
|
||||
text.add((i == 0 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + stirling.slots[i].getDisplayName() + (stirling.slots[i].stackSize > 1 ? " x" + stirling.slots[i].stackSize : ""));
|
||||
}
|
||||
}
|
||||
|
||||
if(stirling.heat > 300) {
|
||||
text.add("&[" + (BobMathUtil.getBlink() ? 0xff0000 : 0xffff00) + "&]! ! ! OVERSPEED ! ! !");
|
||||
}
|
||||
|
||||
if(!stirling.hasBlade) {
|
||||
text.add("&[" + 0xff0000 + "&]Blade missing!");
|
||||
}
|
||||
|
||||
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
|
||||
}
|
||||
}
|
||||
@ -5,7 +5,7 @@ import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade;
|
||||
import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine;
|
||||
|
||||
|
||||
@ -78,8 +78,9 @@ public class MachineStirling extends BlockDummyable implements ILookOverlay, ITo
|
||||
return false;
|
||||
|
||||
TileEntityStirling stirling = (TileEntityStirling)world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||
int meta = stirling.getGeatMeta();
|
||||
|
||||
if(!stirling.hasCog && player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.gear_large) {
|
||||
if(!stirling.hasCog && player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.gear_large && player.getHeldItem().getItemDamage() == meta) {
|
||||
player.getHeldItem().stackSize--;
|
||||
stirling.hasCog = true;
|
||||
stirling.markDirty();
|
||||
@ -155,20 +156,21 @@ public class MachineStirling extends BlockDummyable implements ILookOverlay, ITo
|
||||
return;
|
||||
|
||||
TileEntityStirling stirling = (TileEntityStirling) te;
|
||||
int maxHeat = stirling.maxHeat();
|
||||
|
||||
List<String> text = new ArrayList();
|
||||
text.add(stirling.heat + "TU/t");
|
||||
text.add((stirling.hasCog ? stirling.powerBuffer : 0) + "HE/t");
|
||||
|
||||
double percent = (double) stirling.heat / 300D;
|
||||
double percent = (double) stirling.heat / (double) maxHeat;
|
||||
int color = ((int) (0xFF - 0xFF * percent)) << 16 | ((int)(0xFF * percent) << 8);
|
||||
|
||||
if(percent > 1D)
|
||||
color = 0xff0000;
|
||||
|
||||
text.add("&[" + color + "&]" + ((stirling.heat * 1000 / 300) / 10D) + "%");
|
||||
text.add("&[" + color + "&]" + ((stirling.heat * 1000 / maxHeat) / 10D) + "%");
|
||||
|
||||
if(stirling.heat > 300) {
|
||||
if(stirling.heat > maxHeat) {
|
||||
text.add("&[" + (BobMathUtil.getBlink() ? 0xff0000 : 0xffff00) + "&]! ! ! OVERSPEED ! ! !");
|
||||
}
|
||||
|
||||
|
||||
32
src/main/java/com/hbm/blocks/machine/MachineTeleanchor.java
Normal file
32
src/main/java/com/hbm/blocks/machine/MachineTeleanchor.java
Normal file
@ -0,0 +1,32 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import com.hbm.blocks.BlockBase;
|
||||
import com.hbm.lib.RefStrings;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.util.IIcon;
|
||||
|
||||
public class MachineTeleanchor extends BlockBase {
|
||||
|
||||
@SideOnly(Side.CLIENT) private IIcon iconTop;
|
||||
|
||||
public MachineTeleanchor() {
|
||||
super(Material.iron);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerBlockIcons(IIconRegister iconRegister) {
|
||||
this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":tele_anchor_top");
|
||||
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":tele_anchor_side");
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getIcon(int side, int metadata) {
|
||||
return side == 1 ? this.iconTop : this.blockIcon;
|
||||
}
|
||||
}
|
||||
@ -22,9 +22,8 @@ import net.minecraft.world.World;
|
||||
|
||||
public class MachineTeleporter extends BlockContainer {
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
private IIcon iconTop;
|
||||
private IIcon iconBottom;
|
||||
@SideOnly(Side.CLIENT) private IIcon iconTop;
|
||||
@SideOnly(Side.CLIENT) private IIcon iconBottom;
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
|
||||
@ -1,7 +1,9 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.main.MainRegistry;
|
||||
@ -23,7 +25,7 @@ import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class MachineTurbine extends BlockContainer {
|
||||
public class MachineTurbine extends BlockContainer implements ITooltipProvider {
|
||||
|
||||
private final Random field_149933_a = new Random();
|
||||
@SideOnly(Side.CLIENT)
|
||||
@ -123,4 +125,8 @@ public class MachineTurbine extends BlockContainer {
|
||||
super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
||||
this.addStandardInfo(stack, player, list, ext);
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,7 +7,7 @@ import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.handler.MultiblockHandler;
|
||||
import com.hbm.interfaces.IMultiblock;
|
||||
import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade;
|
||||
import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.machine.TileEntityDummy;
|
||||
|
||||
@ -4,9 +4,9 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.ILookOverlay;
|
||||
import com.hbm.inventory.FluidTank;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
import com.hbm.items.machine.IItemFluidIdentifier;
|
||||
import com.hbm.tileentity.machine.rbmk.TileEntityHeatex;
|
||||
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKHeater;
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
package com.hbm.blocks.network;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.blocks.test.TestConductor;
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.tileentity.network.TileEntityCableBaseNT;
|
||||
|
||||
@ -23,7 +22,8 @@ public class BlockCable extends BlockContainer {
|
||||
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
|
||||
return new TileEntityCableBaseNT();
|
||||
}
|
||||
|
||||
|
||||
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
|
||||
public static int renderIDClassic = RenderingRegistry.getNextAvailableRenderId();
|
||||
|
||||
@Override
|
||||
@ -32,7 +32,7 @@ public class BlockCable extends BlockContainer {
|
||||
if(this == ModBlocks.red_cable_classic)
|
||||
return renderIDClassic;
|
||||
|
||||
return TestConductor.renderID;
|
||||
return renderID;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -1,157 +1,8 @@
|
||||
package com.hbm.blocks.network;
|
||||
|
||||
import com.hbm.entity.item.EntityMovingItem;
|
||||
import com.hbm.lib.RefStrings;
|
||||
|
||||
import api.hbm.conveyor.IConveyorBelt;
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class BlockConveyor extends Block implements IConveyorBelt {
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
protected IIcon sideIcon;
|
||||
public class BlockConveyor extends BlockConveyorBendable {
|
||||
|
||||
public BlockConveyor() {
|
||||
super(Material.iron);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerBlockIcons(IIconRegister iconRegister) {
|
||||
super.registerBlockIcons(iconRegister);
|
||||
this.sideIcon = iconRegister.registerIcon(RefStrings.MODID + ":conveyor_side");
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getIcon(int side, int metadata) {
|
||||
|
||||
if((metadata == 2 || metadata == 3) && (side == 4 || side == 5))
|
||||
return this.sideIcon;
|
||||
if((metadata == 4 || metadata == 5) && (side == 2 || side == 3))
|
||||
return this.sideIcon;
|
||||
|
||||
return super.getIcon(side, metadata);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vec3 getTravelLocation(World world, int x, int y, int z, Vec3 itemPos, double speed) {
|
||||
|
||||
ForgeDirection dir = getTravelDirection(world, x, y, z, itemPos, speed);
|
||||
//snapping point
|
||||
Vec3 snap = this.getClosestSnappingPosition(world, x, y, z, itemPos);
|
||||
//snapping point + speed
|
||||
Vec3 dest = Vec3.createVectorHelper(snap.xCoord - dir.offsetX * speed, snap.yCoord - dir.offsetY * speed, snap.zCoord - dir.offsetZ * speed);
|
||||
//delta to get to that point
|
||||
Vec3 motion = Vec3.createVectorHelper((dest.xCoord - itemPos.xCoord), (dest.yCoord - itemPos.yCoord), (dest.zCoord - itemPos.zCoord));
|
||||
double len = motion.lengthVector();
|
||||
//the effective destination towards "dest" after taking speed into consideration
|
||||
Vec3 ret = Vec3.createVectorHelper(itemPos.xCoord + motion.xCoord / len * speed, itemPos.yCoord + motion.yCoord / len * speed, itemPos.zCoord + motion.zCoord / len * speed);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public ForgeDirection getTravelDirection(World world, int x, int y, int z, Vec3 itemPos, double speed) {
|
||||
return ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos) {
|
||||
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z));
|
||||
|
||||
itemPos.xCoord = MathHelper.clamp_double(itemPos.xCoord, x, x + 1);
|
||||
itemPos.zCoord = MathHelper.clamp_double(itemPos.zCoord, z, z + 1);
|
||||
|
||||
double posX = x + 0.5;
|
||||
double posZ = z + 0.5;
|
||||
|
||||
if(dir.offsetX != 0) {
|
||||
posX = itemPos.xCoord;
|
||||
}
|
||||
if(dir.offsetZ != 0) {
|
||||
posZ = itemPos.zCoord;
|
||||
}
|
||||
|
||||
return Vec3.createVectorHelper(posX, y + 0.25, posZ);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) {
|
||||
|
||||
if(!world.isRemote) {
|
||||
|
||||
if(entity instanceof EntityItem && entity.ticksExisted > 10 && !entity.isDead) {
|
||||
|
||||
EntityMovingItem item = new EntityMovingItem(world);
|
||||
item.setItemStack(((EntityItem) entity).getEntityItem().copy());
|
||||
Vec3 pos = Vec3.createVectorHelper(entity.posX, entity.posY, entity.posZ);
|
||||
Vec3 snap = this.getClosestSnappingPosition(world, x, y, z, pos);
|
||||
item.setPositionAndRotation(snap.xCoord, snap.yCoord, snap.zCoord, 0, 0);
|
||||
world.spawnEntityInWorld(item);
|
||||
|
||||
entity.setDead();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
|
||||
|
||||
@Override
|
||||
public int getRenderType() {
|
||||
return renderID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) {
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.25F, 1.0F);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) {
|
||||
return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 0.25, z + 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) {
|
||||
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
|
||||
|
||||
if(i == 0) {
|
||||
world.setBlockMetadataWithNotify(x, y, z, 2, 2);
|
||||
}
|
||||
if(i == 1) {
|
||||
world.setBlockMetadataWithNotify(x, y, z, 5, 2);
|
||||
}
|
||||
if(i == 2) {
|
||||
world.setBlockMetadataWithNotify(x, y, z, 3, 2);
|
||||
}
|
||||
if(i == 3) {
|
||||
world.setBlockMetadataWithNotify(x, y, z, 4, 2);
|
||||
}
|
||||
super();
|
||||
}
|
||||
}
|
||||
|
||||
157
src/main/java/com/hbm/blocks/network/BlockConveyorBase.java
Normal file
157
src/main/java/com/hbm/blocks/network/BlockConveyorBase.java
Normal file
@ -0,0 +1,157 @@
|
||||
package com.hbm.blocks.network;
|
||||
|
||||
import com.hbm.entity.item.EntityMovingItem;
|
||||
import com.hbm.lib.RefStrings;
|
||||
|
||||
import api.hbm.conveyor.IConveyorBelt;
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public abstract class BlockConveyorBase extends Block implements IConveyorBelt {
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
protected IIcon sideIcon;
|
||||
|
||||
public BlockConveyorBase() {
|
||||
super(Material.iron);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerBlockIcons(IIconRegister iconRegister) {
|
||||
super.registerBlockIcons(iconRegister);
|
||||
this.sideIcon = iconRegister.registerIcon(RefStrings.MODID + ":conveyor_side");
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getIcon(int side, int metadata) {
|
||||
|
||||
if((metadata == 2 || metadata == 3) && (side == 4 || side == 5))
|
||||
return this.sideIcon;
|
||||
if((metadata == 4 || metadata == 5) && (side == 2 || side == 3))
|
||||
return this.sideIcon;
|
||||
|
||||
return super.getIcon(side, metadata);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vec3 getTravelLocation(World world, int x, int y, int z, Vec3 itemPos, double speed) {
|
||||
|
||||
ForgeDirection dir = this.getTravelDirection(world, x, y, z, itemPos);
|
||||
//snapping point
|
||||
Vec3 snap = this.getClosestSnappingPosition(world, x, y, z, itemPos);
|
||||
//snapping point + speed
|
||||
Vec3 dest = Vec3.createVectorHelper(snap.xCoord - dir.offsetX * speed, snap.yCoord - dir.offsetY * speed, snap.zCoord - dir.offsetZ * speed);
|
||||
//delta to get to that point
|
||||
Vec3 motion = Vec3.createVectorHelper((dest.xCoord - itemPos.xCoord), (dest.yCoord - itemPos.yCoord), (dest.zCoord - itemPos.zCoord));
|
||||
double len = motion.lengthVector();
|
||||
//the effective destination towards "dest" after taking speed into consideration
|
||||
Vec3 ret = Vec3.createVectorHelper(itemPos.xCoord + motion.xCoord / len * speed, itemPos.yCoord + motion.yCoord / len * speed, itemPos.zCoord + motion.zCoord / len * speed);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public ForgeDirection getTravelDirection(World world, int x, int y, int z, Vec3 itemPos) {
|
||||
return ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos) {
|
||||
|
||||
ForgeDirection dir = this.getTravelDirection(world, x, y, z, itemPos);
|
||||
|
||||
itemPos.xCoord = MathHelper.clamp_double(itemPos.xCoord, x, x + 1);
|
||||
itemPos.zCoord = MathHelper.clamp_double(itemPos.zCoord, z, z + 1);
|
||||
|
||||
double posX = x + 0.5;
|
||||
double posZ = z + 0.5;
|
||||
|
||||
if(dir.offsetX != 0) {
|
||||
posX = itemPos.xCoord;
|
||||
}
|
||||
if(dir.offsetZ != 0) {
|
||||
posZ = itemPos.zCoord;
|
||||
}
|
||||
|
||||
return Vec3.createVectorHelper(posX, y + 0.25, posZ);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) {
|
||||
|
||||
if(!world.isRemote) {
|
||||
|
||||
if(entity instanceof EntityItem && entity.ticksExisted > 10 && !entity.isDead) {
|
||||
|
||||
EntityMovingItem item = new EntityMovingItem(world);
|
||||
item.setItemStack(((EntityItem) entity).getEntityItem().copy());
|
||||
Vec3 pos = Vec3.createVectorHelper(entity.posX, entity.posY, entity.posZ);
|
||||
Vec3 snap = this.getClosestSnappingPosition(world, x, y, z, pos);
|
||||
item.setPositionAndRotation(snap.xCoord, snap.yCoord, snap.zCoord, 0, 0);
|
||||
world.spawnEntityInWorld(item);
|
||||
|
||||
entity.setDead();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
|
||||
|
||||
@Override
|
||||
public int getRenderType() {
|
||||
return renderID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) {
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.25F, 1.0F);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) {
|
||||
return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 0.25, z + 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) {
|
||||
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
|
||||
|
||||
if(i == 0) {
|
||||
world.setBlockMetadataWithNotify(x, y, z, 2, 2);
|
||||
}
|
||||
if(i == 1) {
|
||||
world.setBlockMetadataWithNotify(x, y, z, 5, 2);
|
||||
}
|
||||
if(i == 2) {
|
||||
world.setBlockMetadataWithNotify(x, y, z, 3, 2);
|
||||
}
|
||||
if(i == 3) {
|
||||
world.setBlockMetadataWithNotify(x, y, z, 4, 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
112
src/main/java/com/hbm/blocks/network/BlockConveyorBendable.java
Normal file
112
src/main/java/com/hbm/blocks/network/BlockConveyorBendable.java
Normal file
@ -0,0 +1,112 @@
|
||||
package com.hbm.blocks.network;
|
||||
|
||||
import api.hbm.block.IToolable;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public abstract class BlockConveyorBendable extends BlockConveyorBase implements IToolable {
|
||||
|
||||
@SideOnly(Side.CLIENT) protected IIcon curveLeft;
|
||||
@SideOnly(Side.CLIENT) protected IIcon curveRight;
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerBlockIcons(IIconRegister iconRegister) {
|
||||
super.registerBlockIcons(iconRegister);
|
||||
this.curveLeft = iconRegister.registerIcon(this.getTextureName() + "_curve_left");
|
||||
this.curveRight = iconRegister.registerIcon(this.getTextureName() + "_curve_right");
|
||||
}
|
||||
|
||||
protected int getPathDirection(int meta) {
|
||||
|
||||
if(meta >= 6 && meta <= 9) return 1;
|
||||
if(meta >= 10 && meta <= 13) return 2;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getIcon(int side, int metadata) {
|
||||
|
||||
int dir = getPathDirection(metadata);
|
||||
|
||||
if(dir > 0 && side > 1)
|
||||
return this.sideIcon;
|
||||
|
||||
if((metadata == 2 || metadata == 3) && (side == 4 || side == 5))
|
||||
return this.sideIcon;
|
||||
if((metadata == 4 || metadata == 5) && (side == 2 || side == 3))
|
||||
return this.sideIcon;
|
||||
|
||||
if(dir == 1) return this.curveLeft;
|
||||
if(dir == 2) return this.curveRight;
|
||||
|
||||
return super.getIcon(side, metadata);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ForgeDirection getTravelDirection(World world, int x, int y, int z, Vec3 itemPos) {
|
||||
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
int dir = getPathDirection(meta);
|
||||
meta -= dir * 4;
|
||||
|
||||
ForgeDirection primary = ForgeDirection.getOrientation(meta);
|
||||
|
||||
if(dir > 0) {
|
||||
dir--;
|
||||
double ix = x + 0.5;
|
||||
double iz = z + 0.5;
|
||||
ForgeDirection secondary = primary.getRotation(ForgeDirection.UP);
|
||||
|
||||
ix -= -primary.offsetX * 0.5 + secondary.offsetX * (0.5 - dir);
|
||||
iz -= -primary.offsetZ * 0.5 + secondary.offsetZ * (0.5 - dir);
|
||||
|
||||
double dX = Math.abs(itemPos.xCoord - ix);
|
||||
double dZ = Math.abs(itemPos.zCoord - iz);
|
||||
|
||||
if(dX + dZ >= 1) {
|
||||
|
||||
if(dir == 0)
|
||||
return secondary.getOpposite();
|
||||
else
|
||||
return secondary;
|
||||
}
|
||||
}
|
||||
|
||||
return primary;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) {
|
||||
|
||||
if(tool != ToolType.SCREWDRIVER)
|
||||
return false;
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
int newMeta = meta;
|
||||
|
||||
int dir = getPathDirection(meta);
|
||||
|
||||
if(!player.isSneaking()) {
|
||||
if(meta > 9) meta -= 8;
|
||||
if(meta > 5) meta -= 4;
|
||||
newMeta = ForgeDirection.getOrientation(meta).getRotation(ForgeDirection.UP).ordinal() + dir * 4;
|
||||
} else {
|
||||
|
||||
if(dir < 2)
|
||||
newMeta += 4;
|
||||
else
|
||||
newMeta -= 8;
|
||||
}
|
||||
|
||||
world.setBlockMetadataWithNotify(x, y, z, newMeta, 3);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -12,7 +12,7 @@ import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class BlockConveyorChute extends BlockConveyor {
|
||||
public class BlockConveyorChute extends BlockConveyorBase {
|
||||
|
||||
@Override
|
||||
public Vec3 getTravelLocation(World world, int x, int y, int z, Vec3 itemPos, double speed) {
|
||||
@ -28,7 +28,7 @@ public class BlockConveyorChute extends BlockConveyor {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ForgeDirection getTravelDirection(World world, int x, int y, int z, Vec3 itemPos, double speed) {
|
||||
public ForgeDirection getTravelDirection(World world, int x, int y, int z, Vec3 itemPos) {
|
||||
|
||||
Block below = world.getBlock(x, y - 1, z);
|
||||
if(below instanceof IConveyorBelt || below instanceof IEnterableBlock || itemPos.yCoord > y + 0.25) {
|
||||
|
||||
154
src/main/java/com/hbm/blocks/network/BlockConveyorClassic.java
Normal file
154
src/main/java/com/hbm/blocks/network/BlockConveyorClassic.java
Normal file
@ -0,0 +1,154 @@
|
||||
package com.hbm.blocks.network;
|
||||
|
||||
import com.hbm.entity.item.EntityMovingItem;
|
||||
import com.hbm.lib.RefStrings;
|
||||
|
||||
import api.hbm.conveyor.IConveyorBelt;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class BlockConveyorClassic extends Block implements IConveyorBelt {
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
protected IIcon sideIcon;
|
||||
|
||||
public BlockConveyorClassic() {
|
||||
super(Material.iron);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerBlockIcons(IIconRegister iconRegister) {
|
||||
super.registerBlockIcons(iconRegister);
|
||||
this.sideIcon = iconRegister.registerIcon(RefStrings.MODID + ":conveyor_side");
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getIcon(int side, int metadata) {
|
||||
|
||||
if((metadata == 2 || metadata == 3) && (side == 4 || side == 5))
|
||||
return this.sideIcon;
|
||||
if((metadata == 4 || metadata == 5) && (side == 2 || side == 3))
|
||||
return this.sideIcon;
|
||||
|
||||
return super.getIcon(side, metadata);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vec3 getTravelLocation(World world, int x, int y, int z, Vec3 itemPos, double speed) {
|
||||
|
||||
ForgeDirection dir = getTravelDirection(world, x, y, z, itemPos, speed);
|
||||
//snapping point
|
||||
Vec3 snap = this.getClosestSnappingPosition(world, x, y, z, itemPos);
|
||||
//snapping point + speed
|
||||
Vec3 dest = Vec3.createVectorHelper(snap.xCoord - dir.offsetX * speed, snap.yCoord - dir.offsetY * speed, snap.zCoord - dir.offsetZ * speed);
|
||||
//delta to get to that point
|
||||
Vec3 motion = Vec3.createVectorHelper((dest.xCoord - itemPos.xCoord), (dest.yCoord - itemPos.yCoord), (dest.zCoord - itemPos.zCoord));
|
||||
double len = motion.lengthVector();
|
||||
//the effective destination towards "dest" after taking speed into consideration
|
||||
Vec3 ret = Vec3.createVectorHelper(itemPos.xCoord + motion.xCoord / len * speed, itemPos.yCoord + motion.yCoord / len * speed, itemPos.zCoord + motion.zCoord / len * speed);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public ForgeDirection getTravelDirection(World world, int x, int y, int z, Vec3 itemPos, double speed) {
|
||||
return ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos) {
|
||||
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z));
|
||||
|
||||
itemPos.xCoord = MathHelper.clamp_double(itemPos.xCoord, x, x + 1);
|
||||
itemPos.zCoord = MathHelper.clamp_double(itemPos.zCoord, z, z + 1);
|
||||
|
||||
double posX = x + 0.5;
|
||||
double posZ = z + 0.5;
|
||||
|
||||
if(dir.offsetX != 0) {
|
||||
posX = itemPos.xCoord;
|
||||
}
|
||||
if(dir.offsetZ != 0) {
|
||||
posZ = itemPos.zCoord;
|
||||
}
|
||||
|
||||
return Vec3.createVectorHelper(posX, y + 0.25, posZ);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) {
|
||||
|
||||
if(!world.isRemote) {
|
||||
|
||||
if(entity instanceof EntityItem && entity.ticksExisted > 10 && !entity.isDead) {
|
||||
|
||||
EntityMovingItem item = new EntityMovingItem(world);
|
||||
item.setItemStack(((EntityItem) entity).getEntityItem().copy());
|
||||
Vec3 pos = Vec3.createVectorHelper(entity.posX, entity.posY, entity.posZ);
|
||||
Vec3 snap = this.getClosestSnappingPosition(world, x, y, z, pos);
|
||||
item.setPositionAndRotation(snap.xCoord, snap.yCoord, snap.zCoord, 0, 0);
|
||||
world.spawnEntityInWorld(item);
|
||||
|
||||
entity.setDead();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRenderType() {
|
||||
return BlockConveyorBase.renderID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) {
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.25F, 1.0F);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) {
|
||||
return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 0.25, z + 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) {
|
||||
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
|
||||
|
||||
if(i == 0) {
|
||||
world.setBlockMetadataWithNotify(x, y, z, 2, 2);
|
||||
}
|
||||
if(i == 1) {
|
||||
world.setBlockMetadataWithNotify(x, y, z, 5, 2);
|
||||
}
|
||||
if(i == 2) {
|
||||
world.setBlockMetadataWithNotify(x, y, z, 3, 2);
|
||||
}
|
||||
if(i == 3) {
|
||||
world.setBlockMetadataWithNotify(x, y, z, 4, 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -5,12 +5,12 @@ import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class BlockConveyorDouble extends BlockConveyor {
|
||||
public class BlockConveyorDouble extends BlockConveyorBendable {
|
||||
|
||||
@Override
|
||||
public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos) {
|
||||
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z));
|
||||
ForgeDirection dir = this.getTravelDirection(world, x, y, z, itemPos);
|
||||
|
||||
itemPos.xCoord = MathHelper.clamp_double(itemPos.xCoord, x, x + 1);
|
||||
itemPos.zCoord = MathHelper.clamp_double(itemPos.zCoord, z, z + 1);
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.hbm.blocks.network;
|
||||
|
||||
import api.hbm.conveyor.IConveyorBelt;
|
||||
import api.hbm.conveyor.IEnterableBlock;
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
@ -10,13 +11,13 @@ import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class BlockConveyorLift extends BlockConveyor {
|
||||
public class BlockConveyorLift extends BlockConveyorBase {
|
||||
|
||||
@Override
|
||||
public ForgeDirection getTravelDirection(World world, int x, int y, int z, Vec3 itemPos, double speed) {
|
||||
public ForgeDirection getTravelDirection(World world, int x, int y, int z, Vec3 itemPos) {
|
||||
|
||||
boolean bottom = !(world.getBlock(x, y - 1, z) instanceof IConveyorBelt);
|
||||
boolean top = !(world.getBlock(x, y + 1, z) instanceof IConveyorBelt) && !bottom;
|
||||
boolean top = !(world.getBlock(x, y + 1, z) instanceof IConveyorBelt) && !bottom && !(world.getBlock(x, y + 1, z) instanceof IEnterableBlock);
|
||||
|
||||
if(!top) {
|
||||
return ForgeDirection.DOWN;
|
||||
@ -29,7 +30,7 @@ public class BlockConveyorLift extends BlockConveyor {
|
||||
public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos) {
|
||||
|
||||
boolean bottom = !(world.getBlock(x, y - 1, z) instanceof IConveyorBelt);
|
||||
boolean top = !(world.getBlock(x, y + 1, z) instanceof IConveyorBelt) && !bottom;
|
||||
boolean top = !(world.getBlock(x, y + 1, z) instanceof IConveyorBelt) && !bottom && !(world.getBlock(x, y + 1, z) instanceof IEnterableBlock);
|
||||
|
||||
if(!top) {
|
||||
return Vec3.createVectorHelper(x + 0.5, itemPos.yCoord, z + 0.5);
|
||||
@ -42,7 +43,7 @@ public class BlockConveyorLift extends BlockConveyor {
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) {
|
||||
|
||||
boolean bottom = !(world.getBlock(x, y - 1, z) instanceof IConveyorBelt);
|
||||
boolean top = !(world.getBlock(x, y + 1, z) instanceof IConveyorBelt) && !bottom;
|
||||
boolean top = !(world.getBlock(x, y + 1, z) instanceof IConveyorBelt) && !bottom && !(world.getBlock(x, y + 1, z) instanceof IEnterableBlock);
|
||||
|
||||
if(top)
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F);
|
||||
@ -54,7 +55,7 @@ public class BlockConveyorLift extends BlockConveyor {
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) {
|
||||
|
||||
boolean bottom = !(world.getBlock(x, y - 1, z) instanceof IConveyorBelt);
|
||||
boolean top = !(world.getBlock(x, y + 1, z) instanceof IConveyorBelt) && !bottom;
|
||||
boolean top = !(world.getBlock(x, y + 1, z) instanceof IConveyorBelt) && !bottom && !(world.getBlock(x, y + 1, z) instanceof IEnterableBlock);
|
||||
|
||||
if(top)
|
||||
return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 0.5, z + 1);
|
||||
|
||||
@ -5,12 +5,12 @@ import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class BlockConveyorTriple extends BlockConveyor {
|
||||
public class BlockConveyorTriple extends BlockConveyorBendable {
|
||||
|
||||
@Override
|
||||
public Vec3 getClosestSnappingPosition(World world, int x, int y, int z, Vec3 itemPos) {
|
||||
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(world.getBlockMetadata(x, y, z));
|
||||
ForgeDirection dir = this.getTravelDirection(world, x, y, z, itemPos);
|
||||
|
||||
itemPos.xCoord = MathHelper.clamp_double(itemPos.xCoord, x, x + 1);
|
||||
itemPos.zCoord = MathHelper.clamp_double(itemPos.zCoord, z, z + 1);
|
||||
|
||||
@ -110,7 +110,7 @@ public class CableDiode extends BlockContainer implements ILookOverlay, IToolabl
|
||||
TileEntityDiode diode = (TileEntityDiode) te;
|
||||
|
||||
List<String> text = new ArrayList();
|
||||
text.add("Max.: " + BobMathUtil.getShortNumber(diode.getMaxPower()) + "HE/pulse");
|
||||
text.add("Max.: " + BobMathUtil.getShortNumber(diode.getMaxPower()) + "HE/t");
|
||||
|
||||
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
|
||||
}
|
||||
@ -168,6 +168,9 @@ public class CableDiode extends BlockContainer implements ILookOverlay, IToolabl
|
||||
|
||||
private boolean recursionBrake = false;
|
||||
private long subBuffer;
|
||||
private long contingent = 0;
|
||||
private long lastTransfer = 0;
|
||||
private int pulses = 0;
|
||||
|
||||
@Override
|
||||
public long transferPower(long power) {
|
||||
@ -175,9 +178,20 @@ public class CableDiode extends BlockContainer implements ILookOverlay, IToolabl
|
||||
if(recursionBrake)
|
||||
return power;
|
||||
|
||||
pulses++;
|
||||
|
||||
if(lastTransfer != worldObj.getTotalWorldTime()) {
|
||||
lastTransfer = worldObj.getTotalWorldTime();
|
||||
contingent = getMaxPower();
|
||||
pulses = 0;
|
||||
}
|
||||
|
||||
if(contingent <= 0 || pulses > 10)
|
||||
return power;
|
||||
|
||||
//this part turns "maxPower" from a glorified transfer weight into an actual transfer cap
|
||||
long overShoot = Math.max(0, power - getMaxPower());
|
||||
power = Math.min(power, getMaxPower());
|
||||
long overShoot = Math.max(0, power - contingent);
|
||||
power = Math.min(power, contingent);
|
||||
|
||||
recursionBrake = true;
|
||||
this.subBuffer = power;
|
||||
@ -186,6 +200,9 @@ public class CableDiode extends BlockContainer implements ILookOverlay, IToolabl
|
||||
this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
|
||||
long ret = this.subBuffer;
|
||||
|
||||
long sent = power - ret;
|
||||
contingent -= sent;
|
||||
|
||||
this.subBuffer = 0;
|
||||
recursionBrake = false;
|
||||
|
||||
|
||||
204
src/main/java/com/hbm/blocks/network/CraneRouter.java
Normal file
204
src/main/java/com/hbm/blocks/network/CraneRouter.java
Normal file
@ -0,0 +1,204 @@
|
||||
package com.hbm.blocks.network;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.IBlockMultiPass;
|
||||
import com.hbm.entity.item.EntityMovingItem;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.module.ModulePatternMatcher;
|
||||
import com.hbm.render.block.RenderBlockMultipass;
|
||||
import com.hbm.tileentity.network.TileEntityCraneRouter;
|
||||
|
||||
import api.hbm.conveyor.IConveyorBelt;
|
||||
import api.hbm.conveyor.IConveyorItem;
|
||||
import api.hbm.conveyor.IConveyorPackage;
|
||||
import api.hbm.conveyor.IEnterableBlock;
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class CraneRouter extends BlockContainer implements IBlockMultiPass, IEnterableBlock {
|
||||
|
||||
@SideOnly(Side.CLIENT) protected IIcon iconOverlay;
|
||||
|
||||
public CraneRouter() {
|
||||
super(Material.iron);
|
||||
this.setBlockTextureName(RefStrings.MODID + ":crane_in");
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
return new TileEntityCraneRouter();
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerBlockIcons(IIconRegister iconRegister) {
|
||||
super.registerBlockIcons(iconRegister);
|
||||
this.iconOverlay = iconRegister.registerIcon(RefStrings.MODID + ":crane_router_overlay");
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getIcon(int side, int metadata) {
|
||||
return RenderBlockMultipass.currentPass == 0 ? this.blockIcon : this.iconOverlay;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||
if(world.isRemote) {
|
||||
return true;
|
||||
} else if(!player.isSneaking()) {
|
||||
FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z);
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public int colorMultiplier(IBlockAccess world, int x, int y, int z) {
|
||||
|
||||
if(RenderBlockMultipass.currentPass == 0)
|
||||
return 0xffffff;
|
||||
|
||||
switch(RenderBlockMultipass.currentPass - 1) {
|
||||
case 0: return 0xff0000;
|
||||
case 1: return 0xff8000;
|
||||
case 2: return 0xffff00;
|
||||
case 3: return 0x00ff00;
|
||||
case 4: return 0x0080ff;
|
||||
case 5: return 0x8000ff;
|
||||
default: return 0xffffff;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRenderType(){
|
||||
return IBlockMultiPass.getRenderType();
|
||||
}
|
||||
|
||||
/*
|
||||
* arg arg arg spongeboy me bob i have fooled the system that only allows one tint per pass by disabling all rendered sides except one and rendering multiple passes arg arg arg
|
||||
*/
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) {
|
||||
|
||||
if(RenderBlockMultipass.currentPass == 0)
|
||||
return true;
|
||||
|
||||
return side == RenderBlockMultipass.currentPass - 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPasses() {
|
||||
return 7;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canItemEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorItem entity) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorItem entity) {
|
||||
TileEntityCraneRouter router = (TileEntityCraneRouter) world.getTileEntity(x, y, z);
|
||||
ItemStack stack = entity.getItemStack();
|
||||
|
||||
List<ForgeDirection> validDirs = new ArrayList();
|
||||
|
||||
//check filters for all sides
|
||||
for(int side = 0; side < 6; side++) {
|
||||
|
||||
ModulePatternMatcher matcher = router.patterns[side];
|
||||
int mode = router.modes[side];
|
||||
|
||||
//if the side is disabled or wildcard, skip
|
||||
if(mode == router.MODE_NONE || mode == router.MODE_WILDCARD)
|
||||
continue;
|
||||
|
||||
boolean matchesFilter = false;
|
||||
|
||||
for(int slot = 0; slot < 5; slot++) {
|
||||
ItemStack filter = router.slots[side * 5 + slot];
|
||||
|
||||
if(filter == null)
|
||||
continue;
|
||||
|
||||
//the filter kicks in so long as one entry matches
|
||||
if(matcher.isValidForFilter(filter, slot, stack)) {
|
||||
matchesFilter = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//add dir if matches with whitelist on or doesn't match with blacklist on
|
||||
if((mode == router.MODE_WHITELIST && matchesFilter) || (mode == router.MODE_BLACKLIST && !matchesFilter)) {
|
||||
validDirs.add(ForgeDirection.getOrientation(side));
|
||||
}
|
||||
}
|
||||
|
||||
//if no valid dirs have yet been found, use wildcard
|
||||
if(validDirs.isEmpty()) {
|
||||
for(int side = 0; side < 6; side++) {
|
||||
if(router.modes[side] == router.MODE_WILDCARD) {
|
||||
validDirs.add(ForgeDirection.getOrientation(side));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(validDirs.isEmpty()) {
|
||||
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, stack.copy()));
|
||||
return;
|
||||
}
|
||||
|
||||
int i = world.rand.nextInt(validDirs.size());
|
||||
sendOnRoute(world, x, y, z, entity, validDirs.get(i));
|
||||
}
|
||||
|
||||
protected void sendOnRoute(World world, int x, int y, int z, IConveyorItem item, ForgeDirection dir) {
|
||||
|
||||
IConveyorBelt belt = null;
|
||||
Block block = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ);
|
||||
|
||||
if(block instanceof IConveyorBelt) {
|
||||
belt = (IConveyorBelt) block;
|
||||
}
|
||||
|
||||
if(belt != null) {
|
||||
EntityMovingItem moving = new EntityMovingItem(world);
|
||||
Vec3 pos = Vec3.createVectorHelper(x + 0.5 + dir.offsetX * 0.55, y + 0.5 + dir.offsetY * 0.55, z + 0.5 + dir.offsetZ * 0.55);
|
||||
Vec3 snap = belt.getClosestSnappingPosition(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, pos);
|
||||
moving.setPosition(snap.xCoord, snap.yCoord, snap.zCoord);
|
||||
moving.setItemStack(item.getItemStack());
|
||||
world.spawnEntityInWorld(moving);
|
||||
} else {
|
||||
world.spawnEntityInWorld(new EntityItem(world, x + 0.5 + dir.offsetX * 0.55, y + 0.5 + dir.offsetY * 0.55, z + 0.5 + dir.offsetZ * 0.55, item.getItemStack()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPackageEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorPackage entity) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPackageEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorPackage entity) { }
|
||||
}
|
||||
@ -19,7 +19,7 @@ public class SiegeShield extends SiegeBase {
|
||||
@Override
|
||||
public void updateTick(World world, int x, int y, int z, Random rand) {
|
||||
|
||||
if(SiegeOrchestrator.siegeMobCount > SiegeOrchestrator.getExpansionThreshold(world) || !SiegeOrchestrator.enableBaseSpawning(world))
|
||||
if(SiegeOrchestrator.siegeMobCount > SiegeOrchestrator.getExpansionThreshold(world) || !SiegeOrchestrator.enableBaseSpawning(world) || !SiegeOrchestrator.siegeEnabled(world))
|
||||
return;
|
||||
|
||||
int succ = 0;
|
||||
|
||||
@ -1,11 +0,0 @@
|
||||
package com.hbm.blocks.test;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
|
||||
public class TestBB extends Block {
|
||||
|
||||
public TestBB(Material mat) {
|
||||
super(mat);
|
||||
}
|
||||
}
|
||||
@ -1,44 +0,0 @@
|
||||
package com.hbm.blocks.test;
|
||||
|
||||
import com.hbm.interfaces.Untested;
|
||||
import com.hbm.tileentity.network.TileEntityCableBaseNT;
|
||||
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
/**
|
||||
* Powered by satan energy!
|
||||
* @author hbm
|
||||
*/
|
||||
@Untested
|
||||
public class TestConductor extends BlockContainer {
|
||||
|
||||
public TestConductor(Material p_i45386_1_) {
|
||||
super(p_i45386_1_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
|
||||
return new TileEntityCableBaseNT();
|
||||
}
|
||||
|
||||
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
|
||||
|
||||
@Override
|
||||
public int getRenderType() {
|
||||
return renderID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -1,266 +0,0 @@
|
||||
package com.hbm.blocks.test;
|
||||
|
||||
import static net.minecraftforge.common.util.ForgeDirection.DOWN;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.tileentity.deco.TileEntityTestContainer;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockChest;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.passive.EntityOcelot;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.inventory.InventoryLargeChest;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class TestContainer extends BlockChest {
|
||||
|
||||
public TestContainer(int p_i45397_1_) {
|
||||
super(p_i45397_1_);
|
||||
}
|
||||
|
||||
private final Random field_149955_b = new Random();
|
||||
|
||||
//Aktiviert durch: Platzieren. Bewirkt: Rotation des Blockes in Blickrichtung
|
||||
@Override
|
||||
public void onBlockPlacedBy(World p_149689_1_, int p_149689_2_, int p_149689_3_, int p_149689_4_, EntityLivingBase p_149689_5_, ItemStack p_149689_6_)
|
||||
{
|
||||
Block block = p_149689_1_.getBlock(p_149689_2_, p_149689_3_, p_149689_4_ - 1);
|
||||
Block block1 = p_149689_1_.getBlock(p_149689_2_, p_149689_3_, p_149689_4_ + 1);
|
||||
Block block2 = p_149689_1_.getBlock(p_149689_2_ - 1, p_149689_3_, p_149689_4_);
|
||||
Block block3 = p_149689_1_.getBlock(p_149689_2_ + 1, p_149689_3_, p_149689_4_);
|
||||
byte b0 = 0;
|
||||
int l = MathHelper.floor_double(p_149689_5_.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
|
||||
|
||||
if (l == 0)
|
||||
{
|
||||
b0 = 2;
|
||||
}
|
||||
|
||||
if (l == 1)
|
||||
{
|
||||
b0 = 5;
|
||||
}
|
||||
|
||||
if (l == 2)
|
||||
{
|
||||
b0 = 3;
|
||||
}
|
||||
|
||||
if (l == 3)
|
||||
{
|
||||
b0 = 4;
|
||||
}
|
||||
|
||||
if (block != this && block1 != this && block2 != this && block3 != this)
|
||||
{
|
||||
p_149689_1_.setBlockMetadataWithNotify(p_149689_2_, p_149689_3_, p_149689_4_, b0, 3);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((block == this || block1 == this) && (b0 == 4 || b0 == 5))
|
||||
{
|
||||
if (block == this)
|
||||
{
|
||||
p_149689_1_.setBlockMetadataWithNotify(p_149689_2_, p_149689_3_, p_149689_4_ - 1, b0, 3);
|
||||
}
|
||||
else
|
||||
{
|
||||
p_149689_1_.setBlockMetadataWithNotify(p_149689_2_, p_149689_3_, p_149689_4_ + 1, b0, 3);
|
||||
}
|
||||
|
||||
p_149689_1_.setBlockMetadataWithNotify(p_149689_2_, p_149689_3_, p_149689_4_, b0, 3);
|
||||
}
|
||||
|
||||
if ((block2 == this || block3 == this) && (b0 == 2 || b0 == 3))
|
||||
{
|
||||
if (block2 == this)
|
||||
{
|
||||
p_149689_1_.setBlockMetadataWithNotify(p_149689_2_ - 1, p_149689_3_, p_149689_4_, b0, 3);
|
||||
}
|
||||
else
|
||||
{
|
||||
p_149689_1_.setBlockMetadataWithNotify(p_149689_2_ + 1, p_149689_3_, p_149689_4_, b0, 3);
|
||||
}
|
||||
|
||||
p_149689_1_.setBlockMetadataWithNotify(p_149689_2_, p_149689_3_, p_149689_4_, b0, 3);
|
||||
}
|
||||
}
|
||||
|
||||
if (p_149689_6_.hasDisplayName())
|
||||
{
|
||||
((TileEntityTestContainer)p_149689_1_.getTileEntity(p_149689_2_, p_149689_3_, p_149689_4_)).func_145976_a(p_149689_6_.getDisplayName());
|
||||
}
|
||||
}
|
||||
|
||||
//Aktiviert durch: Blockupdate. Bewirkt: Verbinden zweier Kisten
|
||||
@Override
|
||||
public void onNeighborBlockChange(World p_149695_1_, int p_149695_2_, int p_149695_3_, int p_149695_4_, Block p_149695_5_)
|
||||
{
|
||||
super.onNeighborBlockChange(p_149695_1_, p_149695_2_, p_149695_3_, p_149695_4_, p_149695_5_);
|
||||
TileEntityTestContainer tileentitychest = (TileEntityTestContainer)p_149695_1_.getTileEntity(p_149695_2_, p_149695_3_, p_149695_4_);
|
||||
|
||||
if (tileentitychest != null)
|
||||
{
|
||||
tileentitychest.updateContainingBlockInfo();
|
||||
}
|
||||
}
|
||||
|
||||
//Aktiviert durch: Zerst<EFBFBD>rung. Bewirkt: Droppt alle in ihm befindlichen Items
|
||||
@Override
|
||||
public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_)
|
||||
{
|
||||
TileEntityTestContainer tileentitychest = (TileEntityTestContainer)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_);
|
||||
|
||||
if (tileentitychest != null)
|
||||
{
|
||||
for (int i1 = 0; i1 < tileentitychest.getSizeInventory(); ++i1)
|
||||
{
|
||||
ItemStack itemstack = tileentitychest.getStackInSlot(i1);
|
||||
|
||||
if (itemstack != null)
|
||||
{
|
||||
float f = this.field_149955_b.nextFloat() * 0.8F + 0.1F;
|
||||
float f1 = this.field_149955_b.nextFloat() * 0.8F + 0.1F;
|
||||
EntityItem entityitem;
|
||||
|
||||
for (float f2 = this.field_149955_b.nextFloat() * 0.8F + 0.1F; itemstack.stackSize > 0; p_149749_1_.spawnEntityInWorld(entityitem))
|
||||
{
|
||||
int j1 = this.field_149955_b.nextInt(21) + 10;
|
||||
|
||||
if (j1 > itemstack.stackSize)
|
||||
{
|
||||
j1 = itemstack.stackSize;
|
||||
}
|
||||
|
||||
itemstack.stackSize -= j1;
|
||||
entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));
|
||||
float f3 = 0.05F;
|
||||
entityitem.motionX = (float)this.field_149955_b.nextGaussian() * f3;
|
||||
entityitem.motionY = (float)this.field_149955_b.nextGaussian() * f3 + 0.2F;
|
||||
entityitem.motionZ = (float)this.field_149955_b.nextGaussian() * f3;
|
||||
|
||||
if (itemstack.hasTagCompound())
|
||||
{
|
||||
entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_);
|
||||
}
|
||||
|
||||
super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_);
|
||||
}
|
||||
|
||||
//Allgemeine Inventarfunktion
|
||||
@Override
|
||||
public IInventory func_149951_m(World p_149951_1_, int p_149951_2_, int p_149951_3_, int p_149951_4_)
|
||||
{
|
||||
Object object = p_149951_1_.getTileEntity(p_149951_2_, p_149951_3_, p_149951_4_);
|
||||
|
||||
if (object == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
else if (p_149951_1_.isSideSolid(p_149951_2_, p_149951_3_ + 1, p_149951_4_, DOWN))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
else if (func_149953_o(p_149951_1_, p_149951_2_, p_149951_3_, p_149951_4_))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
else if (p_149951_1_.getBlock(p_149951_2_ - 1, p_149951_3_, p_149951_4_) == this && (p_149951_1_.isSideSolid(p_149951_2_ - 1, p_149951_3_ + 1, p_149951_4_, DOWN) || func_149953_o(p_149951_1_, p_149951_2_ - 1, p_149951_3_, p_149951_4_)))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
else if (p_149951_1_.getBlock(p_149951_2_ + 1, p_149951_3_, p_149951_4_) == this && (p_149951_1_.isSideSolid(p_149951_2_ + 1, p_149951_3_ + 1, p_149951_4_, DOWN) || func_149953_o(p_149951_1_, p_149951_2_ + 1, p_149951_3_, p_149951_4_)))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
else if (p_149951_1_.getBlock(p_149951_2_, p_149951_3_, p_149951_4_ - 1) == this && (p_149951_1_.isSideSolid(p_149951_2_, p_149951_3_ + 1, p_149951_4_ - 1, DOWN) || func_149953_o(p_149951_1_, p_149951_2_, p_149951_3_, p_149951_4_ - 1)))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
else if (p_149951_1_.getBlock(p_149951_2_, p_149951_3_, p_149951_4_ + 1) == this && (p_149951_1_.isSideSolid(p_149951_2_, p_149951_3_ + 1, p_149951_4_ + 1, DOWN) || func_149953_o(p_149951_1_, p_149951_2_, p_149951_3_, p_149951_4_ + 1)))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (p_149951_1_.getBlock(p_149951_2_ - 1, p_149951_3_, p_149951_4_) == this)
|
||||
{
|
||||
object = new InventoryLargeChest("container.testContainer", (TileEntityTestContainer)p_149951_1_.getTileEntity(p_149951_2_ - 1, p_149951_3_, p_149951_4_), (IInventory)object);
|
||||
}
|
||||
|
||||
if (p_149951_1_.getBlock(p_149951_2_ + 1, p_149951_3_, p_149951_4_) == this)
|
||||
{
|
||||
object = new InventoryLargeChest("container.testContainer", (IInventory)object, (TileEntityTestContainer)p_149951_1_.getTileEntity(p_149951_2_ + 1, p_149951_3_, p_149951_4_));
|
||||
}
|
||||
|
||||
if (p_149951_1_.getBlock(p_149951_2_, p_149951_3_, p_149951_4_ - 1) == this)
|
||||
{
|
||||
object = new InventoryLargeChest("container.testContainer", (TileEntityTestContainer)p_149951_1_.getTileEntity(p_149951_2_, p_149951_3_, p_149951_4_ - 1), (IInventory)object);
|
||||
}
|
||||
|
||||
if (p_149951_1_.getBlock(p_149951_2_, p_149951_3_, p_149951_4_ + 1) == this)
|
||||
{
|
||||
object = new InventoryLargeChest("container.testContainer", (IInventory)object, (TileEntityTestContainer)p_149951_1_.getTileEntity(p_149951_2_, p_149951_3_, p_149951_4_ + 1));
|
||||
}
|
||||
|
||||
return (IInventory)object;
|
||||
}
|
||||
}
|
||||
|
||||
//Bewirkt, dass sich Katzen draufsetzen
|
||||
private static boolean func_149953_o(World p_149953_0_, int p_149953_1_, int p_149953_2_, int p_149953_3_)
|
||||
{
|
||||
Iterator iterator = p_149953_0_.getEntitiesWithinAABB(EntityOcelot.class, AxisAlignedBB.getBoundingBox(p_149953_1_, p_149953_2_ + 1, p_149953_3_, p_149953_1_ + 1, p_149953_2_ + 2, p_149953_3_ + 1)).iterator();
|
||||
EntityOcelot entityocelot;
|
||||
|
||||
do
|
||||
{
|
||||
if (!iterator.hasNext())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
Entity entity = (Entity)iterator.next();
|
||||
entityocelot = (EntityOcelot)entity;
|
||||
}
|
||||
while (!entityocelot.isSitting());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//Erzeugt ein neues Tileentity
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_)
|
||||
{
|
||||
TileEntityTestContainer tileentitychest = new TileEntityTestContainer();
|
||||
return tileentitychest;
|
||||
}
|
||||
|
||||
//Registriert das Inventaricon
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerBlockIcons(IIconRegister p_149651_1_)
|
||||
{
|
||||
this.blockIcon = p_149651_1_.registerIcon(RefStrings.MODID + ":test_container");
|
||||
}
|
||||
}
|
||||
@ -8,6 +8,9 @@ import java.util.Map.Entry;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.entity.effect.EntityNukeCloudSmall;
|
||||
import com.hbm.main.MainRegistry;
|
||||
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.enchantment.EnchantmentProtection;
|
||||
@ -395,10 +398,8 @@ public class TestEventTester extends Block {
|
||||
ex.doExplosionB(false);
|
||||
}*/
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
|
||||
worldObj.spawnEntityInWorld(EntityNukeCloudSmall.statFacBale(worldObj, par2, par3 + 5, par4, 100, 0));
|
||||
}
|
||||
|
||||
FMLNetworkHandler.openGui(par5EntityPlayer, MainRegistry.instance, -1, par1World, par2, par3, par4);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -1,72 +0,0 @@
|
||||
package com.hbm.blocks.test;
|
||||
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.tileentity.deco.TileEntityRotationTester;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class TestRotationTester extends BlockContainer {
|
||||
|
||||
public TestRotationTester(Material p_i45394_1_) {
|
||||
super(p_i45394_1_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRenderType(){
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock() {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World var1, int var2) {
|
||||
return new TileEntityRotationTester();
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerBlockIcons(IIconRegister iconregister) {
|
||||
this.blockIcon = iconregister.registerIcon(RefStrings.MODID + ":test_render");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) {
|
||||
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
|
||||
|
||||
if(i == 0)
|
||||
{
|
||||
world.setBlockMetadataWithNotify(x, y, z, 2, 2);
|
||||
}
|
||||
if(i == 1)
|
||||
{
|
||||
world.setBlockMetadataWithNotify(x, y, z, 5, 2);
|
||||
}
|
||||
if(i == 2)
|
||||
{
|
||||
world.setBlockMetadataWithNotify(x, y, z, 3, 2);
|
||||
}
|
||||
if(i == 3)
|
||||
{
|
||||
world.setBlockMetadataWithNotify(x, y, z, 4, 2);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,48 +0,0 @@
|
||||
package com.hbm.blocks.test;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.config.GeneralConfig;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class TestTicker extends Block {
|
||||
|
||||
public TestTicker(Material p_i45394_1_) {
|
||||
super(p_i45394_1_);
|
||||
this.setTickRandomly(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateTick(World world, int x, int y, int z, Random rand) {
|
||||
|
||||
if(GeneralConfig.enableVirus) {
|
||||
if(world.getBlock(x + 1, y, z) != ModBlocks.test_ticker) {
|
||||
world.setBlock(x + 1, y, z, ModBlocks.test_ticker);
|
||||
}
|
||||
|
||||
if(world.getBlock(x, y + 1, z) != ModBlocks.test_ticker) {
|
||||
world.setBlock(x, y + 1, z, ModBlocks.test_ticker);
|
||||
}
|
||||
|
||||
if(world.getBlock(x, y, z + 1) != ModBlocks.test_ticker) {
|
||||
world.setBlock(x, y, z + 1, ModBlocks.test_ticker);
|
||||
}
|
||||
|
||||
if(world.getBlock(x - 1, y, z) != ModBlocks.test_ticker) {
|
||||
world.setBlock(x - 1, y, z, ModBlocks.test_ticker);
|
||||
}
|
||||
|
||||
if(world.getBlock(x, y - 1, z) != ModBlocks.test_ticker) {
|
||||
world.setBlock(x, y - 1, z, ModBlocks.test_ticker);
|
||||
}
|
||||
|
||||
if(world.getBlock(x, y, z - 1) != ModBlocks.test_ticker) {
|
||||
world.setBlock(x, y, z - 1, ModBlocks.test_ticker);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -20,8 +20,7 @@ public class TurretArty extends BlockDummyable {
|
||||
|
||||
if(meta >= 12)
|
||||
return new TileEntityTurretArty();
|
||||
|
||||
return new TileEntityProxyCombo(true, true, false);
|
||||
return new TileEntityProxyCombo().inventory().power();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -22,7 +22,7 @@ public class TurretBrandon extends TurretBaseNT {
|
||||
|
||||
if(meta >= 12)
|
||||
return new TileEntityTurretBrandon();
|
||||
return new TileEntityProxyCombo(true, true, false);
|
||||
return new TileEntityProxyCombo().inventory().power();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -26,10 +26,7 @@ public class TurretChekhov extends BlockDummyable {
|
||||
if(meta >= 12)
|
||||
return new TileEntityTurretChekhov();
|
||||
|
||||
if(meta >= 6)
|
||||
return new TileEntityProxyCombo(true, true, false);
|
||||
|
||||
return null;
|
||||
return new TileEntityProxyCombo().inventory().power();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -25,7 +25,7 @@ public class TurretFriendly extends BlockDummyable {
|
||||
|
||||
if(meta >= 12)
|
||||
return new TileEntityTurretFriendly();
|
||||
return new TileEntityProxyCombo(true, true, false);
|
||||
return new TileEntityProxyCombo().inventory().power();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -22,7 +22,7 @@ public class TurretFritz extends TurretBaseNT {
|
||||
|
||||
if(meta >= 12)
|
||||
return new TileEntityTurretFritz();
|
||||
return new TileEntityProxyCombo(true, true, true);
|
||||
return new TileEntityProxyCombo().inventory().power().fluid();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -20,8 +20,7 @@ public class TurretHIMARS extends BlockDummyable {
|
||||
|
||||
if(meta >= 12)
|
||||
return new TileEntityTurretHIMARS();
|
||||
|
||||
return new TileEntityProxyCombo(true, true, false);
|
||||
return new TileEntityProxyCombo().inventory().power();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -25,7 +25,7 @@ public class TurretHoward extends BlockDummyable {
|
||||
|
||||
if(meta >= 12)
|
||||
return new TileEntityTurretHoward();
|
||||
return new TileEntityProxyCombo(true, true, false);
|
||||
return new TileEntityProxyCombo().inventory().power();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -25,7 +25,7 @@ public class TurretJeremy extends BlockDummyable {
|
||||
|
||||
if(meta >= 12)
|
||||
return new TileEntityTurretJeremy();
|
||||
return new TileEntityProxyCombo(true, true, false);
|
||||
return new TileEntityProxyCombo().inventory().power();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -22,7 +22,7 @@ public class TurretMaxwell extends TurretBaseNT {
|
||||
|
||||
if(meta >= 12)
|
||||
return new TileEntityTurretMaxwell();
|
||||
return new TileEntityProxyCombo(true, true, false);
|
||||
return new TileEntityProxyCombo().inventory().power();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -25,7 +25,7 @@ public class TurretRichard extends BlockDummyable {
|
||||
|
||||
if(meta >= 12)
|
||||
return new TileEntityTurretRichard();
|
||||
return new TileEntityProxyCombo(true, true, false);
|
||||
return new TileEntityProxyCombo().inventory().power();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
37
src/main/java/com/hbm/commands/CommandReloadRecipes.java
Normal file
37
src/main/java/com/hbm/commands/CommandReloadRecipes.java
Normal file
@ -0,0 +1,37 @@
|
||||
package com.hbm.commands;
|
||||
|
||||
import com.hbm.inventory.recipes.loader.SerializableRecipe;
|
||||
import com.hbm.util.ChatBuilder;
|
||||
|
||||
import net.minecraft.command.CommandBase;
|
||||
import net.minecraft.command.ICommandSender;
|
||||
import net.minecraft.util.ChatComponentText;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
|
||||
public class CommandReloadRecipes extends CommandBase {
|
||||
|
||||
@Override
|
||||
public String getCommandName() {
|
||||
return "ntmreload";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCommandUsage(ICommandSender sender) {
|
||||
return "/ntmreload";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processCommand(ICommandSender sender, String[] args) {
|
||||
try {
|
||||
SerializableRecipe.initialize();
|
||||
sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Reload complete :)"));
|
||||
} catch(Exception ex) {
|
||||
sender.addChatMessage(ChatBuilder.start("----------------------------------").color(EnumChatFormatting.GRAY).flush());
|
||||
sender.addChatMessage(ChatBuilder.start("An error has occoured during loading, consult the log for details.").color(EnumChatFormatting.RED).flush());
|
||||
sender.addChatMessage(ChatBuilder.start(ex.getLocalizedMessage()).color(EnumChatFormatting.RED).flush());
|
||||
sender.addChatMessage(ChatBuilder.start(ex.getStackTrace()[0].toString()).color(EnumChatFormatting.RED).flush());
|
||||
sender.addChatMessage(ChatBuilder.start("----------------------------------").color(EnumChatFormatting.GRAY).flush());
|
||||
throw ex;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -21,6 +21,7 @@ public class CommonConfig {
|
||||
public static final String CATEGORY_MOBS = "12_mobs";
|
||||
public static final String CATEGORY_RADIATION = "13_radiation";
|
||||
public static final String CATEGORY_HAZARD = "14_hazard";
|
||||
public static final String CATEGORY_STRUCTURES = "15_structures";
|
||||
|
||||
public static final String CATEGORY_528 = "528";
|
||||
public static final String CATEGORY_LBSM = "LESS BULLSHIT MODE";
|
||||
|
||||
@ -104,10 +104,6 @@ public class FalloutConfigJSON {
|
||||
entries.add(new FalloutEntry()
|
||||
.mB(Blocks.mossy_cobblestone)
|
||||
.prim(new Triplet(Blocks.coal_ore, 0, 1)));
|
||||
entries.add(new FalloutEntry()
|
||||
.mB(Blocks.coal_ore)
|
||||
.prim(new Triplet(Blocks.diamond_ore, 0, 3), new Triplet(Blocks.emerald_ore, 0, 2))
|
||||
.c(0.2));
|
||||
entries.add(new FalloutEntry()
|
||||
.mB(Blocks.coal_ore)
|
||||
.prim(new Triplet(Blocks.diamond_ore, 0, 3), new Triplet(Blocks.emerald_ore, 0, 2))
|
||||
|
||||
@ -4,6 +4,8 @@ import net.minecraftforge.common.config.Configuration;
|
||||
|
||||
public class GeneralConfig {
|
||||
|
||||
public static boolean enableThermosPreventer = true;
|
||||
|
||||
public static boolean enableDebugMode = true;
|
||||
public static boolean enableMycelium = false;
|
||||
public static boolean enablePlutoniumOre = false;
|
||||
@ -12,7 +14,6 @@ public class GeneralConfig {
|
||||
public static boolean enableMines = true;
|
||||
public static boolean enableRad = true;
|
||||
public static boolean enableNITAN = true;
|
||||
public static boolean enableNukeClouds = true;
|
||||
public static boolean enableBomberShortMode = false;
|
||||
public static boolean enableVaults = true;
|
||||
public static boolean enableCataclysm = false;
|
||||
@ -25,6 +26,7 @@ public class GeneralConfig {
|
||||
public static boolean enableRenderDistCheck = true;
|
||||
public static boolean enableCustomDashKeybind = false;
|
||||
public static boolean enableReEval = true;
|
||||
public static boolean enableSilentCompStackErrors = true;
|
||||
public static int hintPos = 0;
|
||||
|
||||
public static boolean enable528 = false;
|
||||
@ -53,29 +55,30 @@ public class GeneralConfig {
|
||||
public static void loadFromConfig(Configuration config) {
|
||||
|
||||
final String CATEGORY_GENERAL = CommonConfig.CATEGORY_GENERAL;
|
||||
enableDebugMode = config.get(CATEGORY_GENERAL, "1.00_enableDebugMode", false).getBoolean(false);
|
||||
enableMycelium = config.get(CATEGORY_GENERAL, "1.01_enableMyceliumSpread", false).getBoolean(false);
|
||||
enablePlutoniumOre = config.get(CATEGORY_GENERAL, "1.02_enablePlutoniumNetherOre", false).getBoolean(false);
|
||||
enableDungeons = config.get(CATEGORY_GENERAL, "1.03_enableDungeonSpawn", true).getBoolean(true);
|
||||
enableMDOres = config.get(CATEGORY_GENERAL, "1.04_enableOresInModdedDimensions", true).getBoolean(true);
|
||||
enableMines = config.get(CATEGORY_GENERAL, "1.05_enableLandmineSpawn", true).getBoolean(true);
|
||||
enableRad = config.get(CATEGORY_GENERAL, "1.06_enableRadHotspotSpawn", true).getBoolean(true);
|
||||
enableNITAN = config.get(CATEGORY_GENERAL, "1.07_enableNITANChestSpawn", true).getBoolean(true);
|
||||
enableNukeClouds = config.get(CATEGORY_GENERAL, "1.08_enableMushroomClouds", true).getBoolean(true);
|
||||
enableBomberShortMode = config.get(CATEGORY_GENERAL, "1.14_enableBomberShortMode", false).getBoolean(false);
|
||||
enableVaults = config.get(CATEGORY_GENERAL, "1.15_enableVaultSpawn", true).getBoolean(true);
|
||||
enableCataclysm = config.get(CATEGORY_GENERAL, "1.17_enableCataclysm", false).getBoolean(false);
|
||||
enableExtendedLogging = config.get(CATEGORY_GENERAL, "1.18_enableExtendedLogging", false).getBoolean(false);
|
||||
enableHardcoreTaint = config.get(CATEGORY_GENERAL, "1.19_enableHardcoreTaint", false).getBoolean(false);
|
||||
enableGuns = config.get(CATEGORY_GENERAL, "1.20_enableGuns", true).getBoolean(true);
|
||||
enableVirus = config.get(CATEGORY_GENERAL, "1.21_enableVirus", false).getBoolean(false);
|
||||
enableCrosshairs = config.get(CATEGORY_GENERAL, "1.22_enableCrosshairs", true).getBoolean(true);
|
||||
enableReflectorCompat = config.get(CATEGORY_GENERAL, "1.24_enableReflectorCompat", false).getBoolean(false);
|
||||
enableRenderDistCheck = config.get(CATEGORY_GENERAL, "1.25_enableRenderDistCheck", true).getBoolean(true);
|
||||
enableCustomDashKeybind = config.get(CATEGORY_GENERAL, "1.26_enableCustomDashKeybind", false).getBoolean(false);
|
||||
enableReEval = config.get(CATEGORY_GENERAL, "1.27_enableReEval", true).getBoolean(true);
|
||||
enableThermosPreventer = config.get(CATEGORY_GENERAL, "0.00_crashOnThermos", true, "When set to true, will prevent the mod to launch on Thermos servers. Only disable this if you understand what \"tileentities.yml\" is, and how it severely cripples the mod.").getBoolean(true);
|
||||
enableDebugMode = config.get(CATEGORY_GENERAL, "1.00_enableDebugMode", false, "Enable debugging mode").getBoolean(false);
|
||||
enableMycelium = config.get(CATEGORY_GENERAL, "1.01_enableMyceliumSpread", false, "Allows glowing mycelium to spread").getBoolean(false);
|
||||
enablePlutoniumOre = config.get(CATEGORY_GENERAL, "1.02_enablePlutoniumNetherOre", false, "Enables plutonium ore generation in the nether").getBoolean(false);
|
||||
enableDungeons = config.get(CATEGORY_GENERAL, "1.03_enableDungeonSpawn", true, "Allows structures and dungeons to spawn").getBoolean(true);
|
||||
enableMDOres = config.get(CATEGORY_GENERAL, "1.04_enableOresInModdedDimensions", true, "Allows NTM ores to generate in modded dimensions").getBoolean(true);
|
||||
enableMines = config.get(CATEGORY_GENERAL, "1.05_enableLandmineSpawn", true, "Allows landmines to generate").getBoolean(true);
|
||||
enableRad = config.get(CATEGORY_GENERAL, "1.06_enableRadHotspotSpawn", true, "Allows radiation hotspots to generate").getBoolean(true);
|
||||
enableNITAN = config.get(CATEGORY_GENERAL, "1.07_enableNITANChestSpawn", true, "Allows chests to spawn at specific coordinates full of powders").getBoolean(true);
|
||||
enableBomberShortMode = config.get(CATEGORY_GENERAL, "1.14_enableBomberShortMode", false, "Has bomber planes spawn in closer to the target for use with smaller render distances").getBoolean(false);
|
||||
enableVaults = config.get(CATEGORY_GENERAL, "1.15_enableVaultSpawn", true, "Allows locked safes to spawn").getBoolean(true);
|
||||
enableCataclysm = config.get(CATEGORY_GENERAL, "1.17_enableCataclysm", false, "Causes satellites to fall whenever a mob dies").getBoolean(false);
|
||||
enableExtendedLogging = config.get(CATEGORY_GENERAL, "1.18_enableExtendedLogging", false, "Logs uses of the detonator, nuclear explosions, missile launches, grenades, etc.").getBoolean(false);
|
||||
enableHardcoreTaint = config.get(CATEGORY_GENERAL, "1.19_enableHardcoreTaint", false, "Allows tainted mobs to spread taint").getBoolean(false);
|
||||
enableGuns = config.get(CATEGORY_GENERAL, "1.20_enableGuns", true, "Prevents new system guns to be fired").getBoolean(true);
|
||||
enableVirus = config.get(CATEGORY_GENERAL, "1.21_enableVirus", false, "Allows virus blocks to spread").getBoolean(false);
|
||||
enableCrosshairs = config.get(CATEGORY_GENERAL, "1.22_enableCrosshairs", true, "Shows custom crosshairs when an NTM gun is being held").getBoolean(true);
|
||||
enableReflectorCompat = config.get(CATEGORY_GENERAL, "1.24_enableReflectorCompat", false, "Enable old reflector oredict name (\"plateDenseLead\") instead of new \"plateTungCar\"").getBoolean(false);
|
||||
enableRenderDistCheck = config.get(CATEGORY_GENERAL, "1.25_enableRenderDistCheck", true, "Check invalid render distances (over 16, without OptiFine) and fix it").getBoolean(true);
|
||||
enableCustomDashKeybind = config.get(CATEGORY_GENERAL, "1.26_enableCustomDashKeybind", false, "Enable custom dash keybind instead of shift").getBoolean(false);
|
||||
enableReEval = config.get(CATEGORY_GENERAL, "1.27_enableReEval", true, "Allows re-evaluating power networks on link remove instead of destroying and recreating").getBoolean(true);
|
||||
enableSilentCompStackErrors = config.get(CATEGORY_GENERAL, "1.28_enableSilentCompStackErrors", false, "Enabling this will disable log spam created by unregistered items in ComparableStack instances.").getBoolean(false);
|
||||
|
||||
hintPos = CommonConfig.createConfigInt(config, CATEGORY_GENERAL, "1.27_hudOverlayPosition", "0: Top left\n1: Top right\n2: Center right\n3: Center Left", 0);
|
||||
hintPos = CommonConfig.createConfigInt(config, CATEGORY_GENERAL, "1.29_hudOverlayPosition", "0: Top left\n1: Top right\n2: Center right\n3: Center Left", 0);
|
||||
|
||||
final String CATEGORY_528 = CommonConfig.CATEGORY_528;
|
||||
|
||||
|
||||
37
src/main/java/com/hbm/config/StructureConfig.java
Normal file
37
src/main/java/com/hbm/config/StructureConfig.java
Normal file
@ -0,0 +1,37 @@
|
||||
package com.hbm.config;
|
||||
|
||||
import com.hbm.main.MainRegistry;
|
||||
|
||||
import net.minecraftforge.common.config.Configuration;
|
||||
|
||||
public class StructureConfig {
|
||||
|
||||
public static boolean enableStructures = true;
|
||||
|
||||
public static int structureMinChunks = 8;
|
||||
public static int structureMaxChunks = 24;
|
||||
|
||||
public static double lootAmountFactor = 1D;
|
||||
|
||||
public static void loadFromConfig(Configuration config) {
|
||||
|
||||
final String CATEGORY_STRUCTURES = CommonConfig.CATEGORY_STRUCTURES;
|
||||
enableStructures = CommonConfig.createConfigBool(config, CATEGORY_STRUCTURES, "5.00_enableStructures", "Switch for whether structures using the MapGenStructure system spawn.", true);
|
||||
|
||||
structureMinChunks = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.01_structureMinChunks", "Minimum non-zero distance between structures in chunks (Settings lower than 8 may be problematic).", 8);
|
||||
structureMaxChunks = CommonConfig.createConfigInt(config, CATEGORY_STRUCTURES, "5.02_structureMaxChunks", "Maximum non-zero distance between structures in chunks.", 24);
|
||||
|
||||
lootAmountFactor = CommonConfig.createConfigDouble(config, CATEGORY_STRUCTURES, "5.03_lootAmountFactor", "General factor for loot spawns. Applies to spawned IInventories, not loot blocks.", 1D);
|
||||
|
||||
structureMinChunks = CommonConfig.setDef(structureMinChunks, 8);
|
||||
structureMaxChunks = CommonConfig.setDef(structureMaxChunks, 24);
|
||||
|
||||
if(structureMinChunks > structureMaxChunks) {
|
||||
MainRegistry.logger.error("Fatal error config: Minimum value has been set higher than the maximum value!");
|
||||
MainRegistry.logger.error(String.format("Errored values will default back to %1$d and %2$d respectively, PLEASE REVIEW CONFIGURATION DESCRIPTION BEFORE MEDDLING WITH VALUES!", 8, 24));
|
||||
structureMinChunks = 8;
|
||||
structureMaxChunks = 24;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -26,15 +26,15 @@ public class ToolConfig {
|
||||
recursiveStone = CommonConfig.createConfigBool(config, CATEGORY_TOOLS, "11.01_recursionStone", "Determines whether veinminer can break stone", false);
|
||||
recursiveNetherrack = CommonConfig.createConfigBool(config, CATEGORY_TOOLS, "11.02_recursionNetherrack", "Determines whether veinminer can break netherrack", false);
|
||||
|
||||
abilityHammer = config.get(CATEGORY_TOOLS, "11.03_hammerAbility", true).getBoolean(true);
|
||||
abilityVein = config.get(CATEGORY_TOOLS, "11.04_abilityVein", true).getBoolean(true);
|
||||
abilityLuck = config.get(CATEGORY_TOOLS, "11.05_abilityLuck", true).getBoolean(true);
|
||||
abilitySilk = config.get(CATEGORY_TOOLS, "11.06_abilitySilk", true).getBoolean(true);
|
||||
abilityFurnace = config.get(CATEGORY_TOOLS, "11.07_abilityFurnace", true).getBoolean(true);
|
||||
abilityShredder = config.get(CATEGORY_TOOLS, "11.08_abilityShredder", true).getBoolean(true);
|
||||
abilityCentrifuge = config.get(CATEGORY_TOOLS, "11.09_abilityCentrifuge", true).getBoolean(true);
|
||||
abilityCrystallizer = config.get(CATEGORY_TOOLS, "11.10_abilityCrystallizer", true).getBoolean(true);
|
||||
abilityMercury = config.get(CATEGORY_TOOLS, "11.11_abilityMercury", true).getBoolean(true);
|
||||
abilityExplosion = config.get(CATEGORY_TOOLS, "11.12_abilityExplosion", true).getBoolean(true);
|
||||
abilityHammer = config.get(CATEGORY_TOOLS, "11.03_hammerAbility", true, "Allows AoE ability").getBoolean(true);
|
||||
abilityVein = config.get(CATEGORY_TOOLS, "11.04_abilityVein", true, "Allows veinminer ability").getBoolean(true);
|
||||
abilityLuck = config.get(CATEGORY_TOOLS, "11.05_abilityLuck", true, "Allow luck (fortune) ability").getBoolean(true);
|
||||
abilitySilk = config.get(CATEGORY_TOOLS, "11.06_abilitySilk", true, "Allow silk touch ability").getBoolean(true);
|
||||
abilityFurnace = config.get(CATEGORY_TOOLS, "11.07_abilityFurnace", true, "Allow auto-smelter ability").getBoolean(true);
|
||||
abilityShredder = config.get(CATEGORY_TOOLS, "11.08_abilityShredder", true, "Allow auto-shredder ability").getBoolean(true);
|
||||
abilityCentrifuge = config.get(CATEGORY_TOOLS, "11.09_abilityCentrifuge", true, "Allow auto-centrifuge ability").getBoolean(true);
|
||||
abilityCrystallizer = config.get(CATEGORY_TOOLS, "11.10_abilityCrystallizer", true, "Allow auto-crystallizer ability").getBoolean(true);
|
||||
abilityMercury = config.get(CATEGORY_TOOLS, "11.11_abilityMercury", true, "Allow mercury touch ability (digging redstone gives mercury)").getBoolean(true);
|
||||
abilityExplosion = config.get(CATEGORY_TOOLS, "11.12_abilityExplosion", true, "Allow explosion ability").getBoolean(true);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package com.hbm.config;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.potion.HbmPotion;
|
||||
|
||||
@ -33,7 +35,9 @@ public class VersatileConfig {
|
||||
if(PotionConfig.potionSickness == 2)
|
||||
duration *= 12;
|
||||
|
||||
entity.addPotionEffect(new PotionEffect(HbmPotion.potionsickness.id, duration * 20));
|
||||
PotionEffect eff = new PotionEffect(HbmPotion.potionsickness.id, duration * 20);
|
||||
eff.setCurativeItems(new ArrayList());
|
||||
entity.addPotionEffect(eff);
|
||||
}
|
||||
|
||||
public static boolean hasPotionSickness(EntityLivingBase entity) {
|
||||
|
||||
@ -5,6 +5,8 @@ import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemRTGPelletDepleted.DepletedRTGMaterial;
|
||||
import com.hbm.items.special.ItemWasteLong;
|
||||
import com.hbm.items.special.ItemWasteShort;
|
||||
import com.hbm.main.CraftingManager;
|
||||
|
||||
import static com.hbm.inventory.OreDictManager.*;
|
||||
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
@ -95,17 +97,17 @@ public class MineralRecipes {
|
||||
|
||||
addBillet(ModItems.billet_cobalt, ModItems.ingot_cobalt, ModItems.nugget_cobalt);
|
||||
addBillet(ModItems.billet_co60, ModItems.ingot_co60, ModItems.nugget_co60);
|
||||
addBillet(ModItems.billet_sr90, ModItems.ingot_sr90, ModItems.nugget_sr90, "nuggetStrontium90", "tinySr90");
|
||||
addBillet(ModItems.billet_uranium, ModItems.ingot_uranium, ModItems.nugget_uranium, "nuggetUranium");
|
||||
addBillet(ModItems.billet_u233, ModItems.ingot_u233, ModItems.nugget_u233, "nuggetUranium233", "tinyU233");
|
||||
addBillet(ModItems.billet_u235, ModItems.ingot_u235, ModItems.nugget_u235, "nuggetUranium235", "tinyU235");
|
||||
addBillet(ModItems.billet_u238, ModItems.ingot_u238, ModItems.nugget_u238, "nuggetUranium238", "tinyU238");
|
||||
addBillet(ModItems.billet_th232, ModItems.ingot_th232, ModItems.nugget_th232, "nuggetThorium232", "tinyTh232");
|
||||
addBillet(ModItems.billet_plutonium, ModItems.ingot_plutonium, ModItems.nugget_plutonium, "nuggetPlutonium");
|
||||
addBillet(ModItems.billet_pu238, ModItems.ingot_pu238, ModItems.nugget_pu238, "nuggetPlutonium238", "tinyPu238");
|
||||
addBillet(ModItems.billet_pu239, ModItems.ingot_pu239, ModItems.nugget_pu239, "nuggetPlutonium239", "tinyPu239");
|
||||
addBillet(ModItems.billet_pu240, ModItems.ingot_pu240, ModItems.nugget_pu240, "nuggetPlutonium240", "tinyPu240");
|
||||
addBillet(ModItems.billet_pu241, ModItems.ingot_pu241, ModItems.nugget_pu241, "nuggetPlutonium241", "tinyPu241");
|
||||
addBillet(ModItems.billet_sr90, ModItems.ingot_sr90, ModItems.nugget_sr90, SR90.allNuggets());
|
||||
addBillet(ModItems.billet_uranium, ModItems.ingot_uranium, ModItems.nugget_uranium, U.allNuggets());
|
||||
addBillet(ModItems.billet_u233, ModItems.ingot_u233, ModItems.nugget_u233, U233.allNuggets());
|
||||
addBillet(ModItems.billet_u235, ModItems.ingot_u235, ModItems.nugget_u235, U235.allNuggets());
|
||||
addBillet(ModItems.billet_u238, ModItems.ingot_u238, ModItems.nugget_u238, U238.allNuggets());
|
||||
addBillet(ModItems.billet_th232, ModItems.ingot_th232, ModItems.nugget_th232, TH232.allNuggets());
|
||||
addBillet(ModItems.billet_plutonium, ModItems.ingot_plutonium, ModItems.nugget_plutonium, PU.allNuggets());
|
||||
addBillet(ModItems.billet_pu238, ModItems.ingot_pu238, ModItems.nugget_pu238, PU238.allNuggets());
|
||||
addBillet(ModItems.billet_pu239, ModItems.ingot_pu239, ModItems.nugget_pu239, PU239.allNuggets());
|
||||
addBillet(ModItems.billet_pu240, ModItems.ingot_pu240, ModItems.nugget_pu240, PU240.allNuggets());
|
||||
addBillet(ModItems.billet_pu241, ModItems.ingot_pu241, ModItems.nugget_pu241, PU241.allNuggets());
|
||||
addBillet(ModItems.billet_pu_mix, ModItems.ingot_pu_mix, ModItems.nugget_pu_mix);
|
||||
addBillet(ModItems.billet_am241, ModItems.ingot_am241, ModItems.nugget_am241, AM241.allNuggets());
|
||||
addBillet(ModItems.billet_am242, ModItems.ingot_am242, ModItems.nugget_am242, AM242.allNuggets());
|
||||
@ -115,8 +117,8 @@ public class MineralRecipes {
|
||||
addBillet(ModItems.billet_technetium, ModItems.ingot_technetium, ModItems.nugget_technetium, TC99.allNuggets());
|
||||
addBillet(ModItems.billet_au198, ModItems.ingot_au198, ModItems.nugget_au198, AU198.allNuggets());
|
||||
addBillet(ModItems.billet_pb209, ModItems.ingot_pb209, ModItems.nugget_pb209, PB209.allNuggets()); //and so forth
|
||||
addBillet(ModItems.billet_ra226, ModItems.ingot_ra226, ModItems.nugget_ra226, "nuggetRa226");
|
||||
addBillet(ModItems.billet_actinium, ModItems.ingot_actinium, ModItems.nugget_actinium, "nuggetActinium227", "tinyAc227");
|
||||
addBillet(ModItems.billet_ra226, ModItems.ingot_ra226, ModItems.nugget_ra226, RA226.allNuggets());
|
||||
addBillet(ModItems.billet_actinium, ModItems.ingot_actinium, ModItems.nugget_actinium, AC227.allNuggets());
|
||||
addBillet(ModItems.billet_schrabidium, ModItems.ingot_schrabidium, ModItems.nugget_schrabidium, "nuggetSchrabidium");
|
||||
addBillet(ModItems.billet_solinium, ModItems.ingot_solinium, ModItems.nugget_solinium, "nuggetSolinium");
|
||||
addBillet(ModItems.billet_gh336, ModItems.ingot_gh336, ModItems.nugget_gh336, GH336.allNuggets());
|
||||
@ -432,6 +434,8 @@ public class MineralRecipes {
|
||||
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_pu_mix, 1), new Object[] { "tinyPu239", "tinyPu239", "tinyPu239", "tinyPu239", "tinyPu239", "tinyPu239", "tinyPu240", "tinyPu240", "tinyPu240" }));
|
||||
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_am_mix, 1), new Object[] { "nuggetAmericium241", "nuggetAmericium241", "nuggetAmericium241", "nuggetAmericium242", "nuggetAmericium242", "nuggetAmericium242", "nuggetAmericium242", "nuggetAmericium242", "nuggetAmericium242" }));
|
||||
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_am_mix, 1), new Object[] { "tinyAm241", "tinyAm241", "tinyAm241", "tinyAm242", "tinyAm242", "tinyAm242", "tinyAm242", "tinyAm242", "tinyAm242" }));
|
||||
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.ball_fireclay, 4), new Object[] { Items.clay_ball, Items.clay_ball, Items.clay_ball, AL.dust() });
|
||||
}
|
||||
|
||||
//Bundled 1/9 recipes
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user