mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
boner
This commit is contained in:
parent
9e5c4e4a8e
commit
02ee44e1ce
@ -1,3 +1,7 @@
|
|||||||
|
## Added
|
||||||
|
* Boxcables
|
||||||
|
* Like boxducts, but for power
|
||||||
|
|
||||||
## Changed
|
## Changed
|
||||||
* Updated meteors
|
* Updated meteors
|
||||||
* Meteors will now punch through weak blocks like leaves instead of getting stuck on trees
|
* Meteors will now punch through weak blocks like leaves instead of getting stuck on trees
|
||||||
@ -5,6 +9,9 @@
|
|||||||
* Falling meteors will produce a sound instead of stealthily blowing people up
|
* Falling meteors will produce a sound instead of stealthily blowing people up
|
||||||
* Fallen meteors will now be placed deeper into the actual crater instead of hovering awkwardly over the hole
|
* Fallen meteors will now be placed deeper into the actual crater instead of hovering awkwardly over the hole
|
||||||
* Addd QMAW pages for the particle accelerator parts along with a PA overview page and a simple step by step construction tutorial
|
* Addd QMAW pages for the particle accelerator parts along with a PA overview page and a simple step by step construction tutorial
|
||||||
|
* Increased the acidizer partitioner's input limit from 9 to 45 slots
|
||||||
|
|
||||||
## Fixed
|
## Fixed
|
||||||
* Fixed arc furnace only allowing electrodes to be inserted when the lid is down instead of up
|
* Fixed arc furnace only allowing electrodes to be inserted when the lid is down instead of up
|
||||||
|
* Fixed issue where the `amounts` tracker wasn't being used correctly when using a custom acidizer config, preventing the acidizer partitioner from working
|
||||||
|
* Fixed multi fluid ID search potentially not working on systems with a non-latin locale
|
||||||
@ -79,7 +79,7 @@ public class TritiumLamp extends Block implements ISpotlight {
|
|||||||
private void updateBeam(World world, int x, int y, int z) {
|
private void updateBeam(World world, int x, int y, int z) {
|
||||||
if(!isOn) return;
|
if(!isOn) return;
|
||||||
|
|
||||||
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) Spotlight.propagateBeam(world, x, y, z, dir, getBeamLength());
|
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) Spotlight.propagateBeam(world, x, y, z, dir, getBeamLength(), getMeta());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -98,6 +98,12 @@ public class TritiumLamp extends Block implements ISpotlight {
|
|||||||
return new ItemStack(getOff());
|
return new ItemStack(getOff());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected int getMeta() {
|
||||||
|
if(this == ModBlocks.lamp_tritium_green_off || this == ModBlocks.lamp_tritium_green_on) return Spotlight.META_GREEN;
|
||||||
|
if(this == ModBlocks.lamp_tritium_blue_off || this == ModBlocks.lamp_tritium_blue_on) return Spotlight.META_BLUE;
|
||||||
|
return Spotlight.META_YELLOW;
|
||||||
|
}
|
||||||
|
|
||||||
protected Block getOff() {
|
protected Block getOff() {
|
||||||
if(this == ModBlocks.lamp_tritium_green_on) return ModBlocks.lamp_tritium_green_off;
|
if(this == ModBlocks.lamp_tritium_green_on) return ModBlocks.lamp_tritium_green_off;
|
||||||
if(this == ModBlocks.lamp_tritium_blue_on) return ModBlocks.lamp_tritium_blue_off;
|
if(this == ModBlocks.lamp_tritium_blue_on) return ModBlocks.lamp_tritium_blue_off;
|
||||||
|
|||||||
@ -28,6 +28,10 @@ import net.minecraftforge.common.util.ForgeDirection;
|
|||||||
|
|
||||||
public class Spotlight extends Block implements ISpotlight, INBTBlockTransformable {
|
public class Spotlight extends Block implements ISpotlight, INBTBlockTransformable {
|
||||||
|
|
||||||
|
public static final int META_YELLOW = 0;
|
||||||
|
public static final int META_GREEN = 1;
|
||||||
|
public static final int META_BLUE = 2;
|
||||||
|
|
||||||
public static boolean disableOnGeneration = true;
|
public static boolean disableOnGeneration = true;
|
||||||
|
|
||||||
// I'd be extending the ReinforcedLamp class if it wasn't for the inverted behaviour of these specific lights
|
// I'd be extending the ReinforcedLamp class if it wasn't for the inverted behaviour of these specific lights
|
||||||
@ -223,7 +227,7 @@ public class Spotlight extends Block implements ISpotlight, INBTBlockTransformab
|
|||||||
if(!isOn) return;
|
if(!isOn) return;
|
||||||
|
|
||||||
ForgeDirection dir = getDirection(world, x, y, z);
|
ForgeDirection dir = getDirection(world, x, y, z);
|
||||||
propagateBeam(world, x, y, z, dir, beamLength);
|
propagateBeam(world, x, y, z, dir, beamLength, META_YELLOW);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ForgeDirection getDirection(IBlockAccess world, int x, int y, int z) {
|
public ForgeDirection getDirection(IBlockAccess world, int x, int y, int z) {
|
||||||
@ -281,7 +285,7 @@ public class Spotlight extends Block implements ISpotlight, INBTBlockTransformab
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Recursively add beam blocks, updating any that already exist with new incoming light directions
|
// Recursively add beam blocks, updating any that already exist with new incoming light directions
|
||||||
public static void propagateBeam(World world, int x, int y, int z, ForgeDirection dir, int distance) {
|
public static void propagateBeam(World world, int x, int y, int z, ForgeDirection dir, int distance, int meta) {
|
||||||
distance--;
|
distance--;
|
||||||
if(distance <= 0)
|
if(distance <= 0)
|
||||||
return;
|
return;
|
||||||
@ -295,7 +299,7 @@ public class Spotlight extends Block implements ISpotlight, INBTBlockTransformab
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if(!(block instanceof SpotlightBeam)) {
|
if(!(block instanceof SpotlightBeam)) {
|
||||||
world.setBlock(x, y, z, ModBlocks.spotlight_beam);
|
world.setBlock(x, y, z, ModBlocks.spotlight_beam, meta, 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
// If we encounter an existing beam, add a new INCOMING direction to the
|
// If we encounter an existing beam, add a new INCOMING direction to the
|
||||||
@ -303,7 +307,7 @@ public class Spotlight extends Block implements ISpotlight, INBTBlockTransformab
|
|||||||
if (SpotlightBeam.setDirection(world, x, y, z, dir, true) == 0)
|
if (SpotlightBeam.setDirection(world, x, y, z, dir, true) == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
propagateBeam(world, x, y, z, dir, distance);
|
propagateBeam(world, x, y, z, dir, distance, meta);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Recursively delete beam blocks, if they aren't still illuminated from a different direction
|
// Recursively delete beam blocks, if they aren't still illuminated from a different direction
|
||||||
@ -326,7 +330,7 @@ public class Spotlight extends Block implements ISpotlight, INBTBlockTransformab
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Travels back through a beam to the source, and if found, repropagates the beam
|
// Travels back through a beam to the source, and if found, repropagates the beam
|
||||||
public static void backPropagate(World world, int x, int y, int z, ForgeDirection dir) {
|
public static void backPropagate(World world, int x, int y, int z, ForgeDirection dir, int meta) {
|
||||||
x -= dir.offsetX;
|
x -= dir.offsetX;
|
||||||
y -= dir.offsetY;
|
y -= dir.offsetY;
|
||||||
z -= dir.offsetZ;
|
z -= dir.offsetZ;
|
||||||
@ -334,12 +338,12 @@ public class Spotlight extends Block implements ISpotlight, INBTBlockTransformab
|
|||||||
Block block = world.getBlock(x, y, z);
|
Block block = world.getBlock(x, y, z);
|
||||||
if(block instanceof ISpotlight) {
|
if(block instanceof ISpotlight) {
|
||||||
ISpotlight spot = (ISpotlight) block;
|
ISpotlight spot = (ISpotlight) block;
|
||||||
propagateBeam(world, x, y, z, dir, spot.getBeamLength());
|
propagateBeam(world, x, y, z, dir, spot.getBeamLength(), meta);
|
||||||
} else if(!(block instanceof SpotlightBeam)) {
|
} else if(!(block instanceof SpotlightBeam)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
backPropagate(world, x, y, z, dir);
|
backPropagate(world, x, y, z, dir, meta);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Block getOff() {
|
protected Block getOff() {
|
||||||
|
|||||||
@ -29,8 +29,8 @@ public class SpotlightBeam extends BlockBeamBase {
|
|||||||
if (world.isRemote) return;
|
if (world.isRemote) return;
|
||||||
if (neighborBlock instanceof SpotlightBeam) return;
|
if (neighborBlock instanceof SpotlightBeam) return;
|
||||||
|
|
||||||
for (ForgeDirection dir : getDirections(world, x, y, z)) {
|
for(ForgeDirection dir : getDirections(world, x, y, z)) {
|
||||||
Spotlight.backPropagate(world, x, y, z, dir);
|
Spotlight.backPropagate(world, x, y, z, dir, world.getBlockMetadata(x, y, z));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -139,8 +139,10 @@ public class CranePartitioner extends BlockContainer implements IConveyorBelt, I
|
|||||||
|
|
||||||
public static class TileEntityCranePartitioner extends TileEntityMachineBase {
|
public static class TileEntityCranePartitioner extends TileEntityMachineBase {
|
||||||
|
|
||||||
|
public static final int SLOT_COUNT = 45;
|
||||||
|
|
||||||
public TileEntityCranePartitioner() {
|
public TileEntityCranePartitioner() {
|
||||||
super(18);
|
super(SLOT_COUNT * 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public String getName() { return "container.partitioner"; }
|
@Override public String getName() { return "container.partitioner"; }
|
||||||
@ -151,7 +153,7 @@ public class CranePartitioner extends BlockContainer implements IConveyorBelt, I
|
|||||||
if(!worldObj.isRemote) {
|
if(!worldObj.isRemote) {
|
||||||
|
|
||||||
List<ItemStack> stacks = new ArrayList();
|
List<ItemStack> stacks = new ArrayList();
|
||||||
for(int i = 0; i < 9; i++) if(slots[i] != null) stacks.add(slots[i]);
|
for(int i = 0; i < SLOT_COUNT; i++) if(slots[i] != null) stacks.add(slots[i]);
|
||||||
stacks.sort(stackSizeComparator);
|
stacks.sort(stackSizeComparator);
|
||||||
boolean markDirty = false;
|
boolean markDirty = false;
|
||||||
|
|
||||||
@ -168,7 +170,7 @@ public class CranePartitioner extends BlockContainer implements IConveyorBelt, I
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for(int i = 0; i < 9; i++) if(slots[i] != null && slots[i].stackSize <= 0) slots[i] = null;
|
for(int i = 0; i < SLOT_COUNT; i++) if(slots[i] != null && slots[i].stackSize <= 0) slots[i] = null;
|
||||||
if(markDirty) this.markDirty();
|
if(markDirty) this.markDirty();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -183,17 +185,25 @@ public class CranePartitioner extends BlockContainer implements IConveyorBelt, I
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canExtractItem(int slot, ItemStack stack, int side) {
|
public boolean canExtractItem(int slot, ItemStack stack, int side) {
|
||||||
return slot >= 9;
|
return slot >= SLOT_COUNT;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isItemValidForSlot(int i, ItemStack stack) {
|
public boolean isItemValidForSlot(int i, ItemStack stack) {
|
||||||
return i <= 8 && CrystallizerRecipes.getAmount(stack) >= 1;
|
return i <= (SLOT_COUNT - 1) && CrystallizerRecipes.getAmount(stack) >= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected int[] access;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int[] getAccessibleSlotsFromSide(int side) {
|
public int[] getAccessibleSlotsFromSide(int side) {
|
||||||
return new int[] { 0, 1, 2, 3, 4, 5, 6 ,7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 };
|
|
||||||
|
if(access == null) {
|
||||||
|
access = new int[SLOT_COUNT]; // writing this by hand is for chumps
|
||||||
|
for(int i = 0; i < SLOT_COUNT; i++) access[i] = i;
|
||||||
|
}
|
||||||
|
|
||||||
|
return access;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -175,7 +175,7 @@ public class GUIScreenFluid extends GuiScreen {
|
|||||||
String subs = this.search.getText().toLowerCase(Locale.US);
|
String subs = this.search.getText().toLowerCase(Locale.US);
|
||||||
|
|
||||||
for(FluidType type : Fluids.getInNiceOrder()) {
|
for(FluidType type : Fluids.getInNiceOrder()) {
|
||||||
String name = type.getLocalizedName().toLowerCase();
|
String name = type.getLocalizedName().toLowerCase(Locale.US);
|
||||||
|
|
||||||
if(name.contains(subs) && !type.hasNoID()) {
|
if(name.contains(subs) && !type.hasNoID()) {
|
||||||
this.searchArray[next] = type;
|
this.searchArray[next] = type;
|
||||||
|
|||||||
@ -383,9 +383,9 @@ public class CrystallizerRecipes extends SerializableRecipe {
|
|||||||
input.stacksize = 1;
|
input.stacksize = 1;
|
||||||
cRecipe.acidAmount = fluid.fill;
|
cRecipe.acidAmount = fluid.fill;
|
||||||
if(input instanceof ComparableStack) {
|
if(input instanceof ComparableStack) {
|
||||||
recipes.put(new Pair(((ComparableStack) input), fluid.type), cRecipe);
|
this.registerRecipe(input, cRecipe, fluid);
|
||||||
} else if(input instanceof OreDictStack) {
|
} else if(input instanceof OreDictStack) {
|
||||||
recipes.put(new Pair(((OreDictStack) input).name, fluid.type), cRecipe);
|
this.registerRecipe(input, cRecipe, fluid);
|
||||||
}
|
}
|
||||||
if(obj.has("productivity")) cRecipe.prod(obj.get("productivity").getAsFloat());
|
if(obj.has("productivity")) cRecipe.prod(obj.get("productivity").getAsFloat());
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user