This commit is contained in:
Boblet 2024-01-15 09:37:41 +01:00
parent 4ad1dcea73
commit fbd9347fb8
13 changed files with 179 additions and 221 deletions

View File

@ -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 ## Changed
* Nuclear craters have been reworked * 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.
* 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%
## Fixed ## Fixed
* Fixed a rare crash caused by radars force-loading chunks conflicting with certain mods' chunk loading changes * Fixed trenchmaster armor not doing most of the armor calculation, making it the worst armor
* Fixed PWR fuel rods not having any radiation value assigned to them * Fixed glowing mushrooms not being able to be bonemealed
* Fixed trenchmaster helmet not having gas mask protection * Fixed strand caster having one port that does not work with certain rotations
* Fixed large thermobaric artillery rocket still using the wrong slag block * Fixed fallout being able to replace bedrock
* 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

View File

@ -10,12 +10,8 @@ import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemMold; import com.hbm.items.machine.ItemMold;
import com.hbm.items.machine.ItemScraps; import com.hbm.items.machine.ItemScraps;
import com.hbm.tileentity.TileEntityProxyCombo; 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.tileentity.machine.TileEntityMachineStrandCaster;
import com.hbm.util.I18nUtil; 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.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityItem;
@ -30,7 +26,6 @@ import net.minecraftforge.common.util.ForgeDirection;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Random;
public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcceptor, ILookOverlay, IToolable { public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcceptor, ILookOverlay, IToolable {
@ -38,9 +33,11 @@ public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcce
super(Material.iron); super(Material.iron);
} }
//reminder, if the machine is a solid brick, get dimensions will already handle it without the need to use fillSapce // 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 // the order is up, down, forward, backward, left, right
//x is for left(-)/right(+), z is for forward(+)/backward(-), y you already know // x is for left(-)/right(+), z is for forward(+)/backward(-), y you already
// know
@Override @Override
public int[] getDimensions() { public int[] getDimensions() {
return new int[] { 0, 0, 6, 0, 1, 0 }; return new int[] { 0, 0, 6, 0, 1, 0 };
@ -179,7 +176,8 @@ public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcce
public void printHook(RenderGameOverlayEvent.Pre event, World world, int x, int y, int z) { public void printHook(RenderGameOverlayEvent.Pre event, World world, int x, int y, int z) {
int[] coords = findCore(world, x, y, z); int[] coords = findCore(world, x, y, z);
if (coords == null) return; 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]);
@ -200,7 +198,8 @@ public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcce
x += dir.offsetX * o; x += dir.offsetX * o;
z += dir.offsetZ * o; z += dir.offsetZ * o;
if (!MultiblockHandlerXR.checkSpace(world, x, y, z, getDimensions(), x, y, z, dir)) return false; 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); return MultiblockHandlerXR.checkSpace(world, x, y, z, new int[] { 2, 0, 1, 0, 1, 0 }, x, y, z, dir);
} }
@ -222,11 +221,9 @@ public class MachineStrandCaster extends BlockDummyable implements ICrucibleAcce
player.inventoryContainer.detectAndSendChanges(); player.inventoryContainer.detectAndSendChanges();
} }
cast.markDirty();
cast.slots[0] = null; cast.slots[0] = null;
cast.markDirty();
return true; return true;
} }
} }

View File

@ -108,6 +108,7 @@ public class WorldConfig {
public static int meteorShowerChance = 20 * 60 * 5; public static int meteorShowerChance = 20 * 60 * 5;
public static int meteorShowerDuration = 6000; public static int meteorShowerDuration = 6000;
public static boolean enableCraterBiomes = true;
public static int craterBiomeId = 80; public static int craterBiomeId = 80;
public static int craterBiomeInnerId = 81; public static int craterBiomeInnerId = 81;
public static int craterBiomeOuterId = 82; 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); 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; 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); 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); 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); craterBiomeOuterId = CommonConfig.createConfigInt(config, CATEGORY_BIOMES, "17.B02_craterBiomeOuterId", "The numeric ID for the outer crater biome", 82);

View File

@ -4,6 +4,7 @@ import com.hbm.blocks.ModBlocks;
import com.hbm.config.BombConfig; import com.hbm.config.BombConfig;
import com.hbm.config.FalloutConfigJSON; import com.hbm.config.FalloutConfigJSON;
import com.hbm.config.FalloutConfigJSON.FalloutEntry; import com.hbm.config.FalloutConfigJSON.FalloutEntry;
import com.hbm.config.WorldConfig;
import com.hbm.entity.item.EntityFallingBlockNT; import com.hbm.entity.item.EntityFallingBlockNT;
import com.hbm.saveddata.AuxSavedData; import com.hbm.saveddata.AuxSavedData;
import com.hbm.world.WorldUtil; import com.hbm.world.WorldUtil;
@ -114,6 +115,7 @@ public class EntityFalloutRain extends Entity {
} }
public static BiomeGenBase getBiomeChange(double dist, int scale) { public static BiomeGenBase getBiomeChange(double dist, int scale) {
if(!WorldConfig.enableCraterBiomes) return null;
if(scale >= 150 && dist < 15) return BiomeGenCraterBase.craterInnerBiome; if(scale >= 150 && dist < 15) return BiomeGenCraterBase.craterInnerBiome;
if(scale >= 100 && dist < 55) return BiomeGenCraterBase.craterBiome; if(scale >= 100 && dist < 55) return BiomeGenCraterBase.craterBiome;
if(scale >= 25) return BiomeGenCraterBase.craterOuterBiome; if(scale >= 25) return BiomeGenCraterBase.craterOuterBiome;
@ -160,6 +162,7 @@ public class EntityFalloutRain extends Entity {
Block b = worldObj.getBlock(x, y, z); Block b = worldObj.getBlock(x, y, z);
if(b.getMaterial() == Material.air) continue; if(b.getMaterial() == Material.air) continue;
if(b == Blocks.bedrock) return;
Block ab = worldObj.getBlock(x, y + 1, z); Block ab = worldObj.getBlock(x, y + 1, z);
int meta = worldObj.getBlockMetadata(x, y, z); int meta = worldObj.getBlockMetadata(x, y, z);

View File

@ -295,7 +295,7 @@ public class MainRegistry {
OreDictManager.registerGroups(); //important to run first OreDictManager.registerGroups(); //important to run first
OreDictManager.registerOres(); OreDictManager.registerOres();
BiomeGenCraterBase.initDictionary(); if(WorldConfig.enableCraterBiomes) BiomeGenCraterBase.initDictionary();
Library.superuser.add("192af5d7-ed0f-48d8-bd89-9d41af8524f8"); Library.superuser.add("192af5d7-ed0f-48d8-bd89-9d41af8524f8");
Library.superuser.add("5aee1e3d-3767-4987-a222-e7ce1fbdf88e"); Library.superuser.add("5aee1e3d-3767-4987-a222-e7ce1fbdf88e");

View File

@ -8,7 +8,6 @@ import java.util.function.Function;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.stream.JsonWriter; import com.google.gson.stream.JsonWriter;
import com.hbm.blocks.ModBlocks; import com.hbm.blocks.ModBlocks;
import com.hbm.config.WeaponConfig;
import com.hbm.extprop.HbmLivingProps; import com.hbm.extprop.HbmLivingProps;
import com.hbm.interfaces.IControlReceiver; import com.hbm.interfaces.IControlReceiver;
import com.hbm.inventory.container.ContainerMachineRadarNT; import com.hbm.inventory.container.ContainerMachineRadarNT;
@ -19,11 +18,8 @@ import com.hbm.items.ModItems;
import com.hbm.items.tool.ItemCoordinateBase; import com.hbm.items.tool.ItemCoordinateBase;
import com.hbm.lib.Library; import com.hbm.lib.Library;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import com.hbm.saveddata.SatelliteSavedData; import com.hbm.saveddata.SatelliteSavedData;
import com.hbm.saveddata.satellites.Satellite; import com.hbm.saveddata.satellites.Satellite;
import com.hbm.saveddata.satellites.Satellite.Interfaces;
import com.hbm.saveddata.satellites.SatelliteHorizons; import com.hbm.saveddata.satellites.SatelliteHorizons;
import com.hbm.saveddata.satellites.SatelliteLaser; import com.hbm.saveddata.satellites.SatelliteLaser;
import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IConfigurableMachine;
@ -40,12 +36,10 @@ import api.hbm.entity.IRadarDetectable;
import api.hbm.entity.IRadarDetectableNT; import api.hbm.entity.IRadarDetectableNT;
import api.hbm.entity.IRadarDetectableNT.RadarScanParams; import api.hbm.entity.IRadarDetectableNT.RadarScanParams;
import api.hbm.entity.RadarEntry; 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.common.network.internal.FMLNetworkHandler;
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 io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import net.minecraft.block.Block;
import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
@ -59,7 +53,6 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraft.world.WorldServer; import net.minecraft.world.WorldServer;
import net.minecraftforge.common.util.ForgeDirection;
/** /**
* Now with SmЯt lag-free entity detection! (patent pending) * Now with SmЯt lag-free entity detection! (patent pending)
@ -464,10 +457,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I
worldObj.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); 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) { if(link != null && link.getItem() == ModItems.radar_linker) {
BlockPos pos = ItemCoordinateBase.getPosition(link); BlockPos pos = ItemCoordinateBase.getPosition(link);

View File

@ -142,7 +142,7 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase
new DirPos(xCoord + rot.offsetX * 2 - dir.offsetX, yCoord, zCoord + rot.offsetZ * 2 - dir.offsetZ, rot), 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 - 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 * 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 @Override
public boolean standardCheck(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) { public boolean standardCheck(World world, int x, int y, int z, ForgeDirection side, Mats.MaterialStack stack) {
if(this.type != null && this.type != stack.material) if(this.type != null && this.type != stack.material) return false;
return false;
return !(this.amount >= this.getCapacity() || getInstalledMold() == null); return !(this.amount >= this.getCapacity() || getInstalledMold() == null);
} }
@ -210,9 +209,7 @@ public class TileEntityMachineStrandCaster extends TileEntityFoundryCastingBase
private void updateConnections() { private void updateConnections() {
for(DirPos pos : getFluidConPos()) { for(DirPos pos : getFluidConPos()) {
this.trySubscribe(water.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); this.trySubscribe(water.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
} this.sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
for(DirPos pos : getFluidConPos()) {
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