mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
eternal fire in 528 mode, more pile stuff
This commit is contained in:
parent
d6f2cd97da
commit
4d435c90ab
6
src/main/java/api/hbm/block/IPileNeutronReceiver.java
Normal file
6
src/main/java/api/hbm/block/IPileNeutronReceiver.java
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
package api.hbm.block;
|
||||||
|
|
||||||
|
public interface IPileNeutronReceiver {
|
||||||
|
|
||||||
|
public void receiveNeutrons(int n);
|
||||||
|
}
|
||||||
@ -1,18 +1,11 @@
|
|||||||
package com.hbm.blocks.machine.pile;
|
package com.hbm.blocks.machine.pile;
|
||||||
|
|
||||||
import com.hbm.blocks.ModBlocks;
|
import com.hbm.blocks.ModBlocks;
|
||||||
import com.hbm.blocks.generic.BlockFlammable;
|
|
||||||
import com.hbm.items.ModItems;
|
import com.hbm.items.ModItems;
|
||||||
import com.hbm.lib.RefStrings;
|
|
||||||
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.material.Material;
|
|
||||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.util.IIcon;
|
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class BlockGraphiteDrilled extends BlockGraphiteDrilledBase {
|
public class BlockGraphiteDrilled extends BlockGraphiteDrilledBase {
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
package com.hbm.blocks.machine.pile;
|
package com.hbm.blocks.machine.pile;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
import com.hbm.blocks.ModBlocks;
|
import com.hbm.blocks.ModBlocks;
|
||||||
@ -11,7 +10,6 @@ import com.hbm.lib.RefStrings;
|
|||||||
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
import net.minecraft.block.material.Material;
|
|
||||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||||
import net.minecraft.entity.item.EntityItem;
|
import net.minecraft.entity.item.EntityItem;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
|
|||||||
@ -2,15 +2,18 @@ package com.hbm.blocks.machine.pile;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import com.hbm.blocks.ModBlocks;
|
||||||
import com.hbm.items.ModItems;
|
import com.hbm.items.ModItems;
|
||||||
import com.hbm.tileentity.machine.pile.TileEntityPileFuel;
|
import com.hbm.tileentity.machine.pile.TileEntityPileFuel;
|
||||||
|
|
||||||
import net.minecraft.block.material.Material;
|
import api.hbm.block.IToolable;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class BlockGraphiteFuel extends BlockGraphiteDrilledTE {
|
public class BlockGraphiteFuel extends BlockGraphiteDrilledTE implements IToolable {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TileEntity createNewTileEntity(World world, int mets) {
|
public TileEntity createNewTileEntity(World world, int mets) {
|
||||||
@ -23,4 +26,23 @@ public class BlockGraphiteFuel extends BlockGraphiteDrilledTE {
|
|||||||
drops.add(new ItemStack(ModItems.pile_rod_uranium)); //TODO: adjust for core progress
|
drops.add(new ItemStack(ModItems.pile_rod_uranium)); //TODO: adjust for core progress
|
||||||
return drops;
|
return drops;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@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) {
|
||||||
|
|
||||||
|
int meta = world.getBlockMetadata(x, y, z) & 3;
|
||||||
|
|
||||||
|
if(side == meta * 2 || side == meta * 2 + 1) {
|
||||||
|
world.setBlock(x, y, z, ModBlocks.block_graphite_drilled, meta, 3);
|
||||||
|
this.ejectItem(world, x, y, z, ForgeDirection.getOrientation(side), new ItemStack(ModItems.pile_rod_uranium));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,7 +9,6 @@ import com.hbm.lib.RefStrings;
|
|||||||
import api.hbm.block.IToolable;
|
import api.hbm.block.IToolable;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
import net.minecraft.block.material.Material;
|
|
||||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
@ -66,17 +65,18 @@ public class BlockGraphiteRod extends BlockGraphiteDrilledBase implements IToola
|
|||||||
|
|
||||||
for(int i = -1; i <= 1; i += 1) {
|
for(int i = -1; i <= 1; i += 1) {
|
||||||
|
|
||||||
int ix = x + dir.offsetX * i;
|
//why is XZ switched? i don't know, man
|
||||||
|
int ix = x + dir.offsetZ * i;
|
||||||
int iy = y + dir.offsetY * i;
|
int iy = y + dir.offsetY * i;
|
||||||
int iz = z + dir.offsetZ * i;
|
int iz = z + dir.offsetX * i;
|
||||||
|
|
||||||
while(world.getBlock(ix, iy, iz) == this && world.getBlockMetadata(ix, iy, iz) == oldMeta) {
|
while(world.getBlock(ix, iy, iz) == this && world.getBlockMetadata(ix, iy, iz) == oldMeta) {
|
||||||
|
|
||||||
world.setBlockMetadataWithNotify(ix, iy, iz, newMeta, 3);
|
world.setBlockMetadataWithNotify(ix, iy, iz, newMeta, 3);
|
||||||
|
|
||||||
ix += dir.offsetX * i;
|
ix += dir.offsetZ * i;
|
||||||
iy += dir.offsetY * i;
|
iy += dir.offsetY * i;
|
||||||
iz += dir.offsetZ * i;
|
iz += dir.offsetX * i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -2,14 +2,18 @@ package com.hbm.blocks.machine.pile;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import com.hbm.blocks.ModBlocks;
|
||||||
import com.hbm.items.ModItems;
|
import com.hbm.items.ModItems;
|
||||||
import com.hbm.tileentity.machine.pile.TileEntityPileSource;
|
import com.hbm.tileentity.machine.pile.TileEntityPileSource;
|
||||||
|
|
||||||
|
import api.hbm.block.IToolable;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class BlockGraphiteSource extends BlockGraphiteDrilledTE {
|
public class BlockGraphiteSource extends BlockGraphiteDrilledTE implements IToolable {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TileEntity createNewTileEntity(World world, int mets) {
|
public TileEntity createNewTileEntity(World world, int mets) {
|
||||||
@ -22,4 +26,23 @@ public class BlockGraphiteSource extends BlockGraphiteDrilledTE {
|
|||||||
drops.add(new ItemStack(ModItems.pile_rod_source));
|
drops.add(new ItemStack(ModItems.pile_rod_source));
|
||||||
return drops;
|
return drops;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@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) {
|
||||||
|
|
||||||
|
int meta = world.getBlockMetadata(x, y, z) & 3;
|
||||||
|
|
||||||
|
if(side == meta * 2 || side == meta * 2 + 1) {
|
||||||
|
world.setBlock(x, y, z, ModBlocks.block_graphite_drilled, meta, 3);
|
||||||
|
this.ejectItem(world, x, y, z, ForgeDirection.getOrientation(side), new ItemStack(ModItems.pile_rod_source));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
|
import com.hbm.config.GeneralConfig;
|
||||||
import com.hbm.config.RadiationConfig;
|
import com.hbm.config.RadiationConfig;
|
||||||
import com.hbm.explosion.ExplosionNukeSmall;
|
import com.hbm.explosion.ExplosionNukeSmall;
|
||||||
import com.hbm.extprop.HbmLivingProps;
|
import com.hbm.extprop.HbmLivingProps;
|
||||||
@ -67,6 +68,10 @@ public class EntityEffectHandler {
|
|||||||
handleContagion(entity);
|
handleContagion(entity);
|
||||||
handleRadiation(entity);
|
handleRadiation(entity);
|
||||||
handleDigamma(entity);
|
handleDigamma(entity);
|
||||||
|
|
||||||
|
if(GeneralConfig.enable528 && entity instanceof EntityLivingBase && !entity.isImmuneToFire() && entity.worldObj.provider.isHellWorld) {
|
||||||
|
entity.setFire(5);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void handleContamination(EntityLivingBase entity) {
|
private static void handleContamination(EntityLivingBase entity) {
|
||||||
|
|||||||
@ -1,7 +1,62 @@
|
|||||||
package com.hbm.tileentity.machine.pile;
|
package com.hbm.tileentity.machine.pile;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
import com.hbm.blocks.ModBlocks;
|
||||||
|
|
||||||
|
import api.hbm.block.IPileNeutronReceiver;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.util.Vec3;
|
||||||
|
|
||||||
public abstract class TileEntityPileBase extends TileEntity {
|
public abstract class TileEntityPileBase extends TileEntity {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateEntity() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void castRay(int flux, int range) {
|
||||||
|
|
||||||
|
Random rand = worldObj.rand;
|
||||||
|
Vec3 vec = Vec3.createVectorHelper(1, 0, 0);
|
||||||
|
vec.rotateAroundZ((float)(rand.nextDouble() * Math.PI * 2D));
|
||||||
|
vec.rotateAroundY((float)(rand.nextDouble() * Math.PI * 2D));
|
||||||
|
|
||||||
|
int prevX = xCoord;
|
||||||
|
int prevY = yCoord;
|
||||||
|
int prevZ = zCoord;
|
||||||
|
|
||||||
|
for(float i = 1; i <= range; i += 0.5F) {
|
||||||
|
|
||||||
|
int x = (int)Math.floor(xCoord + 0.5 + vec.xCoord * i);
|
||||||
|
int y = (int)Math.floor(yCoord + 0.5 + vec.yCoord * i);
|
||||||
|
int z = (int)Math.floor(zCoord + 0.5 + vec.zCoord * i);
|
||||||
|
|
||||||
|
if(x == prevX && y == prevY && z == prevZ)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
prevX = x;
|
||||||
|
prevY = y;
|
||||||
|
prevZ = z;
|
||||||
|
|
||||||
|
Block b = worldObj.getBlock(x, y, z);
|
||||||
|
|
||||||
|
if(b == ModBlocks.block_boron)
|
||||||
|
return;
|
||||||
|
|
||||||
|
int meta = worldObj.getBlockMetadata(x, y, z);
|
||||||
|
|
||||||
|
if(b == ModBlocks.block_graphite_rod && (meta & 4) == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
TileEntity te = worldObj.getTileEntity(x, y, z);
|
||||||
|
|
||||||
|
if(te instanceof IPileNeutronReceiver) {
|
||||||
|
IPileNeutronReceiver rec = (IPileNeutronReceiver) te;
|
||||||
|
rec.receiveNeutrons(flux);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user