Mekanism-tilera-Edition/src/main/java/mekanism/common/network/PacketConfigSync.java
2022-09-11 19:57:26 +02:00

222 lines
9.6 KiB
Java

package mekanism.common.network;
import io.netty.buffer.ByteBuf;
import mekanism.api.MekanismConfig.general;
import mekanism.api.MekanismConfig.machines;
import mekanism.api.MekanismConfig.usage;
import mekanism.api.util.UnitDisplayUtils.EnergyType;
import mekanism.common.Mekanism;
import mekanism.common.Tier;
import mekanism.common.base.IModule;
import mekanism.common.block.BlockMachine.MachineType;
import mekanism.common.network.PacketConfigSync.ConfigSyncMessage;
import cpw.mods.fml.common.network.simpleimpl.IMessage;
import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
import cpw.mods.fml.common.network.simpleimpl.MessageContext;
public class PacketConfigSync implements IMessageHandler<ConfigSyncMessage, IMessage>
{
@Override
public IMessage onMessage(ConfigSyncMessage message, MessageContext context)
{
return null;
}
public static class ConfigSyncMessage implements IMessage
{
public ConfigSyncMessage() {}
@Override
public void toBytes(ByteBuf dataStream)
{
dataStream.writeBoolean(general.controlCircuitOreDict);
dataStream.writeBoolean(general.logPackets);
dataStream.writeBoolean(general.dynamicTankEasterEgg);
dataStream.writeBoolean(general.voiceServerEnabled);
dataStream.writeBoolean(general.cardboardSpawners);
dataStream.writeBoolean(general.spawnBabySkeletons);
dataStream.writeInt(general.obsidianTNTDelay);
dataStream.writeInt(general.obsidianTNTBlastRadius);
dataStream.writeInt(general.UPDATE_DELAY);
dataStream.writeDouble(general.FROM_IC2);
dataStream.writeDouble(general.TO_IC2);
dataStream.writeDouble(general.FROM_TE);
dataStream.writeDouble(general.TO_TE);
dataStream.writeDouble(general.FROM_H2);
dataStream.writeInt(general.ETHENE_BURN_TIME);
dataStream.writeInt(general.METHANE_BURN_TIME);
dataStream.writeDouble(general.ENERGY_PER_REDSTONE);
dataStream.writeDouble(general.DISASSEMBLER_USAGE);
dataStream.writeInt(general.VOICE_PORT);
dataStream.writeInt(general.maxUpgradeMultiplier);
dataStream.writeInt(general.energyUnit.ordinal());
dataStream.writeDouble(general.minerSilkMultiplier);
dataStream.writeBoolean(general.blacklistIC2);
dataStream.writeBoolean(general.blacklistRF);
dataStream.writeDouble(general.armoredJetpackDamageRatio);
dataStream.writeInt(general.armoredJetpackDamageMax);
dataStream.writeBoolean(general.aestheticWorldDamage);
dataStream.writeBoolean(general.opsBypassRestrictions);
dataStream.writeDouble(general.thermalEvaporationSpeed);
dataStream.writeInt(general.maxJetpackGas);
dataStream.writeInt(general.maxScubaGas);
dataStream.writeInt(general.maxFlamethrowerGas);
dataStream.writeInt(general.maxPumpRange);
dataStream.writeBoolean(general.pumpWaterSources);
dataStream.writeInt(general.maxPlenisherNodes);
dataStream.writeDouble(general.evaporationHeatDissipation);
dataStream.writeDouble(general.evaporationTempMultiplier);
dataStream.writeDouble(general.evaporationSolarMultiplier);
dataStream.writeDouble(general.evaporationMaxTemp);
dataStream.writeDouble(general.energyPerHeat);
dataStream.writeDouble(general.maxEnergyPerSteam);
dataStream.writeDouble(general.superheatingHeatTransfer);
dataStream.writeDouble(general.heatPerFuelTick);
dataStream.writeBoolean(general.allowTransmitterAlloyUpgrade);
dataStream.writeBoolean(general.allowProtection);
dataStream.writeBoolean(general.EnableQuartzCompat);
dataStream.writeBoolean(general.EnableDiamondCompat);
dataStream.writeBoolean(general.EnablePoorOresCompat);
dataStream.writeBoolean(general.OreDictOsmium);
dataStream.writeBoolean(general.OreDictPlatinum);
for(MachineType type : MachineType.getValidMachines())
{
dataStream.writeBoolean(machines.isEnabled(type.name));
}
dataStream.writeDouble(usage.enrichmentChamberUsage);
dataStream.writeDouble(usage.osmiumCompressorUsage);
dataStream.writeDouble(usage.combinerUsage);
dataStream.writeDouble(usage.crusherUsage);
dataStream.writeDouble(usage.factoryUsage);
dataStream.writeDouble(usage.metallurgicInfuserUsage);
dataStream.writeDouble(usage.purificationChamberUsage);
dataStream.writeDouble(usage.energizedSmelterUsage);
dataStream.writeDouble(usage.digitalMinerUsage);
dataStream.writeDouble(usage.electricPumpUsage);
dataStream.writeDouble(usage.rotaryCondensentratorUsage);
dataStream.writeDouble(usage.oxidationChamberUsage);
dataStream.writeDouble(usage.chemicalInfuserUsage);
dataStream.writeDouble(usage.chemicalInjectionChamberUsage);
dataStream.writeDouble(usage.precisionSawmillUsage);
dataStream.writeDouble(usage.chemicalDissolutionChamberUsage);
dataStream.writeDouble(usage.chemicalWasherUsage);
dataStream.writeDouble(usage.chemicalCrystallizerUsage);
dataStream.writeDouble(usage.seismicVibratorUsage);
dataStream.writeDouble(usage.fluidicPlenisherUsage);
dataStream.writeDouble(usage.gasCentrifugeUsage);
dataStream.writeDouble(usage.heavyWaterElectrolysisUsage);
dataStream.writeDouble(usage.formulaicAssemblicatorUsage);
Tier.writeConfig(dataStream);
try {
for(IModule module : Mekanism.modulesLoaded)
{
module.writeConfig(dataStream);
}
} catch(Exception e) {
e.printStackTrace();
}
}
@Override
public void fromBytes(ByteBuf dataStream)
{
general.controlCircuitOreDict = dataStream.readBoolean();
general.logPackets = dataStream.readBoolean();
general.dynamicTankEasterEgg = dataStream.readBoolean();
general.voiceServerEnabled = dataStream.readBoolean();
general.cardboardSpawners = dataStream.readBoolean();
general.spawnBabySkeletons = dataStream.readBoolean();
general.obsidianTNTDelay = dataStream.readInt();
general.obsidianTNTBlastRadius = dataStream.readInt();
general.UPDATE_DELAY = dataStream.readInt();
general.FROM_IC2 = dataStream.readDouble();
general.TO_IC2 = dataStream.readDouble();
general.FROM_TE = dataStream.readDouble();
general.TO_TE = dataStream.readDouble();
general.FROM_H2 = dataStream.readDouble();
general.ETHENE_BURN_TIME = dataStream.readInt();
general.METHANE_BURN_TIME = dataStream.readInt();
general.ENERGY_PER_REDSTONE = dataStream.readDouble();
general.DISASSEMBLER_USAGE = dataStream.readDouble();
general.VOICE_PORT = dataStream.readInt();
general.maxUpgradeMultiplier = dataStream.readInt();
general.energyUnit = EnergyType.values()[dataStream.readInt()];
general.minerSilkMultiplier = dataStream.readDouble();
general.blacklistIC2 = dataStream.readBoolean();
general.blacklistRF = dataStream.readBoolean();
general.armoredJetpackDamageRatio = dataStream.readDouble();
general.armoredJetpackDamageMax = dataStream.readInt();
general.aestheticWorldDamage = dataStream.readBoolean();
general.opsBypassRestrictions = dataStream.readBoolean();
general.thermalEvaporationSpeed = dataStream.readDouble();
general.maxJetpackGas = dataStream.readInt();
general.maxScubaGas = dataStream.readInt();
general.maxFlamethrowerGas = dataStream.readInt();
general.maxPumpRange = dataStream.readInt();
general.pumpWaterSources = dataStream.readBoolean();
general.maxPlenisherNodes = dataStream.readInt();
general.evaporationHeatDissipation = dataStream.readDouble();
general.evaporationTempMultiplier = dataStream.readDouble();
general.evaporationSolarMultiplier = dataStream.readDouble();
general.evaporationMaxTemp = dataStream.readDouble();
general.energyPerHeat = dataStream.readDouble();
general.maxEnergyPerSteam = dataStream.readDouble();
general.superheatingHeatTransfer = dataStream.readDouble();
general.heatPerFuelTick = dataStream.readDouble();
general.allowTransmitterAlloyUpgrade = dataStream.readBoolean();
general.allowProtection = dataStream.readBoolean();
general.EnableQuartzCompat = dataStream.readBoolean();
general.EnableDiamondCompat = dataStream.readBoolean();
general.EnablePoorOresCompat = dataStream.readBoolean();
general.OreDictOsmium = dataStream.readBoolean();
general.OreDictPlatinum = dataStream.readBoolean();
for(MachineType type : MachineType.getValidMachines())
{
machines.setEntry(type.name, dataStream.readBoolean());
}
usage.enrichmentChamberUsage = dataStream.readDouble();
usage.osmiumCompressorUsage = dataStream.readDouble();
usage.combinerUsage = dataStream.readDouble();
usage.crusherUsage = dataStream.readDouble();
usage.factoryUsage = dataStream.readDouble();
usage.metallurgicInfuserUsage = dataStream.readDouble();
usage.purificationChamberUsage = dataStream.readDouble();
usage.energizedSmelterUsage = dataStream.readDouble();
usage.digitalMinerUsage = dataStream.readDouble();
usage.electricPumpUsage = dataStream.readDouble();
usage.rotaryCondensentratorUsage = dataStream.readDouble();
usage.oxidationChamberUsage = dataStream.readDouble();
usage.chemicalInfuserUsage = dataStream.readDouble();
usage.chemicalInjectionChamberUsage = dataStream.readDouble();
usage.precisionSawmillUsage = dataStream.readDouble();
usage.chemicalDissolutionChamberUsage = dataStream.readDouble();
usage.chemicalWasherUsage = dataStream.readDouble();
usage.chemicalCrystallizerUsage = dataStream.readDouble();
usage.seismicVibratorUsage = dataStream.readDouble();
usage.fluidicPlenisherUsage = dataStream.readDouble();
usage.gasCentrifugeUsage = dataStream.readDouble();
usage.heavyWaterElectrolysisUsage = dataStream.readDouble();
usage.formulaicAssemblicatorUsage = dataStream.readDouble();
Tier.readConfig(dataStream);
try {
for(IModule module : Mekanism.modulesLoaded)
{
module.readConfig(dataStream);
}
} catch(Exception e) {
e.printStackTrace();
}
Mekanism.proxy.onConfigSync(true);
}
}
}