This commit is contained in:
Tom Dodd 2025-02-22 15:33:54 +00:00
parent ed07723a96
commit 7f9b66779b
18 changed files with 34 additions and 28 deletions

View File

@ -1,3 +1,7 @@
v2o.8.6
* Fixed Turbine crash on servers
v2o.8.5
+ Added Distiller and Infiltrator sound effects

View File

@ -7,7 +7,7 @@ modGroup = nc
# Version of your mod.
# This field can be left empty if you want your mod's version to be determined by the latest git tag instead.
modVersion = 2o.8.5
modVersion = 2o.8.6
# Whether to use the old jar naming structure (modid-mcversion-version) instead of the new version (modid-version)
includeMCVersionJar = true

View File

@ -4,7 +4,7 @@ public class Global {
public static final String MOD_ID = "nuclearcraft";
public static final String MOD_NAME = "NuclearCraft: Overhauled";
public static final String VERSION = "2o.8.5";
public static final String VERSION = "2o.8.6";
public static final String DEPENDENCIES = "required-after:forge@[14.23.5.2847,);after:tconstruct;after:conarm;after:openterraingenerator;after:alchemistry;after:harvestcraft;after:groovyscript";
public static final String NC_CLIENT_PROXY = "nc.proxy.ClientProxy";

View File

@ -116,7 +116,6 @@ public class NCConfig {
public static String[] machine_cathode_efficiency;
public static String[] machine_anode_efficiency;
public static double machine_electrolyzer_sound_volume;
public static double machine_electrolyzer_particles;
public static int machine_distiller_time;
public static int machine_distiller_power;
@ -562,7 +561,6 @@ public class NCConfig {
machine_cathode_efficiency = sync(CATEGORY_MACHINE, "machine_cathode_efficiency", new String[] {"Iron@0.6", "Nickel@0.7", "Molybdenum@0.8", "Cobalt@0.9", "Platinum@1.0", "Palladium@1.0"}, LIST);
machine_anode_efficiency = sync(CATEGORY_MACHINE, "machine_anode_efficiency", new String[] {"CopperOxide@0.6", "TinOxide@0.6", "NickelOxide@0.7", "CobaltOxide@0.8", "RutheniumOxide@0.9", "IridiumOxide@1.0"}, LIST);
machine_electrolyzer_sound_volume = sync(CATEGORY_MACHINE, "machine_electrolyzer_sound_volume", 1D, 0D, 15D);
machine_electrolyzer_particles = sync(CATEGORY_MACHINE, "machine_electrolyzer_particles", 0.025D, 0D, 1D);
machine_distiller_time = sync(CATEGORY_MACHINE, "machine_distiller_time", 3200, 1, 128000);
machine_distiller_power = sync(CATEGORY_MACHINE, "machine_distiller_power", 40, 1, 128000);

View File

@ -20,7 +20,7 @@ public class ContainerProcessorImpl {
}
}
public static class ContainerBasicUpgradableProcessor<TILE extends TileEntity & IUpgradableBasicProcessor<TILE, PACKET>, PACKET extends ProcessorUpdatePacket> extends ContainerUpgradableProcessor<TILE, PACKET, ProcessorContainerInfoImpl.BasicUpgradableProcessorContainerInfo<TILE, PACKET>> {
public static class ContainerBasicUpgradableProcessor<TILE extends TileEntity & IBasicUpgradableProcessor<TILE, PACKET>, PACKET extends ProcessorUpdatePacket> extends ContainerUpgradableProcessor<TILE, PACKET, ProcessorContainerInfoImpl.BasicUpgradableProcessorContainerInfo<TILE, PACKET>> {
public ContainerBasicUpgradableProcessor(EntityPlayer player, TILE tile) {
super(player, tile);

View File

@ -19,7 +19,7 @@ public class GuiProcessorImpl {
}
}
public static class GuiBasicUpgradableProcessor<TILE extends TileEntity & IUpgradableBasicProcessor<TILE, PACKET>, PACKET extends ProcessorUpdatePacket> extends GuiUpgradableProcessor<TILE, PACKET, ProcessorContainerInfoImpl.BasicUpgradableProcessorContainerInfo<TILE, PACKET>> {
public static class GuiBasicUpgradableProcessor<TILE extends TileEntity & IBasicUpgradableProcessor<TILE, PACKET>, PACKET extends ProcessorUpdatePacket> extends GuiUpgradableProcessor<TILE, PACKET, ProcessorContainerInfoImpl.BasicUpgradableProcessorContainerInfo<TILE, PACKET>> {
public GuiBasicUpgradableProcessor(Container inventory, EntityPlayer player, TILE tile, String textureLocation) {
super(inventory, player, tile, textureLocation);

View File

@ -35,7 +35,7 @@ public class JEIRecipeWrapperImpl {
}
}
public static class JEIBasicUpgradableProcessorRecipeWrapper<TILE extends TileEntity & IUpgradableBasicProcessor<TILE, PACKET>, PACKET extends ProcessorUpdatePacket, WRAPPER extends JEIBasicUpgradableProcessorRecipeWrapper<TILE, PACKET, WRAPPER>> extends JEIProcessorRecipeWrapper<TILE, PACKET, ProcessorContainerInfoImpl.BasicUpgradableProcessorContainerInfo<TILE, PACKET>, WRAPPER> {
public static class JEIBasicUpgradableProcessorRecipeWrapper<TILE extends TileEntity & IBasicUpgradableProcessor<TILE, PACKET>, PACKET extends ProcessorUpdatePacket, WRAPPER extends JEIBasicUpgradableProcessorRecipeWrapper<TILE, PACKET, WRAPPER>> extends JEIProcessorRecipeWrapper<TILE, PACKET, ProcessorContainerInfoImpl.BasicUpgradableProcessorContainerInfo<TILE, PACKET>, WRAPPER> {
public JEIBasicUpgradableProcessorRecipeWrapper(String name, IGuiHelper guiHelper, BasicRecipe recipe) {
super(name, guiHelper, recipe);

View File

@ -13,18 +13,16 @@ import nc.tile.machine.*;
import nc.tile.multiblock.TilePartAbstract.SyncReason;
import nc.util.*;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumFacing.Axis;
import net.minecraft.util.EnumParticleTypes;
import net.minecraft.util.math.BlockPos;
import net.minecraftforge.fml.relauncher.*;
import javax.annotation.Nullable;
import java.util.*;
import java.util.function.*;
import java.util.function.Consumer;
import static nc.config.NCConfig.*;
import static nc.config.NCConfig.machine_electrolyzer_sound_volume;
public class ElectrolyzerLogic extends MachineLogic {
@ -401,7 +399,7 @@ public class ElectrolyzerLogic extends MachineLogic {
@SideOnly(Side.CLIENT)
protected void updateParticles() {
if (isProcessing && multiblock.isAssembled() && !Minecraft.getMinecraft().isGamePaused()) {
/*if (isProcessing && multiblock.isAssembled() && !Minecraft.getMinecraft().isGamePaused()) {
int minY = multiblock.getMinY(), interiorY = multiblock.getInteriorLengthY();
for (TileElectrolyzerCathodeTerminal cathode : getParts(TileElectrolyzerCathodeTerminal.class)) {
BlockPos pos = cathode.getPos();
@ -415,12 +413,12 @@ public class ElectrolyzerLogic extends MachineLogic {
spawnElectrodeParticles(pos.up(), interiorY);
}
}
}
}*/
}
@SideOnly(Side.CLIENT)
protected void spawnElectrodeParticles(BlockPos pos, int height) {
double centerX = pos.getX() + 0.5D, minCenterY = pos.getY() + 0.5D, centerZ = pos.getZ() + 0.5D;
/*double centerX = pos.getX() + 0.5D, minCenterY = pos.getY() + 0.5D, centerZ = pos.getZ() + 0.5D;
for (int i = 0; i < height; ++i) {
if (rand.nextDouble() < machine_electrolyzer_particles) {
double x = centerX + (rand.nextBoolean() ? 1D : -1D) * (0.5D + 0.125 * rand.nextDouble());
@ -428,7 +426,7 @@ public class ElectrolyzerLogic extends MachineLogic {
double z = centerZ + (rand.nextBoolean() ? 1D : -1D) * (0.5D + 0.125 * rand.nextDouble());
getWorld().spawnParticle(EnumParticleTypes.WATER_BUBBLE, false, x, y, z, 0D, 0D, 0D);
}
}
}*/
}
// NBT

View File

@ -32,7 +32,7 @@ public class Machine extends CuboidalMultiblock<Machine, IMachinePart> implement
public boolean isMachineOn, fullHalt;
@SideOnly(Side.CLIENT)
public final Object2ObjectMap<BlockPos, ISound> soundMap = new Object2ObjectOpenHashMap<>();
protected Object2ObjectMap<BlockPos, ISound> soundMap;
public boolean refreshSounds = true;
protected final Set<EntityPlayer> updatePacketListeners = new ObjectOpenHashSet<>();
@ -164,6 +164,10 @@ public class Machine extends CuboidalMultiblock<Machine, IMachinePart> implement
@Override
protected void updateClient() {
if (soundMap == null) {
soundMap = new Object2ObjectOpenHashMap<>();
}
logic.onUpdateClient();
}

View File

@ -414,7 +414,7 @@ public class MachineLogic extends MultiblockLogic<Machine, MachineLogic, IMachin
setRecipeStats(recipeInfo == null ? null : recipeInfo.recipe);
if (recipeInfo == null) {
if (productionCount > 0) {
recipeUnitInfo = recipeUnitInfo.withRateMultiplier(recipeUnitInfo.rateMultiplier * productionCount / (1D + productionCount));
recipeUnitInfo = recipeUnitInfo.withRateMultiplier(recipeUnitInfo.rateMultiplier / (1D + 1D / productionCount));
}
else {
recipeUnitInfo = RecipeUnitInfo.DEFAULT;

View File

@ -67,7 +67,7 @@ public class Turbine extends CuboidalMultiblock<Turbine, ITurbinePart> implement
public final DoubleList expansionLevels = new DoubleArrayList(), rawBladeEfficiencies = new DoubleArrayList();
@SideOnly(Side.CLIENT)
public final Object2ObjectMap<BlockPos, ISound> soundMap = new Object2ObjectOpenHashMap<>();
protected Object2ObjectMap<BlockPos, ISound> soundMap;
public boolean refreshSounds = true;
public String particleEffect = "cloud";
@ -316,6 +316,10 @@ public class Turbine extends CuboidalMultiblock<Turbine, ITurbinePart> implement
@Override
protected void updateClient() {
if (soundMap == null) {
soundMap = new Object2ObjectOpenHashMap<>();
}
logic.onUpdateClient();
}

View File

@ -11,7 +11,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.*;
import net.minecraftforge.items.*;
public interface IUpgradableBasicProcessor<TILE extends TileEntity & IUpgradableBasicProcessor<TILE, PACKET>, PACKET extends ProcessorUpdatePacket> extends IProcessor<TILE, PACKET, ProcessorContainerInfoImpl.BasicUpgradableProcessorContainerInfo<TILE, PACKET>>, ITileInstallable {
public interface IBasicUpgradableProcessor<TILE extends TileEntity & IBasicUpgradableProcessor<TILE, PACKET>, PACKET extends ProcessorUpdatePacket> extends IProcessor<TILE, PACKET, ProcessorContainerInfoImpl.BasicUpgradableProcessorContainerInfo<TILE, PACKET>>, ITileInstallable {
default boolean tryInstall(EntityPlayer player, EnumHand hand, EnumFacing facing) {
ItemStack held = player.getHeldItem(hand);

View File

@ -6,7 +6,6 @@ import nc.network.tile.processor.ProcessorUpdatePacket;
import nc.recipe.*;
import nc.recipe.ingredient.*;
import nc.tile.ITileGui;
import nc.tile.dummy.IInterfaceable;
import nc.tile.fluid.ITileFluid;
import nc.tile.internal.fluid.*;
import nc.tile.internal.fluid.Tank.TankInfo;
@ -28,7 +27,7 @@ import net.minecraftforge.items.IItemHandler;
import javax.annotation.*;
import java.util.*;
public interface IProcessor<TILE extends TileEntity & IProcessor<TILE, PACKET, INFO>, PACKET extends ProcessorUpdatePacket, INFO extends ProcessorContainerInfo<TILE, PACKET, INFO>> extends ITickable, ITileInventory, ITileFluid, IInterfaceable, ITileGui<TILE, PACKET, INFO> {
public interface IProcessor<TILE extends TileEntity & IProcessor<TILE, PACKET, INFO>, PACKET extends ProcessorUpdatePacket, INFO extends ProcessorContainerInfo<TILE, PACKET, INFO>> extends ITickable, ITileInventory, ITileFluid, ITileGui<TILE, PACKET, INFO> {
BasicRecipeHandler getRecipeHandler();

View File

@ -8,6 +8,7 @@ import nc.ModCheck;
import nc.handler.TileInfoHandler;
import nc.network.tile.processor.EnergyProcessorUpdatePacket;
import nc.recipe.*;
import nc.tile.dummy.IInterfaceable;
import nc.tile.energy.ITileEnergy;
import nc.tile.energyFluid.TileEnergyFluidSidedInventory;
import nc.tile.fluid.ITileFluid;
@ -32,7 +33,7 @@ import javax.annotation.*;
import java.util.*;
@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")
public abstract class TileEnergyProcessor<TILE extends TileEnergyProcessor<TILE, INFO>, INFO extends ProcessorContainerInfo<TILE, EnergyProcessorUpdatePacket, INFO>> extends TileEnergyFluidSidedInventory implements IProcessor<TILE, EnergyProcessorUpdatePacket, INFO>, SimpleComponent {
public abstract class TileEnergyProcessor<TILE extends TileEnergyProcessor<TILE, INFO>, INFO extends ProcessorContainerInfo<TILE, EnergyProcessorUpdatePacket, INFO>> extends TileEnergyFluidSidedInventory implements IProcessor<TILE, EnergyProcessorUpdatePacket, INFO>, IInterfaceable, SimpleComponent {
protected INFO info;
@ -393,7 +394,7 @@ public abstract class TileEnergyProcessor<TILE extends TileEnergyProcessor<TILE,
}
}
}
return IProcessor.super.onUseMultitool(multitool, player, world, facing, hitX, hitY, hitZ);
return IInterfaceable.super.onUseMultitool(multitool, player, world, facing, hitX, hitY, hitZ);
}
// NBT

View File

@ -19,7 +19,7 @@ public class TileProcessorImpl {
}
}
public static abstract class TileBasicUpgradableEnergyProcessor<TILE extends TileBasicUpgradableEnergyProcessor<TILE>> extends TileUpgradableEnergyProcessor<TILE, ProcessorContainerInfoImpl.BasicUpgradableProcessorContainerInfo<TILE, EnergyProcessorUpdatePacket>> implements IUpgradableBasicProcessor<TILE, EnergyProcessorUpdatePacket> {
public static abstract class TileBasicUpgradableEnergyProcessor<TILE extends TileBasicUpgradableEnergyProcessor<TILE>> extends TileUpgradableEnergyProcessor<TILE, ProcessorContainerInfoImpl.BasicUpgradableProcessorContainerInfo<TILE, EnergyProcessorUpdatePacket>> implements IBasicUpgradableProcessor<TILE, EnergyProcessorUpdatePacket> {
/**
* Don't use this constructor!

View File

@ -19,7 +19,7 @@ public class ProcessorContainerInfoImpl {
}
}
public static class BasicUpgradableProcessorContainerInfo<TILE extends TileEntity & IUpgradableBasicProcessor<TILE, PACKET>, PACKET extends ProcessorUpdatePacket> extends UpgradableProcessorContainerInfo<TILE, PACKET, BasicUpgradableProcessorContainerInfo<TILE, PACKET>> {
public static class BasicUpgradableProcessorContainerInfo<TILE extends TileEntity & IBasicUpgradableProcessor<TILE, PACKET>, PACKET extends ProcessorUpdatePacket> extends UpgradableProcessorContainerInfo<TILE, PACKET, BasicUpgradableProcessorContainerInfo<TILE, PACKET>> {
public BasicUpgradableProcessorContainerInfo(String modId, String name, Class<TILE> tileClass, Class<? extends Container> containerClass, ContainerFunction<TILE> containerFunction, Class<? extends GuiContainer> guiClass, GuiFunction<TILE> guiFunction, ContainerFunction<TILE> configContainerFunction, GuiFunction<TILE> configGuiFunction, String recipeHandlerName, int inputTankCapacity, int outputTankCapacity, double defaultProcessTime, double defaultProcessPower, boolean isGenerator, boolean consumesInputs, boolean losesProgress, String ocComponentName, int[] guiWH, List<int[]> itemInputGuiXYWH, List<int[]> fluidInputGuiXYWH, List<int[]> itemOutputGuiXYWH, List<int[]> fluidOutputGuiXYWH, int[] playerGuiXY, int[] progressBarGuiXYWHUV, int[] energyBarGuiXYWHUV, int[] machineConfigGuiXY, int[] redstoneControlGuiXY, boolean jeiCategoryEnabled, String jeiCategoryUid, String jeiTitle, String jeiTexture, int[] jeiBackgroundXYWH, int[] jeiTooltipXYWH, int[] jeiClickAreaXYWH, int[] speedUpgradeGuiXYWH, int[] energyUpgradeGuiXYWH) {
super(modId, name, tileClass, containerClass, containerFunction, guiClass, guiFunction, configContainerFunction, configGuiFunction, recipeHandlerName, inputTankCapacity, outputTankCapacity, defaultProcessTime, defaultProcessPower, isGenerator, consumesInputs, losesProgress, ocComponentName, guiWH, itemInputGuiXYWH, fluidInputGuiXYWH, itemOutputGuiXYWH, fluidOutputGuiXYWH, playerGuiXY, progressBarGuiXYWHUV, energyBarGuiXYWHUV, machineConfigGuiXY, redstoneControlGuiXY, jeiCategoryEnabled, jeiCategoryUid, jeiTitle, jeiTexture, jeiBackgroundXYWH, jeiTooltipXYWH, jeiClickAreaXYWH, speedUpgradeGuiXYWH, energyUpgradeGuiXYWH);

View File

@ -25,7 +25,7 @@ public class ProcessorContainerInfoBuilderImpl {
}
}
public static class BasicUpgradableProcessorContainerInfoBuilder<TILE extends TileEntity & IUpgradableBasicProcessor<TILE, PACKET>, PACKET extends ProcessorUpdatePacket> extends UpgradableProcessorContainerInfoBuilder<TILE, PACKET, BasicUpgradableProcessorContainerInfo<TILE, PACKET>, BasicUpgradableProcessorContainerInfoBuilder<TILE, PACKET>> {
public static class BasicUpgradableProcessorContainerInfoBuilder<TILE extends TileEntity & IBasicUpgradableProcessor<TILE, PACKET>, PACKET extends ProcessorUpdatePacket> extends UpgradableProcessorContainerInfoBuilder<TILE, PACKET, BasicUpgradableProcessorContainerInfo<TILE, PACKET>, BasicUpgradableProcessorContainerInfoBuilder<TILE, PACKET>> {
public BasicUpgradableProcessorContainerInfoBuilder(String modId, String name, Class<TILE> tileClass, Supplier<TILE> tileSupplier, Class<? extends Container> containerClass, ContainerFunction<TILE> containerFunction, Class<? extends GuiContainer> guiClass, GuiInfoTileFunction<TILE> guiFunction) {
super(modId, name, tileClass, tileSupplier, containerClass, containerFunction, guiClass, guiFunction);

View File

@ -2706,8 +2706,6 @@ gui.nc.config.machine_anode_efficiency=Anode Efficiency Multipliers
gui.nc.config.machine_anode_efficiency.comment=List of anode materials and their efficiencies. Format: 'materialSuffix@efficiency'.
gui.nc.config.machine_electrolyzer_sound_volume=Electrolyzer Sound Volume
gui.nc.config.machine_electrolyzer_sound_volume.comment=Modifier for the volume of electrolyzer sound effects.
gui.nc.config.machine_electrolyzer_particles=Electrolyzer Particle Rate
gui.nc.config.machine_electrolyzer_particles.comment=Multiplier for the rate of bubble particles spawned in the electrolyzer.
gui.nc.config.machine_distiller_time=Distiller Process Time
gui.nc.config.machine_distiller_time.comment=Base ticks per distiller process.