mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
Fixes
This commit is contained in:
parent
4ad1dcea73
commit
fbd9347fb8
41
changelog
41
changelog
@ -1,39 +1,8 @@
|
||||
## Added
|
||||
* Large Radar
|
||||
* A giant version of the radar with 3x the scan range
|
||||
* Strand caster
|
||||
* Watercooled foundry basin that processes large amounts of material at once
|
||||
|
||||
## Changed
|
||||
* Nuclear craters have been reworked
|
||||
* The fallout effect no longer creates dead grass, instead it converts the area into three new biomes, the outer crater, crater and inner crater
|
||||
* The entire crater is now slaked sellafite which now has texture variance to look more like debris, as well as getting darker towards the center
|
||||
* The biomes being overridden means that nukes are now a solution to thaumcraft taint. Yay!
|
||||
* There are now new ore variants for the block conversions which match the surrounding sellafite
|
||||
* Beryllium ore now has a 100% chance of being converted into emerald
|
||||
* The watz now cools up to 20% of its current heat level instead of 10%, making reactors a lot cooler and therefore react faster, which means more energy and faster depletion rates
|
||||
* Mud production rates have been halved, to prevent currently working setups from exploding instantly
|
||||
* This is your reminder that you can achieve more power, mud and depletion by building larger watz powerplants, i.e. stacking more watz segments on top of each other. Your tiny poo reactors make me sick.
|
||||
* Watz pellets now have a 50% smaller yield, halving the expected time until depletion
|
||||
* Adjusted the nuclear flash's intensity, the flash will now deal less and less radiation the longer it goes on
|
||||
* The nuclear flash now bypasses radiation resistance, being only affected by blocks and distance
|
||||
* Mushroom clouds' initial scale is now based on the total scale instead of all spawning roughly at the same size, causing fireballs to be comically small for huge bombs
|
||||
* Removed the old mining drill, combustion generator, old watz core, structure marker, all old large reactor parts and CMB furnace for good
|
||||
* Chemical plants will now eject all their outputs within a single tick if possible, increasing the throughput of fast recipes with many outputs, like asphalt
|
||||
* Hitting CTRL + ALT when hovering over an item now displays a preview of that item. Useful if you want to get authentic renders for a wiki, or just like staring at things.
|
||||
* 256k tanks and BAT9000s can now output comparator signals from their fluid ports
|
||||
* Trenchmaster general damage multiplier has been halved, making it twice as strong
|
||||
* Updated generation rules for layers like schist and hematite, they will now only replace things tagged as stone, just like most ores
|
||||
* Mushroom clouds now have two additional outer condensation rings, those are not entirely finished and are still subject to change
|
||||
* Small radars are now a lot cheaper
|
||||
* Increased crucible pouring speed by 50%
|
||||
* there is now a config option to disable the biome change caused by fallout. The config will also determine whether the biomes are registered at all, which prevents them from conflicting with other mods' biomes when disabled.
|
||||
|
||||
## Fixed
|
||||
* Fixed a rare crash caused by radars force-loading chunks conflicting with certain mods' chunk loading changes
|
||||
* Fixed PWR fuel rods not having any radiation value assigned to them
|
||||
* Fixed trenchmaster helmet not having gas mask protection
|
||||
* Fixed large thermobaric artillery rocket still using the wrong slag block
|
||||
* Fixed some of the assembly templates having broken names due to using the wrong way of translating the output
|
||||
* Fixed the soyuz launcher's NEI construction recipe showing the wrong amount of blocks
|
||||
* Fixed molten meteorite cobble dropping itself in addition to turning into lava
|
||||
* Fixed S~Cola RAD not being radish-colored
|
||||
* Fixed trenchmaster armor not doing most of the armor calculation, making it the worst armor
|
||||
* Fixed glowing mushrooms not being able to be bonemealed
|
||||
* Fixed strand caster having one port that does not work with certain rotations
|
||||
* Fixed fallout being able to replace bedrock
|
||||
|
||||
@ -10,12 +10,8 @@ import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemMold;
|
||||
import com.hbm.items.machine.ItemScraps;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
import com.hbm.tileentity.machine.TileEntityCrucible;
|
||||
import com.hbm.tileentity.machine.TileEntityFoundryCastingBase;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineStrandCaster;
|
||||
import com.hbm.util.I18nUtil;
|
||||
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.entity.item.EntityItem;
|
||||
@ -30,203 +26,204 @@ import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcceptor, ILookOverlay, IToolable {
|
||||
|
||||
public MachineStrandCaster() {
|
||||
super(Material.iron);
|
||||
}
|
||||
public MachineStrandCaster() {
|
||||
super(Material.iron);
|
||||
}
|
||||
|
||||
//reminder, if the machine is a solid brick, get dimensions will already handle it without the need to use fillSapce
|
||||
//the order is up, down, forward, backward, left, right
|
||||
//x is for left(-)/right(+), z is for forward(+)/backward(-), y you already know
|
||||
@Override
|
||||
public int[] getDimensions() {
|
||||
return new int[]{0, 0, 6, 0, 1, 0};
|
||||
}
|
||||
// reminder, if the machine is a solid brick, get dimensions will already
|
||||
// handle it without the need to use fillSapce
|
||||
// the order is up, down, forward, backward, left, right
|
||||
// x is for left(-)/right(+), z is for forward(+)/backward(-), y you already
|
||||
// know
|
||||
@Override
|
||||
public int[] getDimensions() {
|
||||
return new int[] { 0, 0, 6, 0, 1, 0 };
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOffset() {
|
||||
return 0;
|
||||
}
|
||||
@Override
|
||||
public int getOffset() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
if (meta >= 12) return new TileEntityMachineStrandCaster();
|
||||
if (meta >= 6) return new TileEntityProxyCombo(true, false, true).moltenMetal();
|
||||
return null;
|
||||
}
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
if(meta >= 12) return new TileEntityMachineStrandCaster();
|
||||
if(meta >= 6) return new TileEntityProxyCombo(true, false, true).moltenMetal();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
|
||||
super.fillSpace(world, x, y, z, dir, o);
|
||||
@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 += dir.offsetX * o;
|
||||
z += dir.offsetZ * o;
|
||||
x += dir.offsetX * o;
|
||||
z += dir.offsetZ * o;
|
||||
|
||||
ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
|
||||
ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
|
||||
|
||||
//up,down;forward,backward;left,right
|
||||
MultiblockHandlerXR.fillSpace(world, x, y, z, new int[]{2, 0, 1, 0, 1, 0}, this, dir);
|
||||
//Fluid ports
|
||||
this.makeExtra(world, x + rot.offsetX - dir.offsetX, y, z + rot.offsetZ - dir.offsetZ);
|
||||
this.makeExtra(world, x - dir.offsetX, y, z - dir.offsetZ);
|
||||
this.makeExtra(world, x - dir.offsetX * 5, y, z - dir.offsetZ * 5);
|
||||
this.makeExtra(world, x + rot.offsetX - dir.offsetX * 5, y, z + rot.offsetZ - dir.offsetZ * 5);
|
||||
//Molten slop ports
|
||||
this.makeExtra(world, x + rot.offsetX - dir.offsetX, y + 2, z + rot.offsetZ - dir.offsetZ);
|
||||
this.makeExtra(world, x - dir.offsetX, y + 2, z - dir.offsetZ);
|
||||
this.makeExtra(world, x + rot.offsetX, y + 2, z + rot.offsetZ);
|
||||
this.makeExtra(world, x, y + 2, z);
|
||||
}
|
||||
// up,down;forward,backward;left,right
|
||||
MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] { 2, 0, 1, 0, 1, 0 }, this, dir);
|
||||
// Fluid ports
|
||||
this.makeExtra(world, x + rot.offsetX - dir.offsetX, y, z + rot.offsetZ - dir.offsetZ);
|
||||
this.makeExtra(world, x - dir.offsetX, y, z - dir.offsetZ);
|
||||
this.makeExtra(world, x - dir.offsetX * 5, y, z - dir.offsetZ * 5);
|
||||
this.makeExtra(world, x + rot.offsetX - dir.offsetX * 5, y, z + rot.offsetZ - dir.offsetZ * 5);
|
||||
// Molten slop ports
|
||||
this.makeExtra(world, x + rot.offsetX - dir.offsetX, y + 2, z + rot.offsetZ - dir.offsetZ);
|
||||
this.makeExtra(world, x - dir.offsetX, y + 2, z - dir.offsetZ);
|
||||
this.makeExtra(world, x + rot.offsetX, y + 2, z + rot.offsetZ);
|
||||
this.makeExtra(world, x, y + 2, z);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canAcceptPartialPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, Mats.MaterialStack stack) {
|
||||
@Override
|
||||
public boolean canAcceptPartialPour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, Mats.MaterialStack stack) {
|
||||
|
||||
TileEntity poured = world.getTileEntity(x, y, z);
|
||||
if (!(poured instanceof TileEntityProxyCombo && ((TileEntityProxyCombo) poured).moltenMetal)) return false;
|
||||
TileEntity poured = world.getTileEntity(x, y, z);
|
||||
if(!(poured instanceof TileEntityProxyCombo && ((TileEntityProxyCombo) poured).moltenMetal)) return false;
|
||||
|
||||
int[] pos = this.findCore(world, x, y, z);
|
||||
if (pos == null) return false;
|
||||
TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||
if (!(tile instanceof TileEntityMachineStrandCaster)) return false;
|
||||
TileEntityMachineStrandCaster caster = (TileEntityMachineStrandCaster) tile;
|
||||
int[] pos = this.findCore(world, x, y, z);
|
||||
if(pos == null) return false;
|
||||
TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||
if(!(tile instanceof TileEntityMachineStrandCaster)) return false;
|
||||
TileEntityMachineStrandCaster caster = (TileEntityMachineStrandCaster) tile;
|
||||
|
||||
return caster.canAcceptPartialPour(world, x, y, z, dX, dY, dZ, side, stack);
|
||||
}
|
||||
return caster.canAcceptPartialPour(world, x, y, z, dX, dY, dZ, side, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Mats.MaterialStack pour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, Mats.MaterialStack stack) {
|
||||
@Override
|
||||
public Mats.MaterialStack pour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, Mats.MaterialStack stack) {
|
||||
|
||||
TileEntity poured = world.getTileEntity(x, y, z);
|
||||
if (!(poured instanceof TileEntityProxyCombo && ((TileEntityProxyCombo) poured).moltenMetal)) return stack;
|
||||
TileEntity poured = world.getTileEntity(x, y, z);
|
||||
if(!(poured instanceof TileEntityProxyCombo && ((TileEntityProxyCombo) poured).moltenMetal)) return stack;
|
||||
|
||||
int[] pos = this.findCore(world, x, y, z);
|
||||
if (pos == null) return stack;
|
||||
TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||
if (!(tile instanceof TileEntityMachineStrandCaster)) return stack;
|
||||
TileEntityMachineStrandCaster caster = (TileEntityMachineStrandCaster) tile;
|
||||
int[] pos = this.findCore(world, x, y, z);
|
||||
if(pos == null) return stack;
|
||||
TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||
if(!(tile instanceof TileEntityMachineStrandCaster)) return stack;
|
||||
TileEntityMachineStrandCaster caster = (TileEntityMachineStrandCaster) tile;
|
||||
|
||||
return caster.pour(world, x, y, z, dX, dY, dZ, side, stack);
|
||||
}
|
||||
return caster.pour(world, x, y, z, dX, dY, dZ, side, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) {
|
||||
return false;
|
||||
}
|
||||
@Override
|
||||
public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Mats.MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) {
|
||||
return null;
|
||||
}
|
||||
@Override
|
||||
public Mats.MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) {
|
||||
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;
|
||||
}
|
||||
@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;
|
||||
}
|
||||
|
||||
int[] coords = findCore(world, x, y, z);
|
||||
TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) world.getTileEntity(coords[0], coords[1], coords[2]);
|
||||
if (cast != null) {
|
||||
//insert mold
|
||||
if (player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.mold && cast.slots[0] == null) {
|
||||
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();
|
||||
return true;
|
||||
int[] coords = findCore(world, x, y, z);
|
||||
TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) world.getTileEntity(coords[0], coords[1], coords[2]);
|
||||
if(cast != null) {
|
||||
// insert mold
|
||||
if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.mold && cast.slots[0] == null) {
|
||||
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();
|
||||
return true;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemTool && player.getHeldItem().getItem().getToolClasses(player.getHeldItem()).contains("shovel")) {
|
||||
if (cast.amount > 0) {
|
||||
ItemStack scrap = ItemScraps.create(new Mats.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();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return this.standardOpenBehavior(world, x, y, z, player, 0);
|
||||
}
|
||||
if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemTool && player.getHeldItem().getItem().getToolClasses(player.getHeldItem()).contains("shovel")) {
|
||||
if(cast.amount > 0) {
|
||||
ItemStack scrap = ItemScraps.create(new Mats.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();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return this.standardOpenBehavior(world, x, y, z, player, 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void breakBlock(World world, int x, int y, int z, Block b, int i) {
|
||||
@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 TileEntityMachineStrandCaster) {
|
||||
TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) te;
|
||||
TileEntity te = world.getTileEntity(x, y, z);
|
||||
if(te instanceof TileEntityMachineStrandCaster) {
|
||||
TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) te;
|
||||
|
||||
if (cast.amount > 0) {
|
||||
ItemStack scrap = ItemScraps.create(new Mats.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
|
||||
}
|
||||
}
|
||||
super.breakBlock(world, x, y, z, b, i);
|
||||
}
|
||||
if(cast.amount > 0) {
|
||||
ItemStack scrap = ItemScraps.create(new Mats.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
|
||||
}
|
||||
}
|
||||
super.breakBlock(world, x, y, z, b, i);
|
||||
}
|
||||
|
||||
public void printHook(RenderGameOverlayEvent.Pre event, World world, int x, int y, int z) {
|
||||
int[] coords = findCore(world, x, y, z);
|
||||
if (coords == null) return;
|
||||
public void printHook(RenderGameOverlayEvent.Pre event, World world, int x, int y, int z) {
|
||||
int[] coords = findCore(world, x, y, z);
|
||||
if(coords == null)
|
||||
return;
|
||||
|
||||
TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) world.getTileEntity(coords[0], coords[1], coords[2]);
|
||||
TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) world.getTileEntity(coords[0], coords[1], coords[2]);
|
||||
|
||||
List<String> text = new ArrayList();
|
||||
if (cast != null) {
|
||||
if (cast.slots[0] == null) {
|
||||
text.add(EnumChatFormatting.RED + I18nUtil.resolveKey("foundry.noCast"));
|
||||
} else if (cast.slots[0].getItem() == ModItems.mold) {
|
||||
ItemMold.Mold mold = ((ItemMold) cast.slots[0].getItem()).getMold(cast.slots[0]);
|
||||
text.add(EnumChatFormatting.BLUE + mold.getTitle());
|
||||
}
|
||||
}
|
||||
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(this.getUnlocalizedName() + ".name"), 0xFF4000, 0x401000, text);
|
||||
}
|
||||
List<String> text = new ArrayList();
|
||||
if(cast != null) {
|
||||
if(cast.slots[0] == null) {
|
||||
text.add(EnumChatFormatting.RED + I18nUtil.resolveKey("foundry.noCast"));
|
||||
} else if(cast.slots[0].getItem() == ModItems.mold) {
|
||||
ItemMold.Mold mold = ((ItemMold) cast.slots[0].getItem()).getMold(cast.slots[0]);
|
||||
text.add(EnumChatFormatting.BLUE + mold.getTitle());
|
||||
}
|
||||
}
|
||||
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(this.getUnlocalizedName() + ".name"), 0xFF4000, 0x401000, text);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) {
|
||||
x += dir.offsetX * o;
|
||||
z += dir.offsetZ * o;
|
||||
@Override
|
||||
protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) {
|
||||
x += dir.offsetX * o;
|
||||
z += dir.offsetZ * o;
|
||||
|
||||
if (!MultiblockHandlerXR.checkSpace(world, x, y, z, getDimensions(), x, y, z, dir)) return false;
|
||||
return MultiblockHandlerXR.checkSpace(world, x, y, z, new int[]{2, 0, 1, 0, 1, 0}, x, y, z, dir);
|
||||
}
|
||||
if(!MultiblockHandlerXR.checkSpace(world, x, y, z, getDimensions(), x, y, z, dir))
|
||||
return false;
|
||||
return MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] { 2, 0, 1, 0, 1, 0 }, x, y, z, dir);
|
||||
}
|
||||
|
||||
@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;
|
||||
@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[] coords = findCore(world, x, y, z);
|
||||
TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) world.getTileEntity(coords[0], coords[1], coords[2]);
|
||||
int[] coords = findCore(world, x, y, z);
|
||||
TileEntityMachineStrandCaster cast = (TileEntityMachineStrandCaster) world.getTileEntity(coords[0], coords[1], coords[2]);
|
||||
|
||||
if (cast.slots[0] == null)
|
||||
return false;
|
||||
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();
|
||||
}
|
||||
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();
|
||||
cast.slots[0] = null;
|
||||
cast.markDirty();
|
||||
|
||||
cast.slots[0] = null;
|
||||
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -108,6 +108,7 @@ public class WorldConfig {
|
||||
public static int meteorShowerChance = 20 * 60 * 5;
|
||||
public static int meteorShowerDuration = 6000;
|
||||
|
||||
public static boolean enableCraterBiomes = true;
|
||||
public static int craterBiomeId = 80;
|
||||
public static int craterBiomeInnerId = 81;
|
||||
public static int craterBiomeOuterId = 82;
|
||||
@ -227,6 +228,7 @@ public class WorldConfig {
|
||||
meteorShowerDuration = CommonConfig.createConfigInt(config, CATEGORY_METEOR, "5.05_meteorShowerDuration", "Max duration of meteor shower in ticks", 20 * 60 * 30);
|
||||
|
||||
final String CATEGORY_BIOMES = CommonConfig.CATEGORY_BIOMES;
|
||||
enableCraterBiomes = CommonConfig.createConfigBool(config, CATEGORY_BIOMES, "17.B_toggle", "Enables the biome change caused by nuclear explosions", true);
|
||||
craterBiomeId = CommonConfig.createConfigInt(config, CATEGORY_BIOMES, "17.B00_craterBiomeId", "The numeric ID for the crater biome", 80);
|
||||
craterBiomeInnerId = CommonConfig.createConfigInt(config, CATEGORY_BIOMES, "17.B01_craterBiomeInnerId", "The numeric ID for the inner crater biome", 81);
|
||||
craterBiomeOuterId = CommonConfig.createConfigInt(config, CATEGORY_BIOMES, "17.B02_craterBiomeOuterId", "The numeric ID for the outer crater biome", 82);
|
||||
|
||||
@ -4,6 +4,7 @@ import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.config.BombConfig;
|
||||
import com.hbm.config.FalloutConfigJSON;
|
||||
import com.hbm.config.FalloutConfigJSON.FalloutEntry;
|
||||
import com.hbm.config.WorldConfig;
|
||||
import com.hbm.entity.item.EntityFallingBlockNT;
|
||||
import com.hbm.saveddata.AuxSavedData;
|
||||
import com.hbm.world.WorldUtil;
|
||||
@ -114,6 +115,7 @@ public class EntityFalloutRain extends Entity {
|
||||
}
|
||||
|
||||
public static BiomeGenBase getBiomeChange(double dist, int scale) {
|
||||
if(!WorldConfig.enableCraterBiomes) return null;
|
||||
if(scale >= 150 && dist < 15) return BiomeGenCraterBase.craterInnerBiome;
|
||||
if(scale >= 100 && dist < 55) return BiomeGenCraterBase.craterBiome;
|
||||
if(scale >= 25) return BiomeGenCraterBase.craterOuterBiome;
|
||||
@ -160,6 +162,7 @@ public class EntityFalloutRain extends Entity {
|
||||
Block b = worldObj.getBlock(x, y, z);
|
||||
|
||||
if(b.getMaterial() == Material.air) continue;
|
||||
if(b == Blocks.bedrock) return;
|
||||
|
||||
Block ab = worldObj.getBlock(x, y + 1, z);
|
||||
int meta = worldObj.getBlockMetadata(x, y, z);
|
||||
|
||||
@ -295,7 +295,7 @@ public class MainRegistry {
|
||||
OreDictManager.registerGroups(); //important to run first
|
||||
OreDictManager.registerOres();
|
||||
|
||||
BiomeGenCraterBase.initDictionary();
|
||||
if(WorldConfig.enableCraterBiomes) BiomeGenCraterBase.initDictionary();
|
||||
|
||||
Library.superuser.add("192af5d7-ed0f-48d8-bd89-9d41af8524f8");
|
||||
Library.superuser.add("5aee1e3d-3767-4987-a222-e7ce1fbdf88e");
|
||||
|
||||
@ -8,7 +8,6 @@ import java.util.function.Function;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.config.WeaponConfig;
|
||||
import com.hbm.extprop.HbmLivingProps;
|
||||
import com.hbm.interfaces.IControlReceiver;
|
||||
import com.hbm.inventory.container.ContainerMachineRadarNT;
|
||||
@ -19,11 +18,8 @@ import com.hbm.items.ModItems;
|
||||
import com.hbm.items.tool.ItemCoordinateBase;
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.packet.AuxParticlePacketNT;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.saveddata.SatelliteSavedData;
|
||||
import com.hbm.saveddata.satellites.Satellite;
|
||||
import com.hbm.saveddata.satellites.Satellite.Interfaces;
|
||||
import com.hbm.saveddata.satellites.SatelliteHorizons;
|
||||
import com.hbm.saveddata.satellites.SatelliteLaser;
|
||||
import com.hbm.tileentity.IConfigurableMachine;
|
||||
@ -40,12 +36,10 @@ import api.hbm.entity.IRadarDetectable;
|
||||
import api.hbm.entity.IRadarDetectableNT;
|
||||
import api.hbm.entity.IRadarDetectableNT.RadarScanParams;
|
||||
import api.hbm.entity.RadarEntry;
|
||||
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
@ -59,7 +53,6 @@ import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.WorldServer;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
/**
|
||||
* Now with SmЯt™ lag-free entity detection! (patent pending)
|
||||
@ -462,12 +455,9 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I
|
||||
int z = data.getInteger("launchPosZ");
|
||||
int y = 60; //one day I will make radars transmit Y coordinate as well and you will be butchered alhamdulila
|
||||
worldObj.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F);
|
||||
sat.onCoordAction(world,player,x,y,z);
|
||||
sat.onCoordAction(world, player, x, y, z);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
if(link != null && link.getItem() == ModItems.radar_linker) {
|
||||
BlockPos pos = ItemCoordinateBase.getPosition(link);
|
||||
|
||||
@ -139,10 +139,10 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase
|
||||
ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
|
||||
|
||||
return new DirPos[] {
|
||||
new DirPos(xCoord + rot.offsetX * 2 - dir.offsetX, yCoord, zCoord + rot.offsetZ * 2 - dir.offsetZ, rot),
|
||||
new DirPos(xCoord - rot.offsetX - dir.offsetX, yCoord, zCoord - rot.offsetZ - dir.offsetZ, rot.getOpposite()),
|
||||
new DirPos(xCoord + rot.offsetX * 2 - dir.offsetX, yCoord, zCoord + rot.offsetZ * 2 - dir.offsetZ, rot),
|
||||
new DirPos(xCoord - rot.offsetX - dir.offsetX, yCoord, zCoord - rot.offsetZ - dir.offsetZ, rot.getOpposite()),
|
||||
new DirPos(xCoord + rot.offsetX * 2 - dir.offsetX * 5, yCoord, zCoord + rot.offsetZ * 2 - dir.offsetZ * 5, rot),
|
||||
new DirPos(xCoord - rot.offsetX - dir.offsetX * 5, yCoord, zCoord - rot.offsetZ + dir.offsetZ * 5, rot.getOpposite())
|
||||
new DirPos(xCoord - rot.offsetX - dir.offsetX * 5, yCoord, zCoord - rot.offsetZ - dir.offsetZ * 5, rot.getOpposite())
|
||||
};
|
||||
}
|
||||
|
||||
@ -192,8 +192,7 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase
|
||||
|
||||
@Override
|
||||
public boolean standardCheck(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) {
|
||||
if(this.type != null && this.type != stack.material)
|
||||
return false;
|
||||
if(this.type != null && this.type != stack.material) return false;
|
||||
return !(this.amount >= this.getCapacity() || getInstalledMold() == null);
|
||||
}
|
||||
|
||||
@ -210,9 +209,7 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase
|
||||
private void updateConnections() {
|
||||
for(DirPos pos : getFluidConPos()) {
|
||||
this.trySubscribe(water.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
|
||||
}
|
||||
for(DirPos pos : getFluidConPos()) {
|
||||
sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
|
||||
this.sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 497 B |
Binary file not shown.
|
Before Width: | Height: | Size: 515 B |
Binary file not shown.
|
Before Width: | Height: | Size: 566 B |
Binary file not shown.
|
Before Width: | Height: | Size: 492 B |
Binary file not shown.
|
Before Width: | Height: | Size: 466 B |
Binary file not shown.
|
Before Width: | Height: | Size: 492 B |
Loading…
x
Reference in New Issue
Block a user