From 3fcce24bac210ce29ccc8d02bf9c49cb7ebc78ce Mon Sep 17 00:00:00 2001 From: Ben Spiers Date: Fri, 15 Aug 2014 02:58:44 +0100 Subject: [PATCH] Move client configs to their own category, with new gui screen to match. --- .../java/mekanism/api/MekanismConfig.java | 10 +++++++++- .../java/mekanism/client/ClientProxy.java | 19 ++++++++++--------- .../mekanism/client/ClientTickHandler.java | 3 ++- .../java/mekanism/client/HolidayManager.java | 5 +++-- .../java/mekanism/client/MekanismClient.java | 6 ------ .../client/gui/GuiMekanismConfig.java | 18 ++++++++++++++++++ .../java/mekanism/client/sound/Sound.java | 3 ++- .../mekanism/client/sound/SoundHandler.java | 4 ++-- .../mekanism/common/block/BlockMachine.java | 6 +++--- .../multipart/PartLogisticalTransporter.java | 10 ++++++++-- .../common/multipart/PartUniversalCable.java | 4 ++-- .../mekanism/common/util/MekanismUtils.java | 5 ++--- 12 files changed, 61 insertions(+), 32 deletions(-) diff --git a/src/main/java/mekanism/api/MekanismConfig.java b/src/main/java/mekanism/api/MekanismConfig.java index d5dda040a..0835f5274 100644 --- a/src/main/java/mekanism/api/MekanismConfig.java +++ b/src/main/java/mekanism/api/MekanismConfig.java @@ -12,7 +12,6 @@ public class MekanismConfig public static boolean dynamicTankEasterEgg = false; public static boolean voiceServerEnabled = true; public static boolean cardboardSpawners = true; - public static boolean machineEffects = true; public static boolean enableWorldRegeneration = true; public static boolean creativeOverrideElectricChest = true; public static boolean spawnBabySkeletons = true; @@ -38,6 +37,15 @@ public class MekanismConfig public static int laserRange = 100; } + public static class client + { + public static boolean enableSounds = true; + public static boolean fancyUniversalCableRender = true; + public static boolean holidays = true; + public static double baseSoundVolume = 1; + public static boolean machineEffects = true; + } + public static class usage { public static double enrichmentChamberUsage; diff --git a/src/main/java/mekanism/client/ClientProxy.java b/src/main/java/mekanism/client/ClientProxy.java index 69f124140..4e3266f7e 100644 --- a/src/main/java/mekanism/client/ClientProxy.java +++ b/src/main/java/mekanism/client/ClientProxy.java @@ -4,6 +4,7 @@ import java.io.File; import java.util.HashMap; import mekanism.api.Coord4D; +import mekanism.api.MekanismConfig.client; import mekanism.api.MekanismConfig.general; import mekanism.client.entity.EntityLaser; import mekanism.client.gui.GuiChemicalCrystallizer; @@ -182,11 +183,11 @@ public class ClientProxy extends CommonProxy { super.loadConfiguration(); - MekanismClient.enableSounds = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "EnableSounds", true).getBoolean(true); - MekanismClient.fancyUniversalCableRender = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "FancyUniversalCableRender", true).getBoolean(true); - MekanismClient.holidays = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "Holidays", true).getBoolean(true); - MekanismClient.baseSoundVolume = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "SoundVolume", 1D).getDouble(1D); - general.machineEffects = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "MachineEffects", true).getBoolean(true); + client.enableSounds = Mekanism.configuration.get("client", "EnableSounds", true).getBoolean(true); + client.fancyUniversalCableRender = Mekanism.configuration.get("client", "FancyUniversalCableRender", true).getBoolean(true); + client.holidays = Mekanism.configuration.get("client", "Holidays", true).getBoolean(true); + client.baseSoundVolume = Mekanism.configuration.get("client", "SoundVolume", 1D).getDouble(1D); + client.machineEffects = Mekanism.configuration.get("client", "MachineEffects", true).getBoolean(true); if(Mekanism.configuration.hasChanged()) Mekanism.configuration.save(); @@ -201,7 +202,7 @@ public class ClientProxy extends CommonProxy @Override public void registerSound(TileEntity tileEntity) { - if(MekanismClient.enableSounds && MekanismClient.audioHandler != null) + if(client.enableSounds && MekanismClient.audioHandler != null) { synchronized(MekanismClient.audioHandler.soundMaps) { @@ -213,7 +214,7 @@ public class ClientProxy extends CommonProxy @Override public void unregisterSound(TileEntity tileEntity) { - if(MekanismClient.enableSounds && MekanismClient.audioHandler != null) + if(client.enableSounds && MekanismClient.audioHandler != null) { synchronized(MekanismClient.audioHandler.soundMaps) { @@ -512,7 +513,7 @@ public class ClientProxy extends CommonProxy @Override public void loadSoundHandler() { - if(MekanismClient.enableSounds) + if(client.enableSounds) { MekanismClient.audioHandler = new SoundHandler(); } @@ -521,7 +522,7 @@ public class ClientProxy extends CommonProxy @Override public void unloadSoundHandler() { - if(MekanismClient.enableSounds) + if(client.enableSounds) { if(MekanismClient.audioHandler != null) { diff --git a/src/main/java/mekanism/client/ClientTickHandler.java b/src/main/java/mekanism/client/ClientTickHandler.java index 2843ff529..33f1805ef 100644 --- a/src/main/java/mekanism/client/ClientTickHandler.java +++ b/src/main/java/mekanism/client/ClientTickHandler.java @@ -9,6 +9,7 @@ import java.util.Set; import mekanism.api.EnumColor; import mekanism.api.IClientTicker; +import mekanism.api.MekanismConfig.client; import mekanism.api.gas.GasStack; import mekanism.client.sound.FlamethrowerSound; import mekanism.client.sound.GasMaskSound; @@ -97,7 +98,7 @@ public class ClientTickHandler public void tickStart() { - if(!preloadedSounds && MekanismClient.enableSounds && MekanismClient.audioHandler != null && MekanismClient.audioHandler.isSystemLoaded()) + if(!preloadedSounds && client.enableSounds && MekanismClient.audioHandler != null && MekanismClient.audioHandler.isSystemLoaded()) { preloadedSounds = true; diff --git a/src/main/java/mekanism/client/HolidayManager.java b/src/main/java/mekanism/client/HolidayManager.java index 433199640..90eee8775 100644 --- a/src/main/java/mekanism/client/HolidayManager.java +++ b/src/main/java/mekanism/client/HolidayManager.java @@ -5,6 +5,7 @@ import java.util.Calendar; import java.util.List; import mekanism.api.EnumColor; +import mekanism.api.MekanismConfig.client; import mekanism.common.Mekanism; import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; @@ -20,7 +21,7 @@ public final class HolidayManager public static void init() { - if(MekanismClient.holidays) + if(client.holidays) { holidays.add(new Christmas()); holidays.add(new NewYear()); @@ -50,7 +51,7 @@ public final class HolidayManager public static String filterSound(String sound) { - if(!MekanismClient.holidays) + if(!client.holidays) { return sound; } diff --git a/src/main/java/mekanism/client/MekanismClient.java b/src/main/java/mekanism/client/MekanismClient.java index f642ff067..de90f221e 100644 --- a/src/main/java/mekanism/client/MekanismClient.java +++ b/src/main/java/mekanism/client/MekanismClient.java @@ -21,12 +21,6 @@ public class MekanismClient extends Mekanism public static VoiceClient voiceClient; - //General Configuration - public static boolean enableSounds = true; - public static boolean fancyUniversalCableRender = true; - public static boolean holidays = true; - public static double baseSoundVolume = 1; - public static long ticksPassed = 0; public static void updateKey(KeyBinding key, int type) diff --git a/src/main/java/mekanism/client/gui/GuiMekanismConfig.java b/src/main/java/mekanism/client/gui/GuiMekanismConfig.java index b90e823ce..56b8d69e4 100644 --- a/src/main/java/mekanism/client/gui/GuiMekanismConfig.java +++ b/src/main/java/mekanism/client/gui/GuiMekanismConfig.java @@ -27,6 +27,7 @@ public class GuiMekanismConfig extends GuiConfig List list = new ArrayList(); list.add(new DummyCategoryElement("Mekanism General Settings", "mekanism.configgui.ctgy.general", GeneralEntry.class)); list.add(new DummyCategoryElement("Usage Settings", "mekanism.configgui.ctgy.usage", UsageEntry.class)); + list.add(new DummyCategoryElement("Client Settings", "mekanism.configgui.ctgy.client", ClientEntry.class)); return list; } @@ -63,4 +64,21 @@ public class GuiMekanismConfig extends GuiConfig GuiConfig.getAbridgedConfigPath(Mekanism.configuration.toString())); } } + + public static class ClientEntry extends CategoryEntry + { + public ClientEntry(GuiConfig owningScreen, GuiConfigEntries owningEntryList, IConfigElement prop) + { + super(owningScreen, owningEntryList, prop); + } + + @Override + protected GuiScreen buildChildScreen() + { + return new GuiConfig(this.owningScreen, + new ConfigElement(Mekanism.configuration.getCategory("client")).getChildElements(), + this.owningScreen.modID, "client", false, false, + GuiConfig.getAbridgedConfigPath(Mekanism.configuration.toString())); + } + } } diff --git a/src/main/java/mekanism/client/sound/Sound.java b/src/main/java/mekanism/client/sound/Sound.java index 175433d9d..9cc7cb1d5 100644 --- a/src/main/java/mekanism/client/sound/Sound.java +++ b/src/main/java/mekanism/client/sound/Sound.java @@ -2,6 +2,7 @@ package mekanism.client.sound; import java.net.URL; +import mekanism.api.MekanismConfig.client; import mekanism.api.Pos3D; import mekanism.client.MekanismClient; import mekanism.common.Mekanism; @@ -174,7 +175,7 @@ public abstract class Sound float masterVolume = MekanismClient.audioHandler.getMasterVolume(); double distance = mc.thePlayer.getDistance(getLocation().xPos, getLocation().yPos, getLocation().zPos); volume = (float)Math.min(Math.max(masterVolume-((distance*.08F)*masterVolume), 0)*multiplier, 1); - volume *= Math.max(0, Math.min(1, MekanismClient.baseSoundVolume)); + volume *= Math.max(0, Math.min(1, client.baseSoundVolume)); if(SoundHandler.getSoundSystem() != null) { diff --git a/src/main/java/mekanism/client/sound/SoundHandler.java b/src/main/java/mekanism/client/sound/SoundHandler.java index 3fb0f53b6..ed6096c23 100644 --- a/src/main/java/mekanism/client/sound/SoundHandler.java +++ b/src/main/java/mekanism/client/sound/SoundHandler.java @@ -14,8 +14,8 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import mekanism.api.Coord4D; +import mekanism.api.MekanismConfig.client; import mekanism.client.HolidayManager; -import mekanism.client.MekanismClient; import mekanism.common.Mekanism; import mekanism.common.ObfuscatedNames; import mekanism.common.util.MekanismUtils; @@ -86,7 +86,7 @@ public class SoundHandler Mekanism.logger.info("Preloaded " + listings.size() + " object sounds."); - if(MekanismClient.holidays) + if(client.holidays) { listings = listFiles(corePath.replace("%20", " ").replace(".jar!", ".jar").replace("file:", ""), "assets/mekanism/sounds/holiday"); diff --git a/src/main/java/mekanism/common/block/BlockMachine.java b/src/main/java/mekanism/common/block/BlockMachine.java index a9a9bf974..68d7a96f7 100644 --- a/src/main/java/mekanism/common/block/BlockMachine.java +++ b/src/main/java/mekanism/common/block/BlockMachine.java @@ -4,7 +4,7 @@ import java.util.List; import java.util.Random; import mekanism.api.Coord4D; -import mekanism.api.MekanismConfig.general; +import mekanism.api.MekanismConfig.client; import mekanism.api.MekanismConfig.usage; import mekanism.api.energy.IEnergizedItem; import mekanism.client.ClientProxy; @@ -278,7 +278,7 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IPer { TileEntityBasicBlock tileEntity = (TileEntityBasicBlock)world.getTileEntity(x, y, z); - if(MekanismUtils.isActive(world, x, y, z) && ((IActiveState)tileEntity).renderUpdate() && general.machineEffects) + if(MekanismUtils.isActive(world, x, y, z) && ((IActiveState)tileEntity).renderUpdate() && client.machineEffects) { float xRandom = (float)x + 0.5F; float yRandom = (float)y + 0.0F + random.nextFloat() * 6.0F / 16.0F; @@ -321,7 +321,7 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IPer { TileEntity tileEntity = world.getTileEntity(x, y, z); - if(general.machineEffects && tileEntity instanceof IActiveState) + if(client.machineEffects && tileEntity instanceof IActiveState) { if(((IActiveState)tileEntity).getActive() && ((IActiveState)tileEntity).lightUpdate()) { diff --git a/src/main/java/mekanism/common/multipart/PartLogisticalTransporter.java b/src/main/java/mekanism/common/multipart/PartLogisticalTransporter.java index f93c66a6f..36af3ee9d 100644 --- a/src/main/java/mekanism/common/multipart/PartLogisticalTransporter.java +++ b/src/main/java/mekanism/common/multipart/PartLogisticalTransporter.java @@ -48,7 +48,7 @@ import cpw.mods.fml.relauncher.SideOnly; @Interface(iface = "buildcraft.api.transport.IPipeTile", modid = "BuildCraftAPI|transport") public class PartLogisticalTransporter extends PartTransmitter implements ILogisticalTransporter, IPipeTile { - public static TransmitterIcons transporterIcons = new TransmitterIcons(3, 2); + public static TransmitterIcons transporterIcons = new TransmitterIcons(3, 4); public static final int SPEED = 5; @@ -86,7 +86,7 @@ public class PartLogisticalTransporter extends PartTransmitter public static void registerIcons(IIconRegister register) { transporterIcons.registerCenterIcons(register, new String[] {"LogisticalTransporter", "RestrictiveTransporter", "DiversionTransporter"}); - transporterIcons.registerSideIcons(register, new String[] {"LogisticalTransporterSide", "RestrictiveTransporterSide"}); + transporterIcons.registerSideIcons(register, new String[] {"LogisticalTransporterVertical", "LogisticalTransporterHorizontal", "RestrictiveTransporterVertical", "RestrictiveTransporterVertical"}); } @Override @@ -124,6 +124,12 @@ public class PartLogisticalTransporter extends PartTransmitter return transporterIcons.getSideIcon(0); } + @Override + public IIcon getSideIconRotated() + { + return transporterIcons.getSideIcon(1); + } + @Override public boolean isValidAcceptor(TileEntity tile, ForgeDirection side) { diff --git a/src/main/java/mekanism/common/multipart/PartUniversalCable.java b/src/main/java/mekanism/common/multipart/PartUniversalCable.java index d679f48a8..545ba9d76 100644 --- a/src/main/java/mekanism/common/multipart/PartUniversalCable.java +++ b/src/main/java/mekanism/common/multipart/PartUniversalCable.java @@ -5,11 +5,11 @@ import ic2.api.energy.tile.IEnergySource; import java.util.List; import java.util.Set; +import mekanism.api.MekanismConfig.client; import mekanism.api.MekanismConfig.general; import mekanism.api.energy.IStrictEnergyAcceptor; import mekanism.api.transmitters.IGridTransmitter; import mekanism.api.transmitters.TransmissionType; -import mekanism.client.MekanismClient; import mekanism.client.render.RenderPartTransmitter; import mekanism.common.EnergyNetwork; import mekanism.common.Tier; @@ -226,7 +226,7 @@ public class PartUniversalCable extends PartTransmitter implement @SideOnly(Side.CLIENT) public void renderDynamic(Vector3 pos, float frame, int pass) { - if(pass == 0 && MekanismClient.fancyUniversalCableRender) + if(pass == 0 && client.fancyUniversalCableRender) { RenderPartTransmitter.getInstance().renderContents(this, pos); } diff --git a/src/main/java/mekanism/common/util/MekanismUtils.java b/src/main/java/mekanism/common/util/MekanismUtils.java index a615ddf29..c075a7557 100644 --- a/src/main/java/mekanism/common/util/MekanismUtils.java +++ b/src/main/java/mekanism/common/util/MekanismUtils.java @@ -16,6 +16,7 @@ import java.util.Map; import mekanism.api.Chunk3D; import mekanism.api.Coord4D; import mekanism.api.EnumColor; +import mekanism.api.MekanismConfig.client; import mekanism.api.MekanismConfig.general; import mekanism.api.gas.Gas; import mekanism.api.gas.GasStack; @@ -42,10 +43,8 @@ import mekanism.common.item.ItemBlockEnergyCube; import mekanism.common.item.ItemBlockGasTank; import mekanism.common.network.PacketElectricChest.ElectricChestMessage; import mekanism.common.network.PacketElectricChest.ElectricChestPacketType; -import mekanism.common.tank.DynamicTankCache; import mekanism.common.tile.TileEntityAdvancedBoundingBlock; import mekanism.common.tile.TileEntityBoundingBlock; -import mekanism.common.tile.TileEntityDynamicTank; import mekanism.common.tile.TileEntityElectricChest; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; @@ -697,7 +696,7 @@ public final class MekanismUtils world.func_147479_m(x, y, z); } - if(!(world.getTileEntity(x, y, z) instanceof IActiveState) || ((IActiveState)world.getTileEntity(x, y, z)).lightUpdate() && general.machineEffects) + if(!(world.getTileEntity(x, y, z) instanceof IActiveState) || ((IActiveState)world.getTileEntity(x, y, z)).lightUpdate() && client.machineEffects) { updateAllLightTypes(world, x, y, z); }