1
0
mirror of https://github.com/turbodiesel4598/NuclearCraft synced 2025-10-06 04:04:42 +02:00

Compare commits

..

No commits in common. "26b484435425dd8faf6bfb7af21e8294916e99bc" and "3e20bfa9260f5391b464b5f307f2948adf11d47a" have entirely different histories.

171 changed files with 1386 additions and 1820 deletions

View File

@ -397,10 +397,10 @@ mods.nuclearcraft.Condenser.removeRecipeWithInput(ILiquidStack fluidInput);
mods.nuclearcraft.Condenser.removeRecipeWithOutput(ILiquidStack fluidOutput);
Turbine:
--------
Steam Turbine:
--------------
mods.nuclearcraft.Turbine.addRecipe(ILiquidStack fluidInput, ILiquidStack fluidOutput, double powerPerMB, double expansionLevel, double spinUpMultiplier, {String particleEffect, double particleSpeedMultiplier});
mods.nuclearcraft.Turbine.addRecipe(ILiquidStack fluidInput, ILiquidStack fluidOutput, double powerPerMB, double expansionLevel, {String particleEffect, double particleSpeedMultiplier});
mods.nuclearcraft.Turbine.removeRecipeWithInput(ILiquidStack fluidInput);
mods.nuclearcraft.Turbine.removeRecipeWithOutput(ILiquidStack fluidOutput);

View File

@ -1,7 +1,7 @@
mc_version=1.12.2
forge_version=14.23.5.2847
mapping_version=stable_39
mod_version=2o.5.0beta5
mod_version=2o.5.0beta4
ic2_version=2.8.197-ex112
jei_version=4.15.0.293

View File

@ -1,6 +1,6 @@
#loader nc_preinit
mods.nuclearcraft.Registration.registerFissionSink("extreme", 210, "exactly two axial conductors || one irradiator || one shield");
mods.nuclearcraft.Registration.registerFissionSink("extreme", 210, "exactly one sic_sic_cmc sink");
mods.nuclearcraft.Registration.registerFissionSink("sic_sic_cmc", 215, "exactly one lead sink && at most two copper sinks");
mods.nuclearcraft.Registration.registerFissionHeater("extreme", "tritium", 1, "deuterium", 1, 210, "exactly one sic_sic_cmc heater");
@ -8,7 +8,7 @@ mods.nuclearcraft.Registration.registerFissionHeater("sic_sic_cmc", "helium3", 1
mods.nuclearcraft.Registration.registerFissionSource("americium_beryllium", 0.975);
mods.nuclearcraft.Registration.registerFissionShield("cadmium", 10.0, 0.75);
mods.nuclearcraft.Registration.registerFissionShield("cadmium", 10.0, 0.8);
mods.nuclearcraft.Registration.registerTurbineCoil("extreme", 1.14, "four of any coil");
mods.nuclearcraft.Registration.registerTurbineCoil("sic_sic_cmc", 1.16, "exactly two axial connectors");

View File

@ -1,6 +1,6 @@
#loader nc_preinit
mods.nuclearcraft.Registration.registerFissionSink("extreme", 210, "exactly two axial conductors || one irradiator || one shield");
mods.nuclearcraft.Registration.registerFissionSink("extreme", 210, "exactly one sic_sic_cmc sink");
mods.nuclearcraft.Registration.registerFissionSink("sic_sic_cmc", 215, "exactly one lead sink && at most two copper sinks");
mods.nuclearcraft.Registration.registerFissionHeater("extreme", "tritium", 1, "deuterium", 1, 210, "exactly one sic_sic_cmc heater");
@ -8,7 +8,7 @@ mods.nuclearcraft.Registration.registerFissionHeater("sic_sic_cmc", "helium3", 1
mods.nuclearcraft.Registration.registerFissionSource("americium_beryllium", 0.975);
mods.nuclearcraft.Registration.registerFissionShield("cadmium", 10.0, 0.75);
mods.nuclearcraft.Registration.registerFissionShield("cadmium", 10.0, 0.8);
mods.nuclearcraft.Registration.registerTurbineCoil("extreme", 1.14, "four of any coil");
mods.nuclearcraft.Registration.registerTurbineCoil("sic_sic_cmc", 1.16, "exactly two axial connectors");

View File

@ -4,9 +4,7 @@ import java.util.Random;
import javax.annotation.Nonnull;
import it.unimi.dsi.fastutil.ints.*;
import nc.capability.radiation.source.IRadiationSource;
import nc.config.NCConfig;
import nc.fluid.FluidCorium;
import nc.init.NCBlocks;
import nc.radiation.*;
@ -20,8 +18,6 @@ import net.minecraft.world.chunk.Chunk;
public class BlockFluidCorium extends BlockFluidFission {
protected static IntSet solidification_dim_set;
public BlockFluidCorium(FluidCorium fluid) {
super(fluid);
}
@ -44,11 +40,7 @@ public class BlockFluidCorium extends BlockFluidFission {
super.updateTick(world, pos, state, rand);
if (solidification_dim_set == null) {
solidification_dim_set = new IntOpenHashSet(NCConfig.corium_solidification);
}
if (state.getValue(LEVEL) == 0 && solidification_dim_set.contains(world.provider.getDimension()) != NCConfig.corium_solidification_list_type) {
if (state.getValue(LEVEL) == 0) {
int count = 0;
for (EnumFacing side : EnumFacing.VALUES) {
if (isSourceBlock(world, pos.offset(side))) {
@ -59,7 +51,7 @@ public class BlockFluidCorium extends BlockFluidFission {
}
}
if (rand.nextInt(2 + 4 * count) == 0) {
if (rand.nextInt(2 * (1 + count)) == 0) {
world.setBlockState(pos, NCBlocks.solidified_corium.getDefaultState());
}
}

View File

@ -63,7 +63,6 @@ public class NCConfig {
public static double[] speed_upgrade_multipliers;
public static double[] energy_upgrade_power_laws;
public static double[] energy_upgrade_multipliers;
public static int[] upgrade_stack_sizes;
public static int rf_per_eu;
public static boolean enable_ic2_eu;
public static boolean enable_gtce_eu;
@ -222,7 +221,6 @@ public class NCConfig {
public static String[] turbine_connector_rule;
public static double[] turbine_power_per_mb;
public static double[] turbine_expansion_level;
public static double[] turbine_spin_up_multiplier;
public static int turbine_mb_per_blade;
public static double[] turbine_throughput_leniency_params;
public static double turbine_tension_throughput_factor;
@ -384,9 +382,6 @@ public class NCConfig {
public static int mushroom_gen_size;
public static int mushroom_gen_rate;
public static int[] corium_solidification;
public static boolean corium_solidification_list_type;
public static boolean ore_dict_raw_material_recipes;
public static boolean ore_dict_priority_bool;
public static String[] ore_dict_priority;
@ -468,8 +463,6 @@ public class NCConfig {
propertyEnergyUpgradePowerLaws.setLanguageKey("gui.nc.config.energy_upgrade_power_laws_fp");
Property propertyEnergyUpgradeMultipliers = config.get(CATEGORY_PROCESSOR, "energy_upgrade_multipliers_fp", new double[] {1D}, Lang.localise("gui.nc.config.energy_upgrade_multipliers_fp.comment"), 0D, 15D);
propertyEnergyUpgradeMultipliers.setLanguageKey("gui.nc.config.energy_upgrade_multipliers_fp");
Property propertyUpgradeStackSizes = config.get(CATEGORY_PROCESSOR, "upgrade_stack_sizes", new int[] {64, 64}, Lang.localise("gui.nc.config.upgrade_stack_sizes.comment"), 1, 64);
propertyUpgradeStackSizes.setLanguageKey("gui.nc.config.upgrade_stack_sizes");
Property propertyRFPerEU = config.get(CATEGORY_PROCESSOR, "rf_per_eu", 16, Lang.localise("gui.nc.config.rf_per_eu.comment"), 1, 2000);
propertyRFPerEU.setLanguageKey("gui.nc.config.rf_per_eu");
Property propertyEnableIC2EU = config.get(CATEGORY_PROCESSOR, "enable_ic2_eu", true, Lang.localise("gui.nc.config.enable_ic2_eu.comment"));
@ -771,8 +764,6 @@ public class NCConfig {
propertyTurbinePowerPerMB.setLanguageKey("gui.nc.config.turbine_power_per_mb");
Property propertyTurbineExpansionLevel = config.get(CATEGORY_TURBINE, "turbine_expansion_level", new double[] {4D, 2D, 2D}, Lang.localise("gui.nc.config.turbine_expansion_level.comment"), 1D, 255D);
propertyTurbineExpansionLevel.setLanguageKey("gui.nc.config.turbine_expansion_level");
Property propertyTurbineSpinUpMultiplier = config.get(CATEGORY_TURBINE, "turbine_spin_up_multiplier", new double[] {1D, 1D, 1D}, Lang.localise("gui.nc.config.turbine_spin_up_multiplier.comment"), 0D, 255D);
propertyTurbineSpinUpMultiplier.setLanguageKey("gui.nc.config.turbine_spin_up_multiplier");
Property propertyTurbineMBPerBlade = config.get(CATEGORY_TURBINE, "turbine_mb_per_blade", 100, Lang.localise("gui.nc.config.turbine_mb_per_blade.comment"), 1, 32767);
propertyTurbineMBPerBlade.setLanguageKey("gui.nc.config.turbine_mb_per_blade");
Property propertyTurbineThroughputLeniencyParams = config.get(CATEGORY_TURBINE, "turbine_throughput_leniency_params", new double[] {0.5D, 0.75D}, Lang.localise("gui.nc.config.turbine_throughput_leniency_params.comment"), 0D, 1D);
@ -1046,11 +1037,6 @@ public class NCConfig {
Property propertyDungeonLoot = config.get(CATEGORY_MISC, "dungeon_loot", true, Lang.localise("gui.nc.config.dungeon_loot.comment"));
propertyDungeonLoot.setLanguageKey("gui.nc.config.dungeon_loot");
Property propertyCoriumSolidification = config.get(CATEGORY_MISC, "corium_solidification", new int[] {0, 1, 2, -6, -100, 4598, -9999, -11325}, Lang.localise("gui.nc.config.corium_solidification.comment"), Integer.MIN_VALUE, Integer.MAX_VALUE);
propertyCoriumSolidification.setLanguageKey("gui.nc.config.corium_solidification");
Property propertyCoriumSolidificationListType = config.get(CATEGORY_MISC, "corium_solidification_list_type", false, Lang.localise("gui.nc.config.corium_solidification_list_type.comment"));
propertyCoriumSolidificationListType.setLanguageKey("gui.nc.config.corium_solidification_list_type");
Property propertyOreDictRawMaterialRecipes = config.get(CATEGORY_MISC, "ore_dict_raw_material_recipes", false, Lang.localise("gui.nc.config.ore_dict_raw_material_recipes.comment"));
propertyOreDictRawMaterialRecipes.setLanguageKey("gui.nc.config.ore_dict_raw_material_recipes");
Property propertyOreDictPriorityBool = config.get(CATEGORY_MISC, "ore_dict_priority_bool", true, Lang.localise("gui.nc.config.ore_dict_priority_bool.comment"));
@ -1089,7 +1075,6 @@ public class NCConfig {
propertyOrderProcessor.add(propertySpeedUpgradeMultipliers.getName());
propertyOrderProcessor.add(propertyEnergyUpgradePowerLaws.getName());
propertyOrderProcessor.add(propertyEnergyUpgradeMultipliers.getName());
propertyOrderProcessor.add(propertyUpgradeStackSizes.getName());
propertyOrderProcessor.add(propertyRFPerEU.getName());
propertyOrderProcessor.add(propertyEnableIC2EU.getName());
propertyOrderProcessor.add(propertyEnableGTCEEU.getName());
@ -1260,7 +1245,6 @@ public class NCConfig {
propertyOrderTurbine.add(propertyTurbineConnectorRule.getName());
propertyOrderTurbine.add(propertyTurbinePowerPerMB.getName());
propertyOrderTurbine.add(propertyTurbineExpansionLevel.getName());
propertyOrderTurbine.add(propertyTurbineSpinUpMultiplier.getName());
propertyOrderTurbine.add(propertyTurbineMBPerBlade.getName());
propertyOrderTurbine.add(propertyTurbineThroughputLeniencyParams.getName());
propertyOrderTurbine.add(propertyTurbineTensionThroughputFactor.getName());
@ -1410,8 +1394,6 @@ public class NCConfig {
propertyOrderMisc.add(propertyJEIChanceItemsIncludeNull.getName());
propertyOrderMisc.add(propertyRareDrops.getName());
propertyOrderMisc.add(propertyDungeonLoot.getName());
propertyOrderMisc.add(propertyCoriumSolidification.getName());
propertyOrderMisc.add(propertyCoriumSolidificationListType.getName());
propertyOrderMisc.add(propertyOreDictRawMaterialRecipes.getName());
propertyOrderMisc.add(propertyOreDictPriorityBool.getName());
propertyOrderMisc.add(propertyOreDictPriority.getName());
@ -1445,7 +1427,6 @@ public class NCConfig {
speed_upgrade_multipliers = readDoubleArrayFromConfig(propertySpeedUpgradeMultipliers);
energy_upgrade_power_laws = readDoubleArrayFromConfig(propertyEnergyUpgradePowerLaws);
energy_upgrade_multipliers = readDoubleArrayFromConfig(propertyEnergyUpgradeMultipliers);
upgrade_stack_sizes = readIntegerArrayFromConfig(propertyUpgradeStackSizes);
rf_per_eu = propertyRFPerEU.getInt();
enable_ic2_eu = propertyEnableIC2EU.getBoolean();
enable_gtce_eu = propertyEnableGTCEEU.getBoolean();
@ -1604,7 +1585,6 @@ public class NCConfig {
turbine_connector_rule = propertyTurbineConnectorRule.getStringList();
turbine_power_per_mb = readDoubleArrayFromConfig(propertyTurbinePowerPerMB);
turbine_expansion_level = readDoubleArrayFromConfig(propertyTurbineExpansionLevel);
turbine_spin_up_multiplier = readDoubleArrayFromConfig(propertyTurbineSpinUpMultiplier);
turbine_mb_per_blade = propertyTurbineMBPerBlade.getInt();
turbine_throughput_leniency_params = readDoubleArrayFromConfig(propertyTurbineThroughputLeniencyParams);
turbine_tension_throughput_factor = propertyTurbineTensionThroughputFactor.getDouble();
@ -1751,8 +1731,6 @@ public class NCConfig {
jei_chance_items_include_null = propertyJEIChanceItemsIncludeNull.getBoolean();
rare_drops = propertyRareDrops.getBoolean();
dungeon_loot = propertyDungeonLoot.getBoolean();
corium_solidification = propertyCoriumSolidification.getIntList();
corium_solidification_list_type = propertyCoriumSolidificationListType.getBoolean();
ore_dict_raw_material_recipes = propertyOreDictRawMaterialRecipes.getBoolean();
ore_dict_priority_bool = propertyOreDictPriorityBool.getBoolean();
ore_dict_priority = propertyOreDictPriority.getStringList();
@ -1785,7 +1763,6 @@ public class NCConfig {
propertySpeedUpgradeMultipliers.set(speed_upgrade_multipliers);
propertyEnergyUpgradePowerLaws.set(energy_upgrade_power_laws);
propertyEnergyUpgradeMultipliers.set(energy_upgrade_multipliers);
propertyUpgradeStackSizes.set(upgrade_stack_sizes);
propertyRFPerEU.set(rf_per_eu);
propertyEnableIC2EU.set(enable_ic2_eu);
propertyEnableGTCEEU.set(enable_gtce_eu);
@ -1944,7 +1921,6 @@ public class NCConfig {
propertyTurbineConnectorRule.set(turbine_connector_rule);
propertyTurbinePowerPerMB.set(turbine_power_per_mb);
propertyTurbineExpansionLevel.set(turbine_expansion_level);
propertyTurbineSpinUpMultiplier.set(turbine_spin_up_multiplier);
propertyTurbineMBPerBlade.set(turbine_mb_per_blade);
propertyTurbineThroughputLeniencyParams.set(turbine_throughput_leniency_params);
propertyTurbineTensionThroughputFactor.set(turbine_tension_throughput_factor);
@ -2090,9 +2066,6 @@ public class NCConfig {
propertyCtrlInfo.set(ctrl_info);
propertyJEIChanceItemsIncludeNull.set(jei_chance_items_include_null);
propertyRareDrops.set(rare_drops);
propertyDungeonLoot.set(rare_drops);
propertyCoriumSolidification.set(corium_solidification);
propertyCoriumSolidificationListType.set(corium_solidification_list_type);
propertyOreDictRawMaterialRecipes.set(ore_dict_raw_material_recipes);
propertyOreDictPriorityBool.set(ore_dict_priority_bool);
propertyOreDictPriority.set(ore_dict_priority);

View File

@ -1035,12 +1035,10 @@ public class MetaEnums {
private final String name;
private final int id;
private final int maxStackSize;
private UpgradeType(String name, int id) {
this.name = name;
this.id = id;
this.maxStackSize = upgrade_stack_sizes[id];
}
@Override
@ -1057,10 +1055,6 @@ public class MetaEnums {
public int getID() {
return id;
}
public int getMaxStackSize() {
return maxStackSize;
}
}
public static enum FissionDustType implements IStringSerializable, IMetaEnum {

View File

@ -13,8 +13,8 @@ public class ScriptAddonHandler {
public static final ObjectSet<File> SCRIPT_ADDON_DIRS = new ObjectOpenHashSet<>();
public static final String[] NC_ASSETS = {"advancements", "blockstates", "loot_tables", "models", "patchouli_books", "textures"};
public static final String[] ADDON_ASSETS = {"advancements", "blockstates", "contenttweaker", "lang", "loot_tables", "models", "modularmachinery", "patchouli_books", "scripts", "textures"};
public static final String[] IGNORE_SUFFIX = {".ignore", ".ignored", ".disable", ".disabled"};
public static final String[] ADDON_ASSETS = {"advancements", "blockstates", "contenttweaker", "lang", "loot_tables", "models", "patchouli_books", "scripts", "textures"};
public static final String[] IGNORE_SUFFIX = {".ignore", ".disabled"};
public static void init() throws IOException {
NCUtil.getLogger().info("Constructing NuclearCraft Script Addons...");
@ -48,7 +48,7 @@ public class ScriptAddonHandler {
public static void extractAddons(File dir) throws IOException {
fileLoop: for (File f : dir.listFiles()) {
if (f.isFile() && IOHelper.isZip(f)) {
if (!f.isDirectory() && IOHelper.isZip(f)) {
String fileName = f.getName();
String fileNameLowerCase = fileName.toLowerCase(Locale.ROOT);
for (String suffix : IGNORE_SUFFIX) {
@ -107,11 +107,6 @@ public class ScriptAddonHandler {
SCRIPT_ADDON_DIRS.add(dir);
}
else if (f.getName().equals("modularmachinery")) {
FileUtils.copyDirectory(f, new File("config/modularmachinery/machinery"));
SCRIPT_ADDON_DIRS.add(dir);
}
else {
boolean a = false;
for (File d : f.listFiles()) {
@ -141,7 +136,7 @@ public class ScriptAddonHandler {
public static void copyLangs(File addonDir, File langDir) throws IOException {
for (File f : langDir.listFiles()) {
String name = f.getName().toLowerCase();
if (f.isFile() && name.endsWith(".lang")) {
if (!f.isDirectory() && name.endsWith(".lang")) {
String type = StringHelper.removeSuffix(name, 5);
File lang = new File("resources/nuclearcraft/lang/" + type + ".lang");

View File

@ -1,40 +0,0 @@
package nc.init;
import java.lang.reflect.Method;
import nc.Global;
import nc.multiblock.advancement.MultiblockTrigger;
import net.minecraft.advancements.CriteriaTriggers;
import net.minecraft.advancements.ICriterionTrigger;
import net.minecraftforge.fml.relauncher.ReflectionHelper;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
@SuppressWarnings("deprecation")
public class NCAdvancements {
public static void init() {
Logger logger = LogManager.getLogger(Global.MOD_ID);
Method method = ReflectionHelper.findMethod(CriteriaTriggers.class, "register", "func_192118_a", ICriterionTrigger.class);
method.setAccessible(true);
for (int i=0; i < MultiblockTrigger.TRIGGER_ARRAY.length; i++)
{
try
{
method.invoke(null, MultiblockTrigger.TRIGGER_ARRAY[i]);
logger.log(Level.INFO, "Invoking: "+MultiblockTrigger.TRIGGER_ARRAY[i].getId());
}
catch (Exception e)
{
logger.log(Level.ERROR, e.getMessage());
}
}
}
}

View File

@ -97,7 +97,7 @@ public class NCFluids {
addFluidPair(FluidType.SALT_SOLUTION, "borax_solution", waterBlend(0xEEEEEE, 0.5F));
addFluidPair(FluidType.SALT_SOLUTION, "irradiated_borax_solution", waterBlend(0xFFD0A3, 0.5F));
addFluidPair(FluidType.CORIUM, "corium", 0x7C7C6F);
addFluidPair(FluidType.CORIUM, "corium", 0x7F8178);
addFluidPair(FluidType.LIQUID, "ice", false, 0xAFF1FF, 1000, 250, 2000, 0);
addFluidPair(FluidType.LIQUID, "slurry_ice", false, 0x7EAEB7, 950, 270, 4000, 0);

View File

@ -124,7 +124,7 @@ public class NCItems {
compound = withName(new NCItemMeta(MetaEnums.CompoundType.class), "compound");
part = withName(new NCItemMeta(MetaEnums.PartType.class), "part");
upgrade = withName(new ItemUpgrade(MetaEnums.UpgradeType.class, NCInfo.upgradeInfo()), "upgrade");
upgrade = withName(new NCItemMeta(MetaEnums.UpgradeType.class, NCInfo.upgradeInfo()), "upgrade");
fission_dust = withName(new NCItemMeta(MetaEnums.FissionDustType.class), "fission_dust");

View File

@ -1168,13 +1168,6 @@ public class JEIRecipeWrapper {
return recipe.getTurbineExpansionLevel();
}
protected double getTurbineSpinUpMultiplier() {
if (recipe == null) {
return 1D;
}
return recipe.getTurbineSpinUpMultiplier();
}
@Override
public List<String> getTooltipStrings(int mouseX, int mouseY) {
List<String> tooltip = new ArrayList<>();
@ -1182,7 +1175,6 @@ public class JEIRecipeWrapper {
if (mouseX >= 73 - 47 && mouseY >= 34 - 30 && mouseX < 73 - 47 + 37 + 1 && mouseY < 34 - 30 + 18 + 1) {
tooltip.add(TextFormatting.LIGHT_PURPLE + ENERGY_DENSITY + " " + TextFormatting.WHITE + NCMath.decimalPlaces(getTurbinePowerPerMB(), 2) + " RF/mB");
tooltip.add(TextFormatting.GRAY + EXPANSION + " " + TextFormatting.WHITE + NCMath.pcDecimalPlaces(getTurbineExpansionLevel(), 1));
tooltip.add(TextFormatting.GREEN + SPIN_UP + " " + TextFormatting.WHITE + NCMath.pcDecimalPlaces(getTurbineSpinUpMultiplier(), 1));
}
return tooltip;
@ -1190,7 +1182,6 @@ public class JEIRecipeWrapper {
private static final String ENERGY_DENSITY = Lang.localise("jei.nuclearcraft.turbine_energy_density");
private static final String EXPANSION = Lang.localise("jei.nuclearcraft.turbine_expansion");
private static final String SPIN_UP = Lang.localise("jei.nuclearcraft.turbine_spin_up_multiplier");
}
public static class RadiationScrubber extends JEIBasicRecipeWrapper {

View File

@ -1,37 +0,0 @@
package nc.item;
import nc.enumm.MetaEnums.UpgradeType;
import nc.init.NCItems;
import nc.util.StackHelper;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.IBlockAccess;
public class ItemUpgrade extends NCItemMeta<UpgradeType> {
public ItemUpgrade(Class<UpgradeType> enumm, TextFormatting infoColor, String[]... tooltips) {
super(enumm, infoColor, tooltips);
}
public ItemUpgrade(Class<UpgradeType> enumm, String[]... tooltips) {
super(enumm, tooltips);
}
// Allow upgrades to be right-clicked into machines
@Override
public boolean doesSneakBypassUse(ItemStack stack, IBlockAccess world, BlockPos pos, EntityPlayer player) {
return stack.getItem() == NCItems.upgrade;
}
@Override
public int getItemStackLimit(ItemStack stack) {
if (stack.getItem() == NCItems.upgrade) {
return values[StackHelper.getMetadata(stack)].getMaxStackSize();
}
else {
return super.getItemStackLimit(stack);
}
}
}

View File

@ -5,13 +5,16 @@ import java.util.List;
import javax.annotation.Nullable;
import nc.enumm.IMetaEnum;
import nc.init.NCItems;
import nc.util.*;
import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.*;
import net.minecraft.util.*;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import net.minecraft.world.*;
import net.minecraftforge.fml.relauncher.*;
public class NCItemMeta<T extends Enum<T> & IStringSerializable & IMetaEnum> extends Item implements IInfoItem {
@ -75,4 +78,10 @@ public class NCItemMeta<T extends Enum<T> & IStringSerializable & IMetaEnum> ext
protected ActionResult<ItemStack> actionResult(boolean success, ItemStack stack) {
return new ActionResult<>(success ? EnumActionResult.SUCCESS : EnumActionResult.FAIL, stack);
}
// Allow upgrades to be right-clicked into machines
@Override
public boolean doesSneakBypassUse(ItemStack stack, IBlockAccess world, BlockPos pos, EntityPlayer player) {
return stack.getItem() == NCItems.upgrade;
}
}

View File

@ -6,9 +6,9 @@ import java.util.Map.Entry;
import it.unimi.dsi.fastutil.longs.*;
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet;
import nc.Global;
import nc.multiblock.network.MultiblockUpdatePacket;
import nc.multiblock.tile.*;
import nc.network.PacketHandler;
import nc.network.multiblock.MultiblockUpdatePacket;
import nc.tile.fluid.ITileFluid;
import nc.tile.internal.energy.EnergyStorage;
import nc.tile.internal.fluid.Tank;
@ -37,7 +37,8 @@ public abstract class Multiblock<T extends ITileMultiblockPart, PACKET extends M
// Multiblock stuff - do not mess with
public final World WORLD;
// Disassembled -> Assembled; Assembled -> Disassembled OR Paused; Paused -> Assembled
// Disassembled -> Assembled; Assembled -> Disassembled OR Paused; Paused ->
// Assembled
public enum AssemblyState {
Disassembled,
Assembled,
@ -65,7 +66,7 @@ public abstract class Multiblock<T extends ITileMultiblockPart, PACKET extends M
/** Set whenever we validate the multiblock */
private MultiblockValidationError lastValidationError;
private boolean debugMode;
protected boolean debugMode;
protected Set<EntityPlayer> playersToUpdate;
@ -1028,7 +1029,7 @@ public abstract class Multiblock<T extends ITileMultiblockPart, PACKET extends M
* On the server, this will mark the for a data-update, so that nearby clients will receive an updated description packet from the server after a short time. The block's chunk will also be marked dirty and the block's chunk will be saved to disk the next time chunks are saved.
*
* On the client, this will mark the block for a rendering update. */
public void markReferenceCoordForUpdate() {
protected void markReferenceCoordForUpdate() {
BlockPos rc = this.getReferenceCoord();
@ -1045,7 +1046,7 @@ public abstract class Multiblock<T extends ITileMultiblockPart, PACKET extends M
* On the client, does nothing.
*
* @see Multiblock#markReferenceCoordForUpdate() */
public void markReferenceCoordDirty() {
protected void markReferenceCoordDirty() {
if (WORLD == null || WORLD.isRemote) {
return;
}
@ -1085,7 +1086,7 @@ public abstract class Multiblock<T extends ITileMultiblockPart, PACKET extends M
return;
}
for (EntityPlayer player : playersToUpdate) {
PacketHandler.instance.sendTo(packet, (EntityPlayerMP) player);
PacketHandler.instance.sendTo(getUpdatePacket(), (EntityPlayerMP) player);
}
}
@ -1097,18 +1098,15 @@ public abstract class Multiblock<T extends ITileMultiblockPart, PACKET extends M
if (packet == null) {
return;
}
PacketHandler.instance.sendTo(packet, (EntityPlayerMP) player);
PacketHandler.instance.sendTo(getUpdatePacket(), (EntityPlayerMP) player);
}
public void sendUpdateToAllPlayers() {
if (WORLD.isRemote) {
return;
}
PACKET packet = getUpdatePacket();
if (packet == null) {
return;
}
PacketHandler.instance.sendToAll(packet);
PacketHandler.instance.sendToAll(getUpdatePacket());
}
// Multiblock Parts

View File

@ -10,12 +10,12 @@ import nc.multiblock.fission.*;
import nc.multiblock.fission.salt.MoltenSaltFissionLogic;
import nc.multiblock.fission.solid.SolidFuelFissionLogic;
import nc.multiblock.heatExchanger.*;
import nc.multiblock.network.MultiblockUpdatePacket;
import nc.multiblock.tile.*;
import nc.multiblock.tile.TileBeefAbstract.SyncReason;
import nc.multiblock.tile.manager.*;
import nc.multiblock.tile.port.*;
import nc.multiblock.turbine.*;
import nc.network.multiblock.MultiblockUpdatePacket;
import nc.tile.ITileFiltered;
import nc.tile.internal.energy.EnergyStorage;
import nc.tile.internal.fluid.Tank;
@ -249,7 +249,8 @@ public abstract class MultiblockLogic<MULTIBLOCK extends Multiblock<T, PACKET> &
public static void init() {
try {
FissionReactor.LOGIC_MAP.put("", FissionReactorLogic.class.getConstructor(FissionReactorLogic.class));
// FissionReactor.LOGIC_MAP.put("pebble_bed", PebbleBedFissionLogic.class);
// FissionReactor.LOGIC_MAP.put("pebble_bed",
// PebbleBedFissionLogic.class);
FissionReactor.LOGIC_MAP.put("solid_fuel", SolidFuelFissionLogic.class.getConstructor(FissionReactorLogic.class));
FissionReactor.LOGIC_MAP.put("molten_salt", MoltenSaltFissionLogic.class.getConstructor(FissionReactorLogic.class));

View File

@ -1,8 +1,8 @@
package nc.multiblock;
import it.unimi.dsi.fastutil.longs.*;
import nc.multiblock.network.MultiblockUpdatePacket;
import nc.multiblock.tile.ITileMultiblockPart;
import nc.network.multiblock.MultiblockUpdatePacket;
public abstract class PartBunch<TYPE extends T, MULTIBLOCK extends Multiblock<T, PACKET>, T extends ITileMultiblockPart<MULTIBLOCK>, PACKET extends MultiblockUpdatePacket> {

View File

@ -1,165 +0,0 @@
package nc.multiblock.advancement;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonObject;
import nc.Global;
import net.minecraft.advancements.ICriterionTrigger;
import net.minecraft.advancements.PlayerAdvancements;
import net.minecraft.advancements.critereon.AbstractCriterionInstance;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.util.ResourceLocation;
public class CustomTrigger implements ICriterionTrigger<CustomTrigger.Instance> {
private final ResourceLocation ID;
private final Map<PlayerAdvancements, CustomTrigger.Listeners> listeners = Maps.<PlayerAdvancements, CustomTrigger.Listeners>newHashMap();
//entry for addons
public CustomTrigger(String MOD_ID, String parString)
{
super();
ID = new ResourceLocation(MOD_ID, parString);
}
public CustomTrigger(String parString)
{
super();
ID = new ResourceLocation(Global.MOD_ID, parString);
}
@Override
public ResourceLocation getId() {
return ID;
}
@Override
public void addListener(PlayerAdvancements playerAdvancementsIn, ICriterionTrigger.Listener<CustomTrigger.Instance> listener)
{
CustomTrigger.Listeners customtrigger$listeners = this.listeners.get(playerAdvancementsIn);
if (customtrigger$listeners == null)
{
customtrigger$listeners = new CustomTrigger.Listeners(playerAdvancementsIn);
this.listeners.put(playerAdvancementsIn, customtrigger$listeners);
}
customtrigger$listeners.add(listener);
}
@Override
public void removeListener(PlayerAdvancements playerAdvancementsIn, ICriterionTrigger.Listener<CustomTrigger.Instance> listener)
{
CustomTrigger.Listeners consumeitemtrigger$listeners = this.listeners.get(playerAdvancementsIn);
if (consumeitemtrigger$listeners != null)
{
consumeitemtrigger$listeners.remove(listener);
if (consumeitemtrigger$listeners.isEmpty())
{
this.listeners.remove(playerAdvancementsIn);
}
}
}
@Override
public void removeAllListeners(PlayerAdvancements playerAdvancementsIn)
{
this.listeners.remove(playerAdvancementsIn);
}
@Override
public CustomTrigger.Instance deserializeInstance(JsonObject json, JsonDeserializationContext context) {
return new CustomTrigger.Instance(getId());
}
public static class Instance extends AbstractCriterionInstance
{
/**
* Instantiates a new instance.
*/
public Instance(ResourceLocation parRL)
{
super(parRL);
}
/**
* Test.
*
* @return true, if successful
*/
public boolean test()
{
return true;
}
}
public void trigger(EntityPlayerMP player) {
CustomTrigger.Listeners enterblocktrigger$listeners = this.listeners.get(player.getAdvancements());
if (enterblocktrigger$listeners != null)
{
enterblocktrigger$listeners.trigger();
}
}
static class Listeners
{
private final PlayerAdvancements playerAdvancements;
private final Set<ICriterionTrigger.Listener<CustomTrigger.Instance>> listeners = Sets.<ICriterionTrigger.Listener<CustomTrigger.Instance>>newHashSet();
public Listeners(PlayerAdvancements playerAdvancementsIn)
{
this.playerAdvancements = playerAdvancementsIn;
}
public boolean isEmpty()
{
return this.listeners.isEmpty();
}
public void add(ICriterionTrigger.Listener<CustomTrigger.Instance> listener)
{
this.listeners.add(listener);
}
public void remove(ICriterionTrigger.Listener<CustomTrigger.Instance> listener)
{
this.listeners.remove(listener);
}
public void trigger()
{
List<ICriterionTrigger.Listener<CustomTrigger.Instance>> list = null;
for (ICriterionTrigger.Listener<CustomTrigger.Instance> listener : this.listeners)
{
if (((CustomTrigger.Instance)listener.getCriterionInstance()).test())
{
if (list == null)
{
list = Lists.<ICriterionTrigger.Listener<CustomTrigger.Instance>>newArrayList();
}
list.add(listener);
}
}
if (list != null)
{
for (ICriterionTrigger.Listener<CustomTrigger.Instance> listener1 : list)
{
listener1.grantCriterion(this.playerAdvancements);
}
}
}
}
}

View File

@ -1,18 +0,0 @@
package nc.multiblock.advancement;
import nc.Global;
public class MultiblockTrigger
{
public static final CustomTrigger FISSION_REACTOR_FORMED = new CustomTrigger("fission_reactor_complete");
public static final CustomTrigger MOLTENSALT_REACTOR_FORMED = new CustomTrigger("moltensalt_reactor_complete");
public static final CustomTrigger HEATEXCHANGER_FORMED = new CustomTrigger("heatexchanger_complete");
public static final CustomTrigger TURBINE_FORMED = new CustomTrigger("turbine_complete");
public static final CustomTrigger[] TRIGGER_ARRAY = new CustomTrigger[] {
FISSION_REACTOR_FORMED,
MOLTENSALT_REACTOR_FORMED,
HEATEXCHANGER_FORMED,
TURBINE_FORMED
};
}

View File

@ -5,9 +5,9 @@ import javax.annotation.Nonnull;
import it.unimi.dsi.fastutil.objects.*;
import nc.multiblock.Multiblock;
import nc.multiblock.battery.tile.TileBattery;
import nc.multiblock.network.MultiblockUpdatePacket;
import nc.multiblock.tile.ITileMultiblockPart;
import nc.multiblock.tile.TileBeefAbstract.SyncReason;
import nc.network.multiblock.MultiblockUpdatePacket;
import nc.tile.internal.energy.EnergyStorage;
import nc.util.NCMath;
import net.minecraft.nbt.NBTTagCompound;

View File

@ -4,10 +4,7 @@ import javax.annotation.Nullable;
import nc.Global;
import nc.block.NCBlock;
import nc.block.tile.INBTDrop;
import nc.multiblock.*;
import nc.multiblock.advancement.MultiblockTrigger;
import nc.multiblock.fission.solid.tile.TileSolidFissionController;
import nc.multiblock.tile.ITileMultiblockPart;
import nc.render.BlockHighlightTracker;
import nc.tile.fluid.ITileFluid;
@ -15,7 +12,6 @@ import nc.util.*;
import net.minecraft.block.*;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.*;
@ -70,20 +66,13 @@ public abstract class BlockMultiblockPart extends NCBlock implements ITileEntity
}
return true;
}
}
else {
player.sendMessage(new TextComponentString(Lang.localise(Global.MOD_ID + ".multiblock_validation.no_controller")));
return true;
}
//Not the best place. But leaving this as an example
controller.checkIfMachineIsWhole();
if (!world.isRemote && controller.isAssembled()) {
MultiblockTrigger.FISSION_REACTOR_FORMED.trigger((EntityPlayerMP)player);
}
}
}
return prioritiseGui;
}

View File

@ -3,8 +3,8 @@ package nc.multiblock.cuboidal;
import javax.vecmath.Vector3f;
import nc.multiblock.*;
import nc.multiblock.network.MultiblockUpdatePacket;
import nc.multiblock.tile.ITileMultiblockPart;
import nc.network.multiblock.MultiblockUpdatePacket;
import nc.util.NCMath;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;

View File

@ -2,7 +2,7 @@ package nc.multiblock.fission;
import nc.multiblock.PartBunch;
import nc.multiblock.fission.tile.IFissionPart;
import nc.network.multiblock.FissionUpdatePacket;
import nc.multiblock.network.FissionUpdatePacket;
public abstract class FissionPartBunch<T extends IFissionPart> extends PartBunch<T, FissionReactor, IFissionPart, FissionUpdatePacket> {

View File

@ -180,21 +180,12 @@ public abstract class FissionPlacement {
if (split[i].contains("wall") || split[i].contains("casing")) {
rule = "casing";
}
else if (split[i].contains("conductor")) {
rule = "conductor";
}
else if (split[i].contains("moderator")) {
rule = "moderator";
}
else if (split[i].contains("reflector")) {
rule = "reflector";
}
else if (split[i].contains("irradiator")) {
rule = "irradiator";
}
else if (split[i].contains("shield")) {
rule = "shield";
}
else if (split[i].contains("cell")) {
rule = "cell";
}
@ -227,21 +218,12 @@ public abstract class FissionPlacement {
if (rule.equals("casing")) {
return new AdjacentCasing(amount, countType, adjType);
}
else if (rule.equals("conductor")) {
return new AdjacentConductor(amount, countType, adjType);
}
else if (rule.equals("moderator")) {
return new AdjacentModerator(amount, countType, adjType);
}
else if (rule.equals("reflector")) {
return new AdjacentReflector(amount, countType, adjType);
}
else if (rule.equals("irradiator")) {
return new AdjacentIrradiator(amount, countType, adjType);
}
else if (rule.equals("shield")) {
return new AdjacentShield(amount, countType, adjType);
}
else if (rule.equals("cell")) {
return new AdjacentCell(amount, countType, adjType);
}
@ -280,18 +262,6 @@ public abstract class FissionPlacement {
}
}
public static class AdjacentConductor extends Adjacent {
public AdjacentConductor(int amount, CountType countType, AdjacencyType adjType) {
super("conductor", amount, countType, adjType);
}
@Override
public boolean satisfied(IFissionPart part, EnumFacing dir) {
return isConductor(part.getMultiblock(), part.getTilePos().offset(dir));
}
}
public static class AdjacentModerator extends Adjacent {
public AdjacentModerator(int amount, CountType countType, AdjacencyType adjType) {
@ -316,30 +286,6 @@ public abstract class FissionPlacement {
}
}
public static class AdjacentIrradiator extends Adjacent {
public AdjacentIrradiator(int amount, CountType countType, AdjacencyType adjType) {
super("irradiator", amount, countType, adjType);
}
@Override
public boolean satisfied(IFissionPart part, EnumFacing dir) {
return isFunctionalIrradiator(part.getMultiblock(), part.getTilePos().offset(dir));
}
}
public static class AdjacentShield extends Adjacent {
public AdjacentShield(int amount, CountType countType, AdjacencyType adjType) {
super("shield", amount, countType, adjType);
}
@Override
public boolean satisfied(IFissionPart part, EnumFacing dir) {
return isFunctionalShield(part.getMultiblock(), part.getTilePos().offset(dir));
}
}
public static class AdjacentCell extends Adjacent {
public AdjacentCell(int amount, CountType countType, AdjacencyType adjType) {
@ -417,10 +363,6 @@ public abstract class FissionPlacement {
return tile instanceof TileFissionPart && ((TileFissionPart) tile).getPartPositionType().isGoodForWall();
}
public static boolean isConductor(FissionReactor reactor, BlockPos pos) {
return reactor.getPartMap(TileFissionConductor.class).get(pos.toLong()) != null;
}
public static boolean isActiveModerator(FissionReactor reactor, BlockPos pos) {
IFissionComponent component = reactor.getPartMap(IFissionComponent.class).get(pos.toLong());
return (component != null && component.isActiveModerator()) || (reactor.activeModeratorCache.contains(pos.toLong()) && RecipeHelper.blockRecipe(NCRecipes.fission_moderator, reactor.WORLD, pos) != null);
@ -430,34 +372,24 @@ public abstract class FissionPlacement {
return reactor.activeReflectorCache.contains(pos.toLong()) && RecipeHelper.blockRecipe(NCRecipes.fission_reflector, reactor.WORLD, pos) != null;
}
public static boolean isFunctionalIrradiator(FissionReactor reactor, BlockPos pos) {
TileFissionIrradiator irradiator = reactor.getPartMap(TileFissionIrradiator.class).get(pos.toLong());
return irradiator != null && irradiator.isFunctional();
}
public static boolean isFunctionalShield(FissionReactor reactor, BlockPos pos) {
TileFissionShield shield = reactor.getPartMap(TileFissionShield.class).get(pos.toLong());
return shield != null && shield.isFunctional();
}
public static boolean isFunctionalCell(FissionReactor reactor, BlockPos pos) {
TileSolidFissionCell cell = reactor.getPartMap(TileSolidFissionCell.class).get(pos.toLong());
return cell != null && cell.isFunctional();
return cell == null ? false : cell.isFunctional();
}
public static boolean isValidSink(FissionReactor reactor, BlockPos pos, String sinkType) {
TileSolidFissionSink sink = reactor.getPartMap(TileSolidFissionSink.class).get(pos.toLong());
return sink != null && sink.isFunctional() && (sinkType.equals("any") || sink.sinkType.equals(sinkType));
return sink == null ? false : sink.isFunctional() && (sinkType.equals("any") || sink.sinkType.equals(sinkType));
}
public static boolean isFunctionalVessel(FissionReactor reactor, BlockPos pos) {
TileSaltFissionVessel vessel = reactor.getPartMap(TileSaltFissionVessel.class).get(pos.toLong());
return vessel != null && vessel.isFunctional();
return vessel == null ? false : vessel.isFunctional();
}
public static boolean isValidHeater(FissionReactor reactor, BlockPos pos, String heaterType) {
TileSaltFissionHeater heater = reactor.getPartMap(TileSaltFissionHeater.class).get(pos.toLong());
return heater != null && heater.isFunctional() && (heaterType.equals("any") || heater.heaterType.equals(heaterType));
return heater == null ? false : heater.isFunctional() && (heaterType.equals("any") || heater.heaterType.equals(heaterType));
}
// Default Tooltip Builder

View File

@ -11,9 +11,9 @@ import nc.Global;
import nc.multiblock.*;
import nc.multiblock.cuboidal.CuboidalMultiblock;
import nc.multiblock.fission.tile.*;
import nc.multiblock.network.FissionUpdatePacket;
import nc.multiblock.tile.ITileMultiblockPart;
import nc.multiblock.tile.TileBeefAbstract.SyncReason;
import nc.network.multiblock.FissionUpdatePacket;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;

View File

@ -19,8 +19,8 @@ import nc.multiblock.fission.tile.IFissionFuelComponent.ModeratorBlockInfo;
import nc.multiblock.fission.tile.TileFissionSource.PrimingTargetInfo;
import nc.multiblock.fission.tile.manager.TileFissionShieldManager;
import nc.multiblock.fission.tile.port.TileFissionIrradiatorPort;
import nc.multiblock.network.FissionUpdatePacket;
import nc.multiblock.tile.TileBeefAbstract.SyncReason;
import nc.network.multiblock.FissionUpdatePacket;
import nc.tile.internal.energy.EnergyStorage;
import nc.tile.internal.fluid.Tank;
import nc.tile.internal.heat.HeatBuffer;

View File

@ -18,8 +18,8 @@ import nc.multiblock.fission.salt.tile.*;
import nc.multiblock.fission.solid.tile.*;
import nc.multiblock.fission.tile.*;
import nc.multiblock.fission.tile.port.*;
import nc.multiblock.network.*;
import nc.multiblock.tile.TileBeefAbstract.SyncReason;
import nc.network.multiblock.*;
import nc.recipe.*;
import nc.recipe.ingredient.IFluidIngredient;
import nc.tile.internal.fluid.Tank;

View File

@ -21,7 +21,7 @@ import nc.multiblock.fission.*;
import nc.multiblock.fission.tile.*;
import nc.multiblock.fission.tile.IFissionFuelComponent.ModeratorBlockInfo;
import nc.multiblock.fission.tile.port.*;
import nc.network.multiblock.SaltFissionHeaterUpdatePacket;
import nc.multiblock.network.SaltFissionHeaterUpdatePacket;
import nc.recipe.*;
import nc.recipe.ingredient.IFluidIngredient;
import nc.tile.ITileGui;

View File

@ -20,7 +20,7 @@ import nc.multiblock.fission.*;
import nc.multiblock.fission.salt.SaltFissionVesselBunch;
import nc.multiblock.fission.tile.*;
import nc.multiblock.fission.tile.port.*;
import nc.network.multiblock.SaltFissionVesselUpdatePacket;
import nc.multiblock.network.SaltFissionVesselUpdatePacket;
import nc.radiation.RadiationHelper;
import nc.recipe.*;
import nc.recipe.ingredient.IFluidIngredient;

View File

@ -18,8 +18,8 @@ import nc.multiblock.fission.salt.tile.*;
import nc.multiblock.fission.solid.tile.TileSolidFissionCell;
import nc.multiblock.fission.tile.*;
import nc.multiblock.fission.tile.port.TileFissionCellPort;
import nc.multiblock.network.*;
import nc.multiblock.tile.TileBeefAbstract.SyncReason;
import nc.network.multiblock.*;
import nc.recipe.*;
import nc.recipe.ingredient.IFluidIngredient;
import nc.tile.internal.fluid.Tank;

View File

@ -18,7 +18,7 @@ import nc.multiblock.cuboidal.CuboidalPartPositionType;
import nc.multiblock.fission.*;
import nc.multiblock.fission.tile.*;
import nc.multiblock.fission.tile.port.*;
import nc.network.multiblock.SolidFissionCellUpdatePacket;
import nc.multiblock.network.SolidFissionCellUpdatePacket;
import nc.radiation.RadiationHelper;
import nc.recipe.*;
import nc.recipe.ingredient.IItemIngredient;
@ -867,13 +867,13 @@ public class TileSolidFissionCell extends TileFissionPart implements ITileFilter
@Override
public NBTTagCompound writeInventory(NBTTagCompound nbt) {
NBTHelper.writeAllItems(nbt, inventoryStacks, filterStacks, consumedStacks);
NBTHelper.saveAllItems(nbt, inventoryStacks, filterStacks, consumedStacks);
return nbt;
}
@Override
public void readInventory(NBTTagCompound nbt) {
NBTHelper.readAllItems(nbt, inventoryStacks, filterStacks, consumedStacks);
NBTHelper.loadAllItems(nbt, inventoryStacks, filterStacks, consumedStacks);
}
// Capability

View File

@ -1,8 +1,8 @@
package nc.multiblock.fission.tile;
import nc.multiblock.fission.*;
import nc.multiblock.network.FissionUpdatePacket;
import nc.multiblock.tile.ITileLogicMultiblockPart;
import nc.network.multiblock.FissionUpdatePacket;
public interface IFissionPart extends ITileLogicMultiblockPart<FissionReactor, FissionReactorLogic, IFissionPart, FissionUpdatePacket> {

View File

@ -135,124 +135,6 @@ public class TileFissionComputerPort extends TileFissionPart implements SimpleCo
/* @Callback
*
* @Optional.Method(modid = "opencomputers") public Object[] deactivate(Context context, Arguments args) { if (isMultiblockAssembled()) { getMultiblock().computerActivated = false; getMultiblock().setIsReactorOn(); } return new Object[] {}; } */
@Callback
@Optional.Method(modid = "opencomputers")
public Object[] getNumberOfFuelCells(Context context, Arguments args) {
return new Object[] {isMultiblockAssembled() ? getMultiblock().getPartMap(TileSolidFissionCell.class).size() : 0};
}
//TODO review OC fission cell method
@Callback
@Optional.Method(modid = "opencomputers")
public Object[] getFuelCellStats(Context context, Arguments args) {
List<Map> fuelCellData = new ArrayList<Map>();
if(isMultiblockAssembled()) {
Collection<TileSolidFissionCell> fuelCells = getMultiblock().getPartMap(TileSolidFissionCell.class).values();
for(TileSolidFissionCell fuelCell: fuelCells) {
Map<String, Object> entry = new HashMap<String, Object>();
entry.put("fuel", new Object[] {fuelCell.getInventoryStacks().get(0).getCount(),fuelCell.getInventoryStacks().get(0).getDisplayName()});
entry.put("heating", fuelCell.getEffectiveHeating());
entry.put("heat_mult", fuelCell.getHeatMultiplier());
entry.put("is_processing", fuelCell.isProcessing);
entry.put("time", fuelCell.time);
entry.put("base_process_time", fuelCell.baseProcessTime);
entry.put("claster_heat_capacity", fuelCell.getCluster().heatBuffer.getHeatCapacity());
entry.put("claster_heat_stored", fuelCell.getCluster().heatBuffer.getHeatStored());
entry.put("cooling", fuelCell.getCluster().cooling);
entry.put("base_process_criticality", fuelCell.baseProcessCriticality);
entry.put("base_process_efficiency", fuelCell.baseProcessEfficiency);
entry.put("is_primed", fuelCell.isPrimed());
entry.put("flux_efficiency", fuelCell.getEfficiency());
fuelCellData.add(entry);
}
}
return new Object[] {fuelCellData.toArray()};
}
@Callback
@Optional.Method(modid = "opencomputers")
public Object[] getNumberOfShields(Context context, Arguments args) {
return new Object[] {isMultiblockAssembled() ? getMultiblock().getPartMap(TileFissionShield.class).size() : 0};
}
//TODO review updateShieldState method
@Callback(doc = "function(int shield_id, bool state) Activate/Deactivate shield")
@Optional.Method(modid = "opencomputers")
public Object[] updateShieldState(Context context, Arguments args) {
boolean activated = false;
if(isMultiblockAssembled()) {
if(getMultiblock().getPartMap(TileFissionShield.class).size() == 0) {
return new Object[] {"No shields found."};
}
int shieldId = args.checkInteger(0)-1;
boolean shieldState = (boolean) args.checkBoolean(1);
if(shieldId > getMultiblock().getPartMap(TileFissionShield.class).size()) {
return new Object[] {"Wrong shield ID."};
}
//for some reasons getMultiblock().getPartMap(TileFissionShield.class).get(shieldId) is not giving us a shield instance, so using this workaround
Collection<TileFissionShield> shields = getMultiblock().getPartMap(TileFissionShield.class).values();
int i = 0;
for(TileFissionShield shield : shields) {
if(shieldId == i) {
shield.isShielding = shieldState;
shield.setActivity(shield.isShielding);
shield.resetStats();
getLogic().onShieldUpdated(shield);
markDirty();
getMultiblock().refreshFlag = true;
activated = shield.isShielding;
break;
}
}
}
return new Object[] {activated};
}
@Callback
@Optional.Method(modid = "opencomputers")
public Object[] getNumberOfClusters(Context context, Arguments args) {
int clusters = 0;
if(isMultiblockAssembled()) {
clusters = getMultiblock().clusterCount;
}
return new Object[] {clusters};
}
//TODO review method getClusterComponents
@Callback
@Optional.Method(modid = "opencomputers")
public Object[] getClusterComponents(Context context, Arguments args) {
List<Map> componentsData = new ArrayList<Map>();
if(isMultiblockAssembled()) {
if(getMultiblock().clusterCount == 0) {
return new Object[] {"No clusters found."};
}
int clusterId = args.checkInteger(0)-1;
if(clusterId > getMultiblock().clusterCount) {
return new Object[] {"Wrong cluster ID."};
}
FissionCluster cluster = getMultiblock().getClusterMap().get(clusterId);
for (Object comp : cluster.getComponentMap().values()) {
Map<String, Object> component = new HashMap<String, Object>();
if (comp instanceof TileSolidFissionSink) {
TileSolidFissionSink sink = (TileSolidFissionSink) comp;
component.put(sink.ruleID, new Object[]{sink.getHeatStored(), sink.coolingRate});
}
if (comp instanceof TileFissionShield) {
TileFissionShield shield = (TileFissionShield) comp;
component.put(shield.getClass().getName().toString(), new Object[]{shield.flux, shield.heatPerFlux, shield.isShielding, shield.heat, shield.efficiency});
}
componentsData.add(component);
}
}
return new Object[] {componentsData.toArray()};
}
@Callback
@Optional.Method(modid = "opencomputers")

View File

@ -16,7 +16,7 @@ import nc.Global;
import nc.multiblock.cuboidal.CuboidalPartPositionType;
import nc.multiblock.fission.*;
import nc.multiblock.fission.tile.port.*;
import nc.network.multiblock.FissionIrradiatorUpdatePacket;
import nc.multiblock.network.FissionIrradiatorUpdatePacket;
import nc.recipe.*;
import nc.recipe.ingredient.IItemIngredient;
import nc.tile.ITileGui;
@ -684,13 +684,13 @@ public class TileFissionIrradiator extends TileFissionPart implements ITileFilte
@Override
public NBTTagCompound writeInventory(NBTTagCompound nbt) {
NBTHelper.writeAllItems(nbt, inventoryStacks, filterStacks, consumedStacks);
NBTHelper.saveAllItems(nbt, inventoryStacks, filterStacks, consumedStacks);
return nbt;
}
@Override
public void readInventory(NBTTagCompound nbt) {
NBTHelper.readAllItems(nbt, inventoryStacks, filterStacks, consumedStacks);
NBTHelper.loadAllItems(nbt, inventoryStacks, filterStacks, consumedStacks);
}
// Capability

View File

@ -2,8 +2,8 @@ package nc.multiblock.fission.tile.manager;
import nc.multiblock.fission.*;
import nc.multiblock.fission.tile.IFissionPart;
import nc.multiblock.network.FissionUpdatePacket;
import nc.multiblock.tile.manager.ITileManager;
import nc.network.multiblock.FissionUpdatePacket;
public interface IFissionManager<MANAGER extends IFissionManager<MANAGER, LISTENER>, LISTENER extends IFissionManagerListener<MANAGER, LISTENER>> extends ITileManager<FissionReactor, FissionReactorLogic, IFissionPart, MANAGER, LISTENER, FissionUpdatePacket> {

View File

@ -2,8 +2,8 @@ package nc.multiblock.fission.tile.manager;
import nc.multiblock.fission.*;
import nc.multiblock.fission.tile.IFissionPart;
import nc.multiblock.network.FissionUpdatePacket;
import nc.multiblock.tile.manager.ITileManagerListener;
import nc.network.multiblock.FissionUpdatePacket;
public interface IFissionManagerListener<MANAGER extends IFissionManager<MANAGER, LISTENER>, LISTENER extends IFissionManagerListener<MANAGER, LISTENER>> extends ITileManagerListener<FissionReactor, FissionReactorLogic, IFissionPart, MANAGER, LISTENER, FissionUpdatePacket> {

View File

@ -8,7 +8,6 @@ import it.unimi.dsi.fastutil.longs.*;
import nc.multiblock.cuboidal.CuboidalPartPositionType;
import nc.multiblock.fission.FissionReactor;
import nc.multiblock.fission.tile.TileFissionPart;
import nc.util.NBTHelper;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.*;
import net.minecraftforge.common.capabilities.Capability;
@ -65,14 +64,25 @@ public abstract class TileFissionManager<MANAGER extends TileFissionManager<MANA
@Override
public NBTTagCompound writeAll(NBTTagCompound nbt) {
super.writeAll(nbt);
NBTHelper.writeLongCollection(nbt, listenerPosSet, "listenerPosSet");
int count = 0;
for (long posLong : listenerPosSet) {
nbt.setLong("listenerPos" + count, posLong);
count++;
}
return nbt;
}
@Override
public void readAll(NBTTagCompound nbt) {
super.readAll(nbt);
NBTHelper.readLongCollection(nbt, listenerPosSet, "listenerPosSet");
for (String key : nbt.getKeySet()) {
if (key.startsWith("listenerPos")) {
listenerPosSet.add(nbt.getLong(key));
}
}
}
// Capability

View File

@ -2,8 +2,8 @@ package nc.multiblock.fission.tile.port;
import nc.multiblock.fission.*;
import nc.multiblock.fission.tile.IFissionPart;
import nc.multiblock.network.FissionUpdatePacket;
import nc.multiblock.tile.port.ITilePort;
import nc.network.multiblock.FissionUpdatePacket;
public interface IFissionPort<PORT extends IFissionPort<PORT, TARGET>, TARGET extends IFissionPortTarget<PORT, TARGET>> extends ITilePort<FissionReactor, FissionReactorLogic, IFissionPart, PORT, TARGET, FissionUpdatePacket> {

View File

@ -2,8 +2,8 @@ package nc.multiblock.fission.tile.port;
import nc.multiblock.fission.*;
import nc.multiblock.fission.tile.IFissionPart;
import nc.multiblock.network.FissionUpdatePacket;
import nc.multiblock.tile.port.ITilePortTarget;
import nc.network.multiblock.FissionUpdatePacket;
public interface IFissionPortTarget<PORT extends IFissionPort<PORT, TARGET>, TARGET extends IFissionPortTarget<PORT, TARGET>> extends ITilePortTarget<FissionReactor, FissionReactorLogic, IFissionPart, PORT, TARGET, FissionUpdatePacket> {

View File

@ -6,7 +6,7 @@ import java.util.Set;
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet;
import nc.multiblock.fission.solid.tile.TileSolidFissionCell;
import nc.network.multiblock.FissionCellPortUpdatePacket;
import nc.multiblock.network.FissionCellPortUpdatePacket;
import nc.recipe.NCRecipes;
import nc.tile.ITileGui;
import net.minecraft.client.util.RecipeItemHelper;

View File

@ -10,7 +10,7 @@ import com.google.common.collect.Lists;
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet;
import nc.multiblock.fission.salt.tile.TileSaltFissionHeater;
import nc.network.multiblock.FissionHeaterPortUpdatePacket;
import nc.multiblock.network.FissionHeaterPortUpdatePacket;
import nc.recipe.NCRecipes;
import nc.tile.ITileGui;
import net.minecraft.block.state.IBlockState;

View File

@ -6,7 +6,7 @@ import java.util.Set;
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet;
import nc.multiblock.fission.tile.TileFissionIrradiator;
import nc.network.multiblock.FissionIrradiatorPortUpdatePacket;
import nc.multiblock.network.FissionIrradiatorPortUpdatePacket;
import nc.recipe.NCRecipes;
import nc.tile.ITileGui;
import net.minecraft.client.util.RecipeItemHelper;

View File

@ -257,7 +257,7 @@ public abstract class TileFissionItemPort<PORT extends TileFissionItemPort<PORT,
}
}
NBTHelper.writeAllItems(nbt, inventoryStacks, filterStacks);
NBTHelper.saveAllItems(nbt, inventoryStacks, filterStacks);
for (int i = 0; i < inventoryStacks.size(); i++) {
if (!inventoryStacks.get(i).isEmpty()) {
@ -270,7 +270,7 @@ public abstract class TileFissionItemPort<PORT extends TileFissionItemPort<PORT,
@Override
public void readInventory(NBTTagCompound nbt) {
NBTHelper.readAllItems(nbt, inventoryStacks, filterStacks);
NBTHelper.loadAllItems(nbt, inventoryStacks, filterStacks);
for (int i = 0; i < inventoryStacks.size(); i++) {
if (!inventoryStacks.get(i).isEmpty()) {

View File

@ -7,7 +7,7 @@ import java.util.Set;
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet;
import nc.multiblock.fission.salt.tile.TileSaltFissionVessel;
import nc.network.multiblock.FissionVesselPortUpdatePacket;
import nc.multiblock.network.FissionVesselPortUpdatePacket;
import nc.recipe.NCRecipes;
import nc.tile.ITileGui;
import net.minecraft.entity.player.EntityPlayer;

View File

@ -6,8 +6,8 @@ import nc.Global;
import nc.multiblock.gui.element.MultiblockButton;
import nc.multiblock.heatExchanger.HeatExchanger;
import nc.multiblock.heatExchanger.tile.IHeatExchangerController;
import nc.multiblock.network.ClearAllMaterialPacket;
import nc.network.PacketHandler;
import nc.network.multiblock.ClearAllMaterialPacket;
import nc.util.*;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.entity.player.EntityPlayer;

View File

@ -7,8 +7,8 @@ import nc.multiblock.fission.FissionReactor;
import nc.multiblock.fission.salt.MoltenSaltFissionLogic;
import nc.multiblock.fission.tile.IFissionController;
import nc.multiblock.gui.element.MultiblockButton;
import nc.multiblock.network.ClearAllMaterialPacket;
import nc.network.PacketHandler;
import nc.network.multiblock.ClearAllMaterialPacket;
import nc.util.*;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.entity.player.EntityPlayer;
@ -73,7 +73,7 @@ public class GuiSaltFissionController extends GuiLogicMultiblock<FissionReactor,
String speedMult = Lang.localise("gui.nc.container.salt_fission_controller.heating_speed_multiplier") + " " + NCMath.pcDecimalPlaces(logic.meanHeatingSpeedMultiplier, 1);
fontRenderer.drawString(speedMult, xSize / 2 - width(speedMult) / 2, 46, fontColor);
String sparsity = NCUtil.isModifierKeyDown() ? Lang.localise("gui.nc.container.fission_controller.useful_parts") + " " + multiblock.usefulPartCount + "/" + multiblock.getInteriorVolume() : Lang.localise("gui.nc.container.fission_controller.sparsity") + " " + NCMath.pcDecimalPlaces(multiblock.sparsityEfficiencyMult, 1);
String sparsity = NCUtil.isModifierKeyDown() ? Lang.localise("gui.nc.container.fission_controller.useful_parts") + " " + multiblock.usefulPartCount + "/" + multiblock.getInteriorVolume() : Lang.localise("gui.nc.container.fission_controller.sparsity") + " " + NCMath.decimalPlaces(multiblock.sparsityEfficiencyMult, 1);
fontRenderer.drawString(sparsity, xSize / 2 - width(sparsity) / 2, 58, fontColor);
String temperature = Lang.localise("gui.nc.container.fission_controller.temperature") + " " + (NCUtil.isModifierKeyDown() ? logic.getTemperature() - 273 + " C" : logic.getTemperature() + " K");

View File

@ -7,8 +7,8 @@ import nc.multiblock.fission.FissionReactor;
import nc.multiblock.fission.solid.SolidFuelFissionLogic;
import nc.multiblock.fission.tile.IFissionController;
import nc.multiblock.gui.element.MultiblockButton;
import nc.multiblock.network.ClearAllMaterialPacket;
import nc.network.PacketHandler;
import nc.network.multiblock.ClearAllMaterialPacket;
import nc.util.*;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.entity.player.EntityPlayer;

View File

@ -2,10 +2,10 @@ package nc.multiblock.gui;
import nc.Global;
import nc.multiblock.gui.element.MultiblockButton;
import nc.multiblock.network.ClearAllMaterialPacket;
import nc.multiblock.turbine.Turbine;
import nc.multiblock.turbine.tile.*;
import nc.network.PacketHandler;
import nc.network.multiblock.ClearAllMaterialPacket;
import nc.util.*;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.entity.player.EntityPlayer;

View File

@ -11,9 +11,9 @@ import nc.Global;
import nc.multiblock.*;
import nc.multiblock.cuboidal.CuboidalMultiblock;
import nc.multiblock.heatExchanger.tile.*;
import nc.multiblock.network.HeatExchangerUpdatePacket;
import nc.multiblock.tile.ITileMultiblockPart;
import nc.multiblock.tile.TileBeefAbstract.SyncReason;
import nc.network.multiblock.HeatExchangerUpdatePacket;
import nc.util.NCMath;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.math.BlockPos;

View File

@ -9,8 +9,8 @@ import com.google.common.collect.Lists;
import nc.Global;
import nc.multiblock.*;
import nc.multiblock.heatExchanger.tile.*;
import nc.multiblock.network.HeatExchangerUpdatePacket;
import nc.multiblock.tile.TileBeefAbstract.SyncReason;
import nc.network.multiblock.HeatExchangerUpdatePacket;
import net.minecraft.nbt.NBTTagCompound;
public class HeatExchangerLogic extends MultiblockLogic<HeatExchanger, HeatExchangerLogic, IHeatExchangerPart, HeatExchangerUpdatePacket> {

View File

@ -1,8 +1,8 @@
package nc.multiblock.heatExchanger.tile;
import nc.multiblock.heatExchanger.*;
import nc.multiblock.network.HeatExchangerUpdatePacket;
import nc.multiblock.tile.ITileLogicMultiblockPart;
import nc.network.multiblock.HeatExchangerUpdatePacket;
public interface IHeatExchangerPart extends ITileLogicMultiblockPart<HeatExchanger, HeatExchangerLogic, IHeatExchangerPart, HeatExchangerUpdatePacket> {

View File

@ -1,35 +1,46 @@
package nc.network.multiblock;
package nc.multiblock.network;
import io.netty.buffer.ByteBuf;
import nc.multiblock.Multiblock;
import nc.multiblock.tile.ITileMultiblockPart;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.fml.common.network.simpleimpl.*;
import net.minecraftforge.fml.relauncher.Side;
public class ClearAllMaterialPacket implements IMessage {
private BlockPos pos;
boolean messageValid;
BlockPos pos;
public ClearAllMaterialPacket() {
messageValid = false;
}
public ClearAllMaterialPacket(BlockPos pos) {
this.pos = pos;
messageValid = true;
}
@Override
public void fromBytes(ByteBuf buf) {
pos = new BlockPos(buf.readInt(), buf.readInt(), buf.readInt());
try {
pos = new BlockPos(buf.readInt(), buf.readInt(), buf.readInt());
}
catch (IndexOutOfBoundsException e) {
e.printStackTrace();
return;
}
messageValid = true;
}
@Override
public void toBytes(ByteBuf buf) {
if (!messageValid) {
return;
}
buf.writeInt(pos.getX());
buf.writeInt(pos.getY());
buf.writeInt(pos.getZ());
@ -39,19 +50,18 @@ public class ClearAllMaterialPacket implements IMessage {
@Override
public IMessage onMessage(ClearAllMaterialPacket message, MessageContext ctx) {
if (ctx.side == Side.SERVER) {
FMLCommonHandler.instance().getWorldThread(ctx.netHandler).addScheduledTask(() -> processMessage(message, ctx));
if (!message.messageValid && ctx.side != Side.SERVER) {
return null;
}
FMLCommonHandler.instance().getWorldThread(ctx.netHandler).addScheduledTask(() -> processMessage(message, ctx));
return null;
}
void processMessage(ClearAllMaterialPacket message, MessageContext ctx) {
EntityPlayerMP player = ctx.getServerHandler().player;
World world = player.getServerWorld();
if (!world.isBlockLoaded(message.pos) || !world.isBlockModifiable(player, message.pos)) {
TileEntity tile = ctx.getServerHandler().player.getServerWorld().getTileEntity(message.pos);
if (tile == null) {
return;
}
TileEntity tile = world.getTileEntity(message.pos);
if (tile instanceof ITileMultiblockPart) {
Multiblock multiblock = ((ITileMultiblockPart) tile).getMultiblock();
multiblock.clearAllMaterial();

View File

@ -1,4 +1,4 @@
package nc.network.multiblock;
package nc.multiblock.network;
import io.netty.buffer.ByteBuf;
import nc.network.tile.TileUpdatePacket;
@ -22,14 +22,14 @@ public class FissionCellPortUpdatePacket extends FissionPortUpdatePacket {
}
@Override
public void fromBytes(ByteBuf buf) {
super.fromBytes(buf);
public void readMessage(ByteBuf buf) {
super.readMessage(buf);
filterStack = ByteBufUtils.readItemStack(buf);
}
@Override
public void toBytes(ByteBuf buf) {
super.toBytes(buf);
public void writeMessage(ByteBuf buf) {
super.writeMessage(buf);
ByteBufUtils.writeItemStack(buf, filterStack);
}

View File

@ -1,4 +1,4 @@
package nc.network.multiblock;
package nc.multiblock.network;
import java.util.List;
@ -25,8 +25,8 @@ public class FissionHeaterPortUpdatePacket extends FissionPortUpdatePacket {
}
@Override
public void fromBytes(ByteBuf buf) {
super.fromBytes(buf);
public void readMessage(ByteBuf buf) {
super.readMessage(buf);
byte numberOfTanks = buf.readByte();
tanksInfo = TankInfo.readBuf(buf, numberOfTanks);
byte numberOfFilterTanks = buf.readByte();
@ -34,8 +34,8 @@ public class FissionHeaterPortUpdatePacket extends FissionPortUpdatePacket {
}
@Override
public void toBytes(ByteBuf buf) {
super.toBytes(buf);
public void writeMessage(ByteBuf buf) {
super.writeMessage(buf);
buf.writeByte(tanksInfo.size());
for (TankInfo info : tanksInfo) {
info.writeBuf(buf);

View File

@ -1,4 +1,4 @@
package nc.network.multiblock;
package nc.multiblock.network;
import io.netty.buffer.ByteBuf;
import nc.network.tile.TileUpdatePacket;
@ -22,14 +22,14 @@ public class FissionIrradiatorPortUpdatePacket extends FissionPortUpdatePacket {
}
@Override
public void fromBytes(ByteBuf buf) {
super.fromBytes(buf);
public void readMessage(ByteBuf buf) {
super.readMessage(buf);
filterStack = ByteBufUtils.readItemStack(buf);
}
@Override
public void toBytes(ByteBuf buf) {
super.toBytes(buf);
public void writeMessage(ByteBuf buf) {
super.writeMessage(buf);
ByteBufUtils.writeItemStack(buf, filterStack);
}

View File

@ -1,4 +1,4 @@
package nc.network.multiblock;
package nc.multiblock.network;
import io.netty.buffer.ByteBuf;
import nc.multiblock.fission.FissionCluster;
@ -18,7 +18,7 @@ public class FissionIrradiatorUpdatePacket extends TileUpdatePacket {
public double time, baseProcessTime;
public FissionIrradiatorUpdatePacket() {
messageValid = false;
}
public FissionIrradiatorUpdatePacket(BlockPos pos, BlockPos masterPortPos, NonNullList<ItemStack> filterStacks, FissionCluster cluster, boolean isProcessing, double time, double baseProcessTime) {
@ -30,10 +30,12 @@ public class FissionIrradiatorUpdatePacket extends TileUpdatePacket {
this.isProcessing = isProcessing;
this.time = time;
this.baseProcessTime = baseProcessTime;
messageValid = true;
}
@Override
public void fromBytes(ByteBuf buf) {
public void readMessage(ByteBuf buf) {
pos = new BlockPos(buf.readInt(), buf.readInt(), buf.readInt());
masterPortPos = new BlockPos(buf.readInt(), buf.readInt(), buf.readInt());
filterStack = ByteBufUtils.readItemStack(buf);
@ -45,7 +47,7 @@ public class FissionIrradiatorUpdatePacket extends TileUpdatePacket {
}
@Override
public void toBytes(ByteBuf buf) {
public void writeMessage(ByteBuf buf) {
buf.writeInt(pos.getX());
buf.writeInt(pos.getY());
buf.writeInt(pos.getZ());

View File

@ -1,4 +1,4 @@
package nc.network.multiblock;
package nc.multiblock.network;
import io.netty.buffer.ByteBuf;
import nc.network.tile.TileUpdatePacket;
@ -10,22 +10,24 @@ public class FissionPortUpdatePacket extends TileUpdatePacket {
public BlockPos masterPortPos;
public FissionPortUpdatePacket() {
messageValid = false;
}
public FissionPortUpdatePacket(BlockPos pos, BlockPos masterPortPos) {
this.pos = pos;
this.masterPortPos = masterPortPos;
messageValid = true;
}
@Override
public void fromBytes(ByteBuf buf) {
public void readMessage(ByteBuf buf) {
pos = new BlockPos(buf.readInt(), buf.readInt(), buf.readInt());
masterPortPos = new BlockPos(buf.readInt(), buf.readInt(), buf.readInt());
}
@Override
public void toBytes(ByteBuf buf) {
public void writeMessage(ByteBuf buf) {
buf.writeInt(pos.getX());
buf.writeInt(pos.getY());
buf.writeInt(pos.getZ());

View File

@ -1,4 +1,4 @@
package nc.network.multiblock;
package nc.multiblock.network;
import io.netty.buffer.ByteBuf;
import nc.tile.internal.heat.HeatBuffer;
@ -12,7 +12,7 @@ public abstract class FissionUpdatePacket extends MultiblockUpdatePacket {
public double meanHeatMult, totalEfficiency, meanEfficiency, sparsityEfficiencyMult;
public FissionUpdatePacket() {
messageValid = false;
}
public FissionUpdatePacket(BlockPos pos, boolean isReactorOn, HeatBuffer heatBuffer, int clusterCount, long cooling, long rawHeating, long totalHeatMult, double meanHeatMult, int fuelComponentCount, long usefulPartCount, double totalEfficiency, double meanEfficiency, double sparsityEfficiencyMult) {
@ -30,10 +30,12 @@ public abstract class FissionUpdatePacket extends MultiblockUpdatePacket {
this.totalEfficiency = totalEfficiency;
this.meanEfficiency = meanEfficiency;
this.sparsityEfficiencyMult = sparsityEfficiencyMult;
messageValid = true;
}
@Override
public void fromBytes(ByteBuf buf) {
public void readMessage(ByteBuf buf) {
pos = new BlockPos(buf.readInt(), buf.readInt(), buf.readInt());
isReactorOn = buf.readBoolean();
heatStored = buf.readLong();
@ -51,7 +53,7 @@ public abstract class FissionUpdatePacket extends MultiblockUpdatePacket {
}
@Override
public void toBytes(ByteBuf buf) {
public void writeMessage(ByteBuf buf) {
buf.writeInt(pos.getX());
buf.writeInt(pos.getY());
buf.writeInt(pos.getZ());

View File

@ -1,4 +1,4 @@
package nc.network.multiblock;
package nc.multiblock.network;
import java.util.List;
@ -25,8 +25,8 @@ public class FissionVesselPortUpdatePacket extends FissionPortUpdatePacket {
}
@Override
public void fromBytes(ByteBuf buf) {
super.fromBytes(buf);
public void readMessage(ByteBuf buf) {
super.readMessage(buf);
byte numberOfTanks = buf.readByte();
tanksInfo = TankInfo.readBuf(buf, numberOfTanks);
byte numberOfFilterTanks = buf.readByte();
@ -34,8 +34,8 @@ public class FissionVesselPortUpdatePacket extends FissionPortUpdatePacket {
}
@Override
public void toBytes(ByteBuf buf) {
super.toBytes(buf);
public void writeMessage(ByteBuf buf) {
super.writeMessage(buf);
buf.writeByte(tanksInfo.size());
for (TankInfo info : tanksInfo) {
info.writeBuf(buf);

View File

@ -1,4 +1,4 @@
package nc.network.multiblock;
package nc.multiblock.network;
import io.netty.buffer.ByteBuf;
import nc.multiblock.heatExchanger.HeatExchanger;
@ -13,7 +13,7 @@ public class HeatExchangerUpdatePacket extends MultiblockUpdatePacket {
public double maxEfficiency;
public HeatExchangerUpdatePacket() {
messageValid = false;
}
public HeatExchangerUpdatePacket(BlockPos pos, boolean isHeatExchangerOn, double fractionOfTubesActive, double efficiency, double maxEfficiency) {
@ -22,10 +22,12 @@ public class HeatExchangerUpdatePacket extends MultiblockUpdatePacket {
this.fractionOfTubesActive = fractionOfTubesActive;
this.efficiency = efficiency;
this.maxEfficiency = maxEfficiency;
messageValid = true;
}
@Override
public void fromBytes(ByteBuf buf) {
public void readMessage(ByteBuf buf) {
pos = new BlockPos(buf.readInt(), buf.readInt(), buf.readInt());
isHeatExchangerOn = buf.readBoolean();
fractionOfTubesActive = buf.readDouble();
@ -34,7 +36,7 @@ public class HeatExchangerUpdatePacket extends MultiblockUpdatePacket {
}
@Override
public void toBytes(ByteBuf buf) {
public void writeMessage(ByteBuf buf) {
buf.writeInt(pos.getX());
buf.writeInt(pos.getY());
buf.writeInt(pos.getZ());

Some files were not shown because too many files have changed in this diff Show More