mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
reda!
This commit is contained in:
parent
9a955245cb
commit
32a658bd12
12
changelog
12
changelog
@ -1,10 +1,14 @@
|
||||
## Added
|
||||
* Large Radar
|
||||
* A giant version of the radar with 3x the scan range
|
||||
|
||||
## 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
|
||||
* Berylliumm ore now has a 100% chance of being converted into emerald
|
||||
* 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.
|
||||
@ -15,6 +19,11 @@
|
||||
* 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 tad cheaper
|
||||
|
||||
## Fixed
|
||||
* Fixed a rare crash caused by radars force-loading chunks conflicting with certain mods' chunk loading changes
|
||||
@ -22,3 +31,4 @@
|
||||
* 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
|
||||
|
||||
@ -1046,6 +1046,7 @@ public class ModBlocks {
|
||||
public static Block soyuz_launcher;
|
||||
|
||||
public static Block machine_radar;
|
||||
public static Block machine_radar_large;
|
||||
public static Block radar_screen;
|
||||
|
||||
public static Block machine_turbofan;
|
||||
@ -2141,6 +2142,7 @@ public class ModBlocks {
|
||||
|
||||
launch_pad = new LaunchPad(Material.iron).setBlockName("launch_pad").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":launch_pad");
|
||||
machine_radar = new MachineRadar(Material.iron).setBlockName("machine_radar").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_radar");
|
||||
machine_radar_large = new MachineRadarLarge(Material.iron).setBlockName("machine_radar_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
radar_screen = new MachineRadarScreen(Material.iron).setBlockName("radar_screen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
|
||||
machine_missile_assembly = new MachineMissileAssembly(Material.iron).setBlockName("machine_missile_assembly").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_missile_assembly");
|
||||
@ -3473,6 +3475,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(sat_dock, sat_dock.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(soyuz_capsule, soyuz_capsule.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_radar, machine_radar.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_radar_large, machine_radar_large.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(radar_screen, radar_screen.getUnlocalizedName());
|
||||
|
||||
//Guide
|
||||
|
||||
@ -129,13 +129,21 @@ public class MachineBigAssTank9000 extends BlockDummyable implements IPersistent
|
||||
@Override
|
||||
public int getComparatorInputOverride(World world, int x, int y, int z, int side) {
|
||||
|
||||
TileEntity te = world.getTileEntity(x, y, z);
|
||||
|
||||
if(!(te instanceof TileEntityMachineBAT9000))
|
||||
return 0;
|
||||
|
||||
TileEntityMachineBAT9000 tank = (TileEntityMachineBAT9000) te;
|
||||
return tank.getComparatorPower();
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
|
||||
if(meta >= 6) {
|
||||
int[] pos = this.findCore(world, x, y, z);
|
||||
if(pos == null) return 0;
|
||||
TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||
|
||||
if(!(te instanceof TileEntityMachineBAT9000))
|
||||
return 0;
|
||||
|
||||
TileEntityMachineBAT9000 tank = (TileEntityMachineBAT9000) te;
|
||||
return tank.getComparatorPower();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -169,13 +169,21 @@ public class MachineFluidTank extends BlockDummyable implements IPersistentInfoP
|
||||
@Override
|
||||
public int getComparatorInputOverride(World world, int x, int y, int z, int side) {
|
||||
|
||||
TileEntity te = world.getTileEntity(x, y, z);
|
||||
|
||||
if(!(te instanceof TileEntityMachineFluidTank))
|
||||
return 0;
|
||||
|
||||
TileEntityMachineFluidTank tank = (TileEntityMachineFluidTank) te;
|
||||
return tank.getComparatorPower();
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
|
||||
if(meta >= 6) {
|
||||
int[] pos = this.findCore(world, x, y, z);
|
||||
if(pos == null) return 0;
|
||||
TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||
|
||||
if(!(te instanceof TileEntityMachineFluidTank))
|
||||
return 0;
|
||||
|
||||
TileEntityMachineFluidTank tank = (TileEntityMachineFluidTank) te;
|
||||
return tank.getComparatorPower();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
98
src/main/java/com/hbm/blocks/machine/MachineRadarLarge.java
Normal file
98
src/main/java/com/hbm/blocks/machine/MachineRadarLarge.java
Normal file
@ -0,0 +1,98 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineRadarLarge;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineRadarNT;
|
||||
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.ChatComponentText;
|
||||
import net.minecraft.util.ChatStyle;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class MachineRadarLarge extends BlockDummyable {
|
||||
|
||||
public MachineRadarLarge(Material mat) {
|
||||
super(mat);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
if(meta >= 12) return new TileEntityMachineRadarLarge();
|
||||
if(meta >= 6) return new TileEntityProxyCombo().power();
|
||||
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(y < TileEntityMachineRadarNT.radarAltitude) {
|
||||
if(world.isRemote)
|
||||
player.addChatMessage(new ChatComponentText("[Radar] Error: Radar altitude not sufficient.").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED)));
|
||||
return true;
|
||||
}
|
||||
|
||||
if(world.isRemote && !player.isSneaking()) {
|
||||
int[] pos = this.findCore(world, x, y, z);
|
||||
if(pos == null) return false;
|
||||
FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]);
|
||||
return true;
|
||||
} else if(!player.isSneaking()) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getDimensions() {
|
||||
return new int[] {4, 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 += dir.offsetX * o;
|
||||
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 canProvidePower() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int isProvidingWeakPower(IBlockAccess world, int x, int y, int z, int m) {
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
if(meta >= 6) {
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(m);
|
||||
TileEntity tile = world.getTileEntity(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ);
|
||||
if(tile instanceof TileEntityMachineRadarNT) {
|
||||
TileEntityMachineRadarNT entity = (TileEntityMachineRadarNT) tile;
|
||||
return entity.getRedPower();
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int isProvidingStrongPower(IBlockAccess world, int x, int y, int z, int m) {
|
||||
return isProvidingWeakPower(world, x, y, z, m);
|
||||
}
|
||||
}
|
||||
@ -209,13 +209,15 @@ public class SoyuzLauncher extends BlockDummyable {
|
||||
}
|
||||
}
|
||||
|
||||
for(int l = 0; l < 10; l++)
|
||||
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_launcher, 38)));
|
||||
for(int l = 0; l < 8; l++)
|
||||
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.concrete_smooth, 41)));
|
||||
for(int l = 0; l < 6; l++)
|
||||
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_launcher, 64)));
|
||||
for(int l = 0; l < 4; l++)
|
||||
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.concrete_smooth, 64)));
|
||||
for(int l = 0; l < 6; l++)
|
||||
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_scaffold, 64)));
|
||||
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_scaffold, 53)));
|
||||
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_launcher, 30)));
|
||||
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.struct_scaffold, 63)));
|
||||
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModBlocks.concrete_smooth, 38)));
|
||||
|
||||
world.func_147453_f(x, y, z, p_149749_5_);
|
||||
}
|
||||
|
||||
@ -83,12 +83,12 @@ public class ConstructionHandler extends NEIUniversalHandler {
|
||||
|
||||
/* SOYUZ LAUNCHER */
|
||||
ItemStack[] soysauce = new ItemStack[] {
|
||||
new ItemStack(ModBlocks.struct_launcher, 60),
|
||||
ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.struct_launcher, 320), EnumChatFormatting.RED + "5x64"),
|
||||
new ItemStack(ModBlocks.struct_scaffold, 53),
|
||||
new ItemStack(ModBlocks.struct_launcher, 30),
|
||||
ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.struct_launcher, 384), EnumChatFormatting.RED + "6x64"),
|
||||
new ItemStack(ModBlocks.struct_scaffold, 63),
|
||||
ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.struct_scaffold, 384), EnumChatFormatting.RED + "6x64"),
|
||||
new ItemStack(ModBlocks.concrete_smooth, 8),
|
||||
ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.concrete_smooth, 320), EnumChatFormatting.RED + "5x64"),};
|
||||
new ItemStack(ModBlocks.concrete_smooth, 38),
|
||||
ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.concrete_smooth, 320), EnumChatFormatting.RED + "4x64"),};
|
||||
|
||||
bufferedRecipes.put(soysauce, new ItemStack(ModBlocks.soyuz_launcher));
|
||||
bufferedTools.put(soysauce, new ItemStack(ModBlocks.struct_soyuz_core));
|
||||
|
||||
@ -94,8 +94,8 @@ public class GUIMachineRadarNT extends GuiScreen {
|
||||
|
||||
if(!radar.entries.isEmpty()) {
|
||||
for(RadarEntry m : radar.entries) {
|
||||
int x = guiLeft + (int)((m.posX - radar.xCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D)) + 108;
|
||||
int z = guiTop + (int)((m.posZ - radar.zCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D)) + 117;
|
||||
int x = guiLeft + (int)((m.posX - radar.xCoord) / ((double) radar.getRange() * 2 + 1) * (200D - 8D)) + 108;
|
||||
int z = guiTop + (int)((m.posZ - radar.zCoord) / ((double) radar.getRange() * 2 + 1) * (200D - 8D)) + 117;
|
||||
|
||||
if(mouseX + 5 > x && mouseX - 4 <= x && mouseY + 5 > z && mouseY - 4 <= z) {
|
||||
|
||||
@ -107,8 +107,8 @@ public class GUIMachineRadarNT extends GuiScreen {
|
||||
}
|
||||
|
||||
if(checkClick(mouseX, mouseY, 8, 17, 200, 200)) {
|
||||
int tX = (int) ((lastMouseX - guiLeft - 108) * ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) / 192D + radar.xCoord);
|
||||
int tZ = (int) ((lastMouseY - guiTop - 117) * ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) / 192D + radar.zCoord);
|
||||
int tX = (int) ((lastMouseX - guiLeft - 108) * ((double) radar.getRange() * 2 + 1) / 192D + radar.xCoord);
|
||||
int tZ = (int) ((lastMouseY - guiTop - 117) * ((double) radar.getRange() * 2 + 1) / 192D + radar.zCoord);
|
||||
this.func_146283_a(Arrays.asList(tX + " / " + tZ), lastMouseX, lastMouseY);
|
||||
}
|
||||
}
|
||||
@ -190,8 +190,8 @@ public class GUIMachineRadarNT extends GuiScreen {
|
||||
|
||||
if(!radar.entries.isEmpty()) {
|
||||
for(RadarEntry m : radar.entries) {
|
||||
double x = (m.posX - radar.xCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D) - 4D;
|
||||
double z = (m.posZ - radar.zCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D) - 4D;
|
||||
double x = (m.posX - radar.xCoord) / ((double) radar.getRange() * 2 + 1) * (200D - 8D) - 4D;
|
||||
double z = (m.posZ - radar.zCoord) / ((double) radar.getRange() * 2 + 1) * (200D - 8D) - 4D;
|
||||
int t = m.blipLevel;
|
||||
drawTexturedModalRectDouble(guiLeft + 108 + x, guiTop + 117 + z, 216, 8 * t, 8, 8);
|
||||
}
|
||||
@ -226,8 +226,8 @@ public class GUIMachineRadarNT extends GuiScreen {
|
||||
|
||||
if(!radar.entries.isEmpty()) {
|
||||
for(RadarEntry m : radar.entries) {
|
||||
int x = guiLeft + (int) ((m.posX - radar.xCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D)) + 108;
|
||||
int z = guiTop + (int) ((m.posZ - radar.zCoord) / ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) * (200D - 8D)) + 117;
|
||||
int x = guiLeft + (int) ((m.posX - radar.xCoord) / ((double) radar.getRange() * 2 + 1) * (200D - 8D)) + 108;
|
||||
int z = guiTop + (int) ((m.posZ - radar.zCoord) / ((double) radar.getRange() * 2 + 1) * (200D - 8D)) + 117;
|
||||
|
||||
if(lastMouseX + 5 > x && lastMouseX - 4 <= x && lastMouseY + 5 > z && lastMouseY - 4 <= z) {
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
@ -239,8 +239,8 @@ public class GUIMachineRadarNT extends GuiScreen {
|
||||
}
|
||||
}
|
||||
|
||||
int tX = (int) ((lastMouseX - guiLeft - 108) * ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) / 192D + radar.xCoord);
|
||||
int tZ = (int) ((lastMouseY - guiTop - 117) * ((double) TileEntityMachineRadarNT.radarRange * 2 + 1) / 192D + radar.zCoord);
|
||||
int tX = (int) ((lastMouseX - guiLeft - 108) * ((double) radar.getRange() * 2 + 1) / 192D + radar.xCoord);
|
||||
int tZ = (int) ((lastMouseY - guiTop - 117) * ((double) radar.getRange() * 2 + 1) / 192D + radar.zCoord);
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
data.setInteger("launchPosX", tX);
|
||||
data.setInteger("launchPosZ", tZ);
|
||||
|
||||
@ -361,7 +361,8 @@ public class AssemblerRecipes {
|
||||
makeRecipe(new ComparableStack(ModBlocks.ams_limiter, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 6), new OreDictStack(STEEL.plate(), 24), new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModItems.crystal_diamond, 1)}, 600);
|
||||
makeRecipe(new ComparableStack(ModBlocks.ams_emitter, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 24), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModBlocks.steel_scaffold, 40), new ComparableStack(ModItems.crystal_redstone, 5), new ComparableStack(ModBlocks.machine_lithium_battery)}, 600);
|
||||
makeRecipe(new ComparableStack(ModBlocks.ams_base, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 12), new OreDictStack(STEEL.plate(), 28), new ComparableStack(ModBlocks.steel_scaffold, 30), new ComparableStack(ModBlocks.steel_grate, 8), new ComparableStack(ModBlocks.barrel_steel, 2)}, 600);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_radar, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(ANY_RUBBER.ingot(), 8), new ComparableStack(ModItems.magnetron, 10), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.coil_copper, 12), new ComparableStack(ModItems.crt_display, 4), },300);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_radar, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 8), new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(ANY_RUBBER.ingot(), 8), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.coil_copper, 12), new ComparableStack(ModItems.crt_display, 4), },300);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_radar_large, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 6), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 16), new OreDictStack(ANY_RUBBER.ingot(), 16), new ComparableStack(ModItems.magnetron, 12), new ComparableStack(ModItems.motor_desh, 1), new ComparableStack(ModItems.circuit_gold, 2), new ComparableStack(ModItems.coil_copper, 32), new ComparableStack(ModItems.crt_display, 4), },600);
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_forcefield, 1), new AStack[] {new OreDictStack(ALLOY.plate528(), 8), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.coil_gold_torus, 6), new ComparableStack(ModItems.coil_magnetized_tungsten, 12), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.upgrade_radius, 1), new ComparableStack(ModItems.upgrade_health, 1), new ComparableStack(ModItems.circuit_targeting_tier5, 1), new ComparableStack(ModBlocks.machine_transformer, 1), },1000);
|
||||
makeRecipe(new ComparableStack(ModItems.mp_thruster_10_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100);
|
||||
makeRecipe(new ComparableStack(ModItems.mp_thruster_10_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.coil_tungsten, 1), new OreDictStack(DURA.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100);
|
||||
|
||||
@ -4979,7 +4979,7 @@ public class ModItems {
|
||||
|
||||
ArmorMaterial aMatTrench = EnumHelper.addArmorMaterial("HBM_TRENCH", 150, new int[] { 3, 8, 6, 3 }, 100);
|
||||
aMatTrench.customCraftingMaterial = ModItems.plate_iron;
|
||||
trenchmaster_helmet = new ArmorTrenchmaster(aMatTrench, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png").setMod(0.25F).setThreshold(5.0F)
|
||||
trenchmaster_helmet = new ArmorTrenchmaster(aMatTrench, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png").setMod(0.125F).setThreshold(5.0F)
|
||||
.addEffect(new PotionEffect(Potion.damageBoost.id, 20, 2))
|
||||
.addEffect(new PotionEffect(Potion.digSpeed.id, 20, 1))
|
||||
.addEffect(new PotionEffect(Potion.jump.id, 20, 1))
|
||||
|
||||
@ -242,6 +242,7 @@ public class ClientProxy extends ServerProxy {
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineEPress.class, new RenderEPress());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadGen.class, new RenderRadGen());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadarNT.class, new RenderRadar());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadarLarge.class, new RenderRadarLarge());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadarScreen.class, new RenderRadarScreen());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineSeleniumEngine.class, new RenderSelenium());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityReactorResearch.class, new RenderSmallReactor());
|
||||
|
||||
@ -245,6 +245,7 @@ public class ResourceManager {
|
||||
public static final IModelCustom radar_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/radar_base.obj"));
|
||||
public static final IModelCustom radar_head = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/radar_head.obj"));
|
||||
public static final IModelCustom radar = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/radar.obj"));
|
||||
public static final IModelCustom radar_large = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/radar_large.obj"));
|
||||
public static final IModelCustom radar_screen = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/radar_screen.obj"));
|
||||
|
||||
//Forcefield
|
||||
@ -661,6 +662,7 @@ public class ResourceManager {
|
||||
public static final ResourceLocation radar_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/radar_head.png");
|
||||
public static final ResourceLocation radar_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/radar_base.png");
|
||||
public static final ResourceLocation radar_dish_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/radar_dish.png");
|
||||
public static final ResourceLocation radar_large_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/radar_large.png");
|
||||
public static final ResourceLocation radar_screen_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/radar_screen.png");
|
||||
|
||||
//Forcefield
|
||||
|
||||
@ -291,7 +291,9 @@ public class ItemRenderLibrary {
|
||||
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||
GL11.glScaled(0.5, 0.5, 0.5);
|
||||
GL11.glTranslatef(0, 0, 3);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
bindTexture(ResourceManager.pumpjack_tex); ResourceManager.pumpjack.renderAll();
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
}});
|
||||
|
||||
@ -338,7 +340,7 @@ public class ItemRenderLibrary {
|
||||
renderers.put(Item.getItemFromBlock(ModBlocks.machine_turbofan), new ItemRenderBase() {
|
||||
public void renderInventory() {
|
||||
GL11.glRotated(90, 0, 1, 0);
|
||||
GL11.glScaled(2, 2, 2);
|
||||
GL11.glScaled(2.25, 2.25, 2.25);
|
||||
}
|
||||
public void renderCommon() {
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
@ -1137,7 +1139,9 @@ public class ItemRenderLibrary {
|
||||
public void renderCommon() {
|
||||
GL11.glScaled(0.25, 0.25, 0.25);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||
bindTexture(ResourceManager.fracking_tower_tex); ResourceManager.fracking_tower.renderAll();
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}});
|
||||
|
||||
|
||||
@ -0,0 +1,58 @@
|
||||
package com.hbm.render.tileentity;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.item.ItemRenderBase;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineRadarNT;
|
||||
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
|
||||
public class RenderRadarLarge extends TileEntitySpecialRenderer implements IItemRendererProvider {
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(x + 0.5D, y, z + 0.5D);
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||
GL11.glRotatef(180, 0F, 1F, 0F);
|
||||
|
||||
bindTexture(ResourceManager.radar_large_tex);
|
||||
ResourceManager.radar_large.renderPart("Radar");
|
||||
|
||||
TileEntityMachineRadarNT radar = (TileEntityMachineRadarNT) tileEntity;
|
||||
GL11.glRotatef(radar.prevRotation + (radar.rotation - radar.prevRotation) * f, 0F, -1F, 0F);
|
||||
|
||||
ResourceManager.radar_large.renderPart("Dish");
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItemForRenderer() {
|
||||
return Item.getItemFromBlock(ModBlocks.machine_radar_large);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemRenderer getRenderer() {
|
||||
return new ItemRenderBase( ) {
|
||||
public void renderInventory() {
|
||||
GL11.glTranslated(0, -5, 0);
|
||||
GL11.glScaled(3, 3, 3);
|
||||
}
|
||||
public void renderCommonWithStack(ItemStack item) {
|
||||
GL11.glRotated(180, 0, 1, 0);
|
||||
GL11.glScaled(0.5, 0.5, 0.5);
|
||||
bindTexture(ResourceManager.radar_large_tex);
|
||||
ResourceManager.radar_large.renderPart("Radar");
|
||||
GL11.glRotated(System.currentTimeMillis() % 3600 * 0.1D, 0, -1, 0);
|
||||
ResourceManager.radar_large.renderPart("Dish");
|
||||
}};
|
||||
}
|
||||
}
|
||||
@ -5,9 +5,11 @@ import com.hbm.packet.AuxGaugePacket;
|
||||
import com.hbm.packet.BufPacket;
|
||||
import com.hbm.packet.NBTPacket;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||
|
||||
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.ISidedInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@ -221,4 +223,27 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme
|
||||
|
||||
return Math.max(volume, 0);
|
||||
}
|
||||
|
||||
public void updateRedstoneConnection(DirPos pos) {
|
||||
|
||||
int x = pos.getX();
|
||||
int y = pos.getY();
|
||||
int z = pos.getZ();
|
||||
ForgeDirection dir = pos.getDir();
|
||||
Block block1 = worldObj.getBlock(x, y, z);
|
||||
|
||||
block1.onNeighborChange(worldObj, x, y, z, xCoord, yCoord, zCoord);
|
||||
block1.onNeighborBlockChange(worldObj, x, y, z, this.getBlockType());
|
||||
if(block1.isNormalCube(worldObj, x, y, z)) {
|
||||
x += dir.offsetX;
|
||||
y += dir.offsetY;
|
||||
z += dir.offsetZ;
|
||||
Block block2 = worldObj.getBlock(x, y, z);
|
||||
|
||||
if(block2.getWeakChanges(worldObj, x, y, z)) {
|
||||
block2.onNeighborChange(worldObj, x, y, z, xCoord, yCoord, zCoord);
|
||||
block2.onNeighborBlockChange(worldObj, x, y, z, this.getBlockType());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -112,6 +112,7 @@ public class TileMappings {
|
||||
put(TileEntityMachineRadGen.class, "tileentity_radgen");
|
||||
put(TileEntityMachineTransformer.class, "tileentity_transformer");
|
||||
put(TileEntityMachineRadarNT.class, "tileentity_radar");
|
||||
put(TileEntityMachineRadarLarge.class, "tileentity_radar_large");
|
||||
put(TileEntityMachineRadarScreen.class, "tileentity_radar_screen");
|
||||
put(TileEntityBroadcaster.class, "tileentity_pink_cloud_broadcaster");
|
||||
put(TileEntityMachineSeleniumEngine.class, "tileentity_selenium_engine");
|
||||
|
||||
@ -0,0 +1,41 @@
|
||||
package com.hbm.tileentity.machine;
|
||||
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
|
||||
public class TileEntityMachineRadarLarge extends TileEntityMachineRadarNT {
|
||||
|
||||
@Override
|
||||
public int getRange() {
|
||||
return radarLargeRange;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DirPos[] getConPos() {
|
||||
return new DirPos[] {
|
||||
new DirPos(xCoord + 2, yCoord, zCoord, Library.POS_X),
|
||||
new DirPos(xCoord - 2, yCoord, zCoord, Library.NEG_X),
|
||||
new DirPos(xCoord, yCoord, zCoord + 2, Library.POS_Z),
|
||||
new DirPos(xCoord, yCoord, zCoord - 2, Library.NEG_Z),
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getRenderBoundingBox() {
|
||||
|
||||
if(bb == null) {
|
||||
bb = AxisAlignedBB.getBoundingBox(
|
||||
xCoord - 5,
|
||||
yCoord,
|
||||
zCoord - 5,
|
||||
xCoord + 6,
|
||||
yCoord + 10,
|
||||
zCoord + 6
|
||||
);
|
||||
}
|
||||
|
||||
return bb;
|
||||
}
|
||||
}
|
||||
@ -19,6 +19,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;
|
||||
@ -30,6 +32,7 @@ import com.hbm.tileentity.IRadarCommandReceiver;
|
||||
import com.hbm.tileentity.TileEntityMachineBase;
|
||||
import com.hbm.util.Tuple.Triplet;
|
||||
import com.hbm.util.fauxpointtwelve.BlockPos;
|
||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||
import com.hbm.world.WorldUtil;
|
||||
|
||||
import api.hbm.energy.IEnergyUser;
|
||||
@ -37,10 +40,12 @@ 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;
|
||||
@ -54,6 +59,7 @@ 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)
|
||||
@ -82,6 +88,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I
|
||||
public static int maxPower = 100_000;
|
||||
public static int consumption = 500;
|
||||
public static int radarRange = 1_000;
|
||||
public static int radarLargeRange = 3_000;
|
||||
public static int radarBuffer = 30;
|
||||
public static int radarAltitude = 55;
|
||||
public static int chunkLoadCap = 10;
|
||||
@ -102,6 +109,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I
|
||||
maxPower = IConfigurableMachine.grab(obj, "L:powerCap", maxPower);
|
||||
consumption = IConfigurableMachine.grab(obj, "L:consumption", consumption);
|
||||
radarRange = IConfigurableMachine.grab(obj, "I:radarRange", radarRange);
|
||||
radarLargeRange = IConfigurableMachine.grab(obj, "I:radarLargeRange", radarLargeRange);
|
||||
radarBuffer = IConfigurableMachine.grab(obj, "I:radarBuffer", radarBuffer);
|
||||
radarAltitude = IConfigurableMachine.grab(obj, "I:radarAltitude", radarAltitude);
|
||||
chunkLoadCap = IConfigurableMachine.grab(obj, "I:chunkLoadCap", chunkLoadCap);
|
||||
@ -113,6 +121,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I
|
||||
writer.name("L:powerCap").value(maxPower);
|
||||
writer.name("L:consumption").value(consumption);
|
||||
writer.name("I:radarRange").value(radarRange);
|
||||
writer.name("I:radarLargeRange").value(radarLargeRange);
|
||||
writer.name("I:radarBuffer").value(radarBuffer);
|
||||
writer.name("I:radarAltitude").value(radarAltitude);
|
||||
writer.name("B:generateChunks").value(generateChunks);
|
||||
@ -126,6 +135,10 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I
|
||||
public String getName() {
|
||||
return "container.radar";
|
||||
}
|
||||
|
||||
public int getRange() {
|
||||
return radarRange;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
@ -136,14 +149,19 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I
|
||||
|
||||
this.power = Library.chargeTEFromItems(slots, 9, power, maxPower);
|
||||
|
||||
if(worldObj.getTotalWorldTime() % 20 == 0) this.updateStandardConnections(worldObj, xCoord, yCoord, zCoord);
|
||||
if(worldObj.getTotalWorldTime() % 20 == 0) {
|
||||
for(DirPos pos : getConPos()) {
|
||||
this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
|
||||
}
|
||||
}
|
||||
|
||||
this.power = Library.chargeTEFromItems(slots, 0, power, maxPower);
|
||||
this.jammed = false;
|
||||
allocateTargets();
|
||||
|
||||
if(this.lastPower != getRedPower()) {
|
||||
this.markDirty();
|
||||
this.markChanged();
|
||||
for(DirPos pos : getConPos()) this.updateRedstoneConnection(pos);
|
||||
}
|
||||
lastPower = getRedPower();
|
||||
|
||||
@ -161,11 +179,11 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I
|
||||
int chunkLoads = 0;
|
||||
for(int i = 0; i < 100; i++) {
|
||||
int index = (int) (worldObj.getTotalWorldTime() % 400) * 100 + i;
|
||||
int iX = (index % 200) * radarRange * 2 / 200;
|
||||
int iZ = index / 200 * radarRange * 2 / 200;
|
||||
int iX = (index % 200) * getRange() * 2 / 200;
|
||||
int iZ = index / 200 * getRange() * 2 / 200;
|
||||
|
||||
int x = xCoord - radarRange + iX;
|
||||
int z = zCoord - radarRange + iZ;
|
||||
int x = xCoord - getRange() + iX;
|
||||
int z = zCoord - getRange() + iZ;
|
||||
|
||||
if(worldObj.getChunkProvider().chunkExists(x >> 4, z >> 4)) {
|
||||
this.map[index] = (byte) MathHelper.clamp_int(worldObj.getHeightValue(x, z), 50, 128);
|
||||
@ -217,6 +235,15 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I
|
||||
}
|
||||
}
|
||||
|
||||
public DirPos[] getConPos() {
|
||||
return new DirPos[] {
|
||||
new DirPos(xCoord + 1, yCoord, zCoord, Library.POS_X),
|
||||
new DirPos(xCoord - 1, yCoord, zCoord, Library.NEG_X),
|
||||
new DirPos(xCoord, yCoord, zCoord + 1, Library.POS_Z),
|
||||
new DirPos(xCoord, yCoord, zCoord - 1, Library.NEG_Z),
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public void serialize(ByteBuf buf) {
|
||||
buf.writeLong(this.power);
|
||||
@ -341,7 +368,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I
|
||||
/// PROXIMITY ///
|
||||
if(redMode) {
|
||||
|
||||
double maxRange = WeaponConfig.radarRange * Math.sqrt(2D);
|
||||
double maxRange = this.getRange() * Math.sqrt(2D);
|
||||
int power = 0;
|
||||
|
||||
for(int i = 0; i < entries.size(); i++) {
|
||||
|
||||
@ -97,8 +97,10 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc
|
||||
if(!worldObj.isRemote) {
|
||||
|
||||
byte comp = this.getComparatorPower(); //do comparator shenanigans
|
||||
if(comp != this.lastRedstone)
|
||||
if(comp != this.lastRedstone) {
|
||||
this.markDirty();
|
||||
for(DirPos pos : getConPos()) this.updateRedstoneConnection(pos);
|
||||
}
|
||||
this.lastRedstone = comp;
|
||||
|
||||
tank.setType(0, 1, slots);
|
||||
|
||||
@ -131,8 +131,10 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements
|
||||
}
|
||||
|
||||
byte comp = this.getComparatorPower(); //comparator shit
|
||||
if(comp != this.lastRedstone)
|
||||
if(comp != this.lastRedstone) {
|
||||
this.markDirty();
|
||||
for(DirPos pos : getConPos()) this.updateRedstoneConnection(pos);
|
||||
}
|
||||
this.lastRedstone = comp;
|
||||
|
||||
if(tank.getFill() > 0) {
|
||||
|
||||
@ -3,11 +3,11 @@ package com.hbm.world.feature;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.BlockEnums.EnumBiomeType;
|
||||
import com.hbm.world.generator.DungeonToolbox;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.biome.BiomeGenBase;
|
||||
import net.minecraft.world.biome.BiomeGenBase.TempCategory;
|
||||
@ -96,7 +96,7 @@ public class BiomeCave {
|
||||
private static void handleBiome(World world, int x, int y, int z, EnumBiomeType type) {
|
||||
Block target = world.getBlock(x, y, z);
|
||||
|
||||
if(target.isNormalCube() && DungeonToolbox.allowedToReplace(target)) {
|
||||
if(target.isNormalCube() && target.isReplaceableOreGen(world, x, y, z, Blocks.stone)) {
|
||||
|
||||
boolean shouldGen = false;
|
||||
|
||||
|
||||
@ -3,11 +3,11 @@ package com.hbm.world.feature;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.world.generator.DungeonToolbox;
|
||||
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.gen.NoiseGeneratorPerlin;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
@ -51,7 +51,7 @@ public class DeepLayer {
|
||||
|
||||
Block target = world.getBlock(x, y, z);
|
||||
|
||||
if(target.isNormalCube() && target.getMaterial() == Material.rock && DungeonToolbox.allowedToReplace(target)) {
|
||||
if(target.isNormalCube() && target.getMaterial() == Material.rock && target.isReplaceableOreGen(world, x, y, z, Blocks.stone)) {
|
||||
|
||||
boolean lava = false;
|
||||
|
||||
|
||||
@ -5,11 +5,11 @@ import java.util.Random;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.blocks.generic.BlockStalagmite;
|
||||
import com.hbm.inventory.RecipesCommon.MetaBlock;
|
||||
import com.hbm.world.generator.DungeonToolbox;
|
||||
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.gen.NoiseGeneratorPerlin;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
@ -104,7 +104,7 @@ public class OreCave {
|
||||
for(int y = yLevel - range; y <= yLevel + range; y++) {
|
||||
Block genTarget = world.getBlock(x, y, z);
|
||||
|
||||
if(genTarget.isNormalCube() && (genTarget.getMaterial() == Material.rock || genTarget.getMaterial() == Material.ground) && DungeonToolbox.allowedToReplace(genTarget)) {
|
||||
if(genTarget.isNormalCube() && (genTarget.getMaterial() == Material.rock || genTarget.getMaterial() == Material.ground) && genTarget.isReplaceableOreGen(world, x, y, z, Blocks.stone)) {
|
||||
|
||||
boolean shouldGen = false;
|
||||
boolean canGenFluid = event.rand.nextBoolean();
|
||||
|
||||
@ -3,7 +3,6 @@ package com.hbm.world.feature;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.inventory.RecipesCommon.MetaBlock;
|
||||
import com.hbm.world.generator.DungeonToolbox;
|
||||
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
import net.minecraft.block.Block;
|
||||
@ -100,7 +99,7 @@ public class OreLayer {
|
||||
if(event.rand.nextFloat() < density) {
|
||||
Block genTarget = world.getBlock(x, y, z);
|
||||
|
||||
if(genTarget.isReplaceableOreGen(world, x, y, z, target) && DungeonToolbox.allowedToReplace(genTarget)) {
|
||||
if(genTarget.isReplaceableOreGen(world, x, y, z, target) && genTarget.isReplaceableOreGen(world, x, y, z, Blocks.stone)) {
|
||||
world.setBlock(x, y, z, ore.block, ore.meta, 2);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,11 +2,10 @@ package com.hbm.world.feature;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.world.generator.DungeonToolbox;
|
||||
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.gen.NoiseGeneratorPerlin;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
@ -76,7 +75,7 @@ public class OreLayer3D {
|
||||
if(nX * nY * nZ > threshold) {
|
||||
Block target = world.getBlock(x, y, z);
|
||||
|
||||
if(target.isNormalCube() && target.getMaterial() == Material.rock && DungeonToolbox.allowedToReplace(target)) {
|
||||
if(target.isNormalCube() && target.getMaterial() == Material.rock && target.isReplaceableOreGen(world, x, y, z, Blocks.stone)) {
|
||||
world.setBlock(x, y, z, block, meta, 2);
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,11 +3,11 @@ package com.hbm.world.feature;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.world.generator.DungeonToolbox;
|
||||
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.gen.NoiseGeneratorPerlin;
|
||||
import net.minecraftforge.event.terraingen.DecorateBiomeEvent;
|
||||
@ -52,7 +52,7 @@ public class SchistStratum {
|
||||
|
||||
Block target = world.getBlock(x, y, z);
|
||||
|
||||
if(target.isNormalCube() && target.getMaterial() == Material.rock && DungeonToolbox.allowedToReplace(target)) {
|
||||
if(target.isNormalCube() && target.getMaterial() == Material.rock && target.isReplaceableOreGen(world, x, y, z, Blocks.stone)) {
|
||||
world.setBlock(x, y, z, ModBlocks.stone_gneiss, 0, 2);
|
||||
}
|
||||
}
|
||||
|
||||
@ -94,12 +94,4 @@ public class DungeonToolbox {
|
||||
genFlowers.func_150550_a(flower, meta);
|
||||
genFlowers.generate(world, rand, x, y, z);
|
||||
}
|
||||
|
||||
public static boolean allowedToReplace(Block block) {
|
||||
|
||||
if(block == Blocks.end_portal_frame) return false;
|
||||
if(block == Blocks.bedrock) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -4147,6 +4147,7 @@ tile.machine_press.name=Befeuerte Presse
|
||||
tile.machine_puf6_tank.name=Plutoniumhexafluorid-Tank
|
||||
tile.machine_pumpjack.name=Pferdekopfpumpe
|
||||
tile.machine_radar.name=Radar
|
||||
tile.machine_radar_large.name=Großes Radar
|
||||
tile.machine_radgen.name=Strahlenbetriebener Generator
|
||||
tile.machine_reactor.name=Brutreaktor
|
||||
tile.machine_reactor_on.name=Brutreaktor
|
||||
|
||||
@ -5136,6 +5136,7 @@ tile.machine_press.name=Burner Press
|
||||
tile.machine_puf6_tank.name=Plutonium Hexafluoride Tank
|
||||
tile.machine_pumpjack.name=Pumpjack
|
||||
tile.machine_radar.name=Radar
|
||||
tile.machine_radar_large.name=Large Radar
|
||||
tile.machine_radgen.name=Radiation-Powered Engine
|
||||
tile.machine_radiolysis.name=Radioisotope Thermoelectric Generator and Radiolysis Chamber
|
||||
tile.machine_reactor.name=Breeding Reactor
|
||||
|
||||
2479
src/main/resources/assets/hbm/models/machines/radar_large.obj
Normal file
2479
src/main/resources/assets/hbm/models/machines/radar_large.obj
Normal file
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
After Width: | Height: | Size: 6.3 KiB |
Loading…
x
Reference in New Issue
Block a user