mirror of
https://github.com/Thorfusion/Mekanism-Community-Edition.git
synced 2026-11-08 19:04:46 +00:00
add ultimate config
This commit is contained in:
11 files changed
+211
-7
No files matched your search
@@ -199,6 +199,15 @@ public class MekanismConfig
|
||||
public static double armorSpawnRate;
|
||||
}
|
||||
|
||||
public static class ultimate
|
||||
{
|
||||
public static boolean factoryEnabled = true;
|
||||
public static boolean allowTierInstallerUpgrade = true;
|
||||
public static double factoryUsageMultiplier = 1D;
|
||||
public static int factoryEnergyStorageTicks = 400;
|
||||
public static boolean enableFactoryRecipes = true;
|
||||
}
|
||||
|
||||
public static class recipes
|
||||
{
|
||||
public static boolean enableOsmiumBlock = true;
|
||||
|
||||
@@ -12,6 +12,7 @@ import mekanism.api.Coord4D;
|
||||
import mekanism.api.EnumColor;
|
||||
import mekanism.api.IConfigCardAccess.ISpecialConfigData;
|
||||
import mekanism.api.MekanismConfig.general;
|
||||
import mekanism.api.MekanismConfig.ultimate;
|
||||
import mekanism.api.MekanismConfig.usage;
|
||||
import mekanism.api.Range4D;
|
||||
import mekanism.api.gas.Gas;
|
||||
@@ -175,6 +176,10 @@ public class TileEntityFactory extends TileEntityNoisyElectricBlock implements I
|
||||
int targetMetadata = 5 + upgradeTier.ordinal();
|
||||
|
||||
if (upgradeTier == BaseTier.ULTIMATE) {
|
||||
if (!ultimate.factoryEnabled || !ultimate.allowTierInstallerUpgrade) {
|
||||
return false;
|
||||
}
|
||||
|
||||
targetBlock = GameRegistry.findBlock("MekanismUltimate", "UltimateFactory");
|
||||
targetMetadata = 0;
|
||||
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
package mekanism.ultimate.client.gui;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import mekanism.common.util.LangUtils;
|
||||
import mekanism.ultimate.common.MekanismUltimate;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraftforge.common.config.ConfigElement;
|
||||
import cpw.mods.fml.client.config.DummyConfigElement.DummyCategoryElement;
|
||||
import cpw.mods.fml.client.config.GuiConfig;
|
||||
import cpw.mods.fml.client.config.GuiConfigEntries;
|
||||
import cpw.mods.fml.client.config.GuiConfigEntries.CategoryEntry;
|
||||
import cpw.mods.fml.client.config.IConfigElement;
|
||||
|
||||
public class GuiUltimateConfig extends GuiConfig
|
||||
{
|
||||
public GuiUltimateConfig(GuiScreen parent)
|
||||
{
|
||||
super(parent, getConfigElements(), MekanismUltimate.MODID, false, true, "Mekanism Community Edition: Ultimate");
|
||||
}
|
||||
|
||||
private static List<IConfigElement> getConfigElements()
|
||||
{
|
||||
List<IConfigElement> list = new ArrayList<IConfigElement>();
|
||||
list.add(new DummyCategoryElement(LangUtils.localize("mekanism.configgui.ctgy.ultimate.machines"), "mekanism.configgui.ctgy.ultimate.machines", MachinesEntry.class));
|
||||
list.add(new DummyCategoryElement(LangUtils.localize("mekanism.configgui.ctgy.ultimate.usage"), "mekanism.configgui.ctgy.ultimate.usage", UsageEntry.class));
|
||||
list.add(new DummyCategoryElement(LangUtils.localize("mekanism.configgui.ctgy.ultimate.recipes"), "mekanism.configgui.ctgy.ultimate.recipes", RecipesEntry.class));
|
||||
return list;
|
||||
}
|
||||
|
||||
private static GuiScreen buildChildScreen(GuiConfig owningScreen, IConfigElement configElement, String category)
|
||||
{
|
||||
return new GuiConfig(owningScreen,
|
||||
new ConfigElement(MekanismUltimate.configuration.getCategory(category)).getChildElements(),
|
||||
owningScreen.modID, category, false,
|
||||
configElement.requiresMcRestart() || owningScreen.allRequireMcRestart,
|
||||
GuiConfig.getAbridgedConfigPath(MekanismUltimate.configuration.toString()));
|
||||
}
|
||||
|
||||
public static class MachinesEntry extends CategoryEntry
|
||||
{
|
||||
public MachinesEntry(GuiConfig owningScreen, GuiConfigEntries owningEntryList, IConfigElement prop)
|
||||
{
|
||||
super(owningScreen, owningEntryList, prop);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected GuiScreen buildChildScreen()
|
||||
{
|
||||
return GuiUltimateConfig.buildChildScreen(owningScreen, configElement, "machines");
|
||||
}
|
||||
}
|
||||
|
||||
public static class UsageEntry extends CategoryEntry
|
||||
{
|
||||
public UsageEntry(GuiConfig owningScreen, GuiConfigEntries owningEntryList, IConfigElement prop)
|
||||
{
|
||||
super(owningScreen, owningEntryList, prop);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected GuiScreen buildChildScreen()
|
||||
{
|
||||
return GuiUltimateConfig.buildChildScreen(owningScreen, configElement, "usage");
|
||||
}
|
||||
}
|
||||
|
||||
public static class RecipesEntry extends CategoryEntry
|
||||
{
|
||||
public RecipesEntry(GuiConfig owningScreen, GuiConfigEntries owningEntryList, IConfigElement prop)
|
||||
{
|
||||
super(owningScreen, owningEntryList, prop);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected GuiScreen buildChildScreen()
|
||||
{
|
||||
return GuiUltimateConfig.buildChildScreen(owningScreen, configElement, "recipes");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package mekanism.ultimate.client.gui;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import cpw.mods.fml.client.IModGuiFactory;
|
||||
|
||||
public class UltimateGuiFactory implements IModGuiFactory
|
||||
{
|
||||
@Override
|
||||
public void initialize(Minecraft minecraftInstance)
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends GuiScreen> mainConfigGuiClass()
|
||||
{
|
||||
return GuiUltimateConfig.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<RuntimeOptionCategoryElement> runtimeGuiCategories()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RuntimeOptionGuiHandler getHandlerFor(RuntimeOptionCategoryElement element)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,12 @@
|
||||
package mekanism.ultimate.common;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
import mekanism.api.MekanismConfig;
|
||||
import mekanism.api.MekanismConfig.ultimate;
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.common.Tier.BaseTier;
|
||||
import mekanism.common.Tier.FactoryTier;
|
||||
@@ -14,6 +18,7 @@ import mekanism.common.util.MekanismUtils;
|
||||
import mekanism.ultimate.common.item.ItemBlockUltimateFactory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.crafting.CraftingManager;
|
||||
import net.minecraftforge.common.config.Configuration;
|
||||
import cpw.mods.fml.common.Mod;
|
||||
import cpw.mods.fml.common.Mod.EventHandler;
|
||||
import cpw.mods.fml.common.Mod.Instance;
|
||||
@@ -23,7 +28,7 @@ import cpw.mods.fml.common.event.FMLPreInitializationEvent;
|
||||
import cpw.mods.fml.common.network.NetworkRegistry;
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
|
||||
@Mod(modid = MekanismUltimate.MODID, name = "Mekanism Community Edition: Ultimate", version = "GRADLE_MODVERSION", dependencies = "required-after:Mekanism")
|
||||
@Mod(modid = MekanismUltimate.MODID, name = "Mekanism Community Edition: Ultimate", version = "GRADLE_MODVERSION", dependencies = "required-after:Mekanism", guiFactory = "mekanism.ultimate.client.gui.UltimateGuiFactory")
|
||||
public class MekanismUltimate implements IModule
|
||||
{
|
||||
public static final String MODID = "MekanismUltimate";
|
||||
@@ -36,9 +41,13 @@ public class MekanismUltimate implements IModule
|
||||
|
||||
public static Version versionNumber = new Version(GRADLE_VERSIONMOD);
|
||||
|
||||
public static Configuration configuration;
|
||||
|
||||
@EventHandler
|
||||
public void preInit(FMLPreInitializationEvent event)
|
||||
{
|
||||
configuration = new Configuration(new File(event.getModConfigurationDirectory(), "mekanism/MekanismUltimate.cfg"));
|
||||
proxy.loadConfiguration();
|
||||
GameRegistry.registerBlock(UltimateBlocks.UltimateFactory, ItemBlockUltimateFactory.class, "UltimateFactory");
|
||||
}
|
||||
|
||||
@@ -55,7 +64,7 @@ public class MekanismUltimate implements IModule
|
||||
|
||||
private void addRecipes()
|
||||
{
|
||||
if (!MekanismConfig.recipes.enableFactories)
|
||||
if (!MekanismConfig.recipes.enableFactories || !ultimate.factoryEnabled || !ultimate.enableFactoryRecipes)
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -89,11 +98,21 @@ public class MekanismUltimate implements IModule
|
||||
@Override
|
||||
public void writeConfig(ByteBuf dataStream) throws IOException
|
||||
{
|
||||
dataStream.writeBoolean(ultimate.factoryEnabled);
|
||||
dataStream.writeBoolean(ultimate.allowTierInstallerUpgrade);
|
||||
dataStream.writeDouble(ultimate.factoryUsageMultiplier);
|
||||
dataStream.writeInt(ultimate.factoryEnergyStorageTicks);
|
||||
dataStream.writeBoolean(ultimate.enableFactoryRecipes);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readConfig(ByteBuf dataStream) throws IOException
|
||||
{
|
||||
ultimate.factoryEnabled = dataStream.readBoolean();
|
||||
ultimate.allowTierInstallerUpgrade = dataStream.readBoolean();
|
||||
ultimate.factoryUsageMultiplier = dataStream.readDouble();
|
||||
ultimate.factoryEnergyStorageTicks = dataStream.readInt();
|
||||
ultimate.enableFactoryRecipes = dataStream.readBoolean();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package mekanism.ultimate.common;
|
||||
|
||||
import mekanism.api.MekanismConfig.ultimate;
|
||||
import mekanism.common.inventory.container.ContainerFactory;
|
||||
import mekanism.ultimate.common.tile.TileEntityUltimateFactory;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@@ -10,6 +11,25 @@ import cpw.mods.fml.common.registry.GameRegistry;
|
||||
|
||||
public class UltimateCommonProxy implements IGuiHandler
|
||||
{
|
||||
public void loadConfiguration()
|
||||
{
|
||||
ultimate.factoryEnabled = MekanismUltimate.configuration.get("machines", "UltimateFactoryEnabled", true,
|
||||
"Enable Ultimate Factories. Disabling this hides them from creative tabs and prevents crafting and tier-installer upgrades; existing placed factories remain usable.").getBoolean();
|
||||
ultimate.allowTierInstallerUpgrade = MekanismUltimate.configuration.get("machines", "AllowTierInstallerUpgrade", true,
|
||||
"Allow Ultimate Tier Installers to upgrade Elite Factories into Ultimate Factories.").getBoolean();
|
||||
ultimate.factoryUsageMultiplier = MekanismUltimate.configuration.get("usage", "UltimateFactoryUsageMultiplier", 1D,
|
||||
"Multiplier applied to Mekanism's FactoryUsage value for each process in an Ultimate Factory.", 0D, 1000D).getDouble();
|
||||
ultimate.factoryEnergyStorageTicks = MekanismUltimate.configuration.get("usage", "UltimateFactoryEnergyStorageTicks", 400,
|
||||
"Number of ticks of full nine-process base usage that an Ultimate Factory can store.", 1, Integer.MAX_VALUE).getInt();
|
||||
ultimate.enableFactoryRecipes = MekanismUltimate.configuration.get("recipes", "EnableUltimateFactoryRecipes", true,
|
||||
"Enable crafting recipes for all Ultimate Factory variants.").getBoolean();
|
||||
|
||||
if (MekanismUltimate.configuration.hasChanged())
|
||||
{
|
||||
MekanismUltimate.configuration.save();
|
||||
}
|
||||
}
|
||||
|
||||
public void registerTileEntities()
|
||||
{
|
||||
GameRegistry.registerTileEntity(TileEntityUltimateFactory.class, "MekanismUltimateUltimateFactory");
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package mekanism.ultimate.common;
|
||||
|
||||
import mekanism.api.MekanismConfig.ultimate;
|
||||
import mekanism.api.MekanismConfig.usage;
|
||||
import mekanism.common.Tier.FactoryTier;
|
||||
|
||||
public final class UltimateConfig
|
||||
{
|
||||
private UltimateConfig()
|
||||
{
|
||||
}
|
||||
|
||||
public static double getFactoryUsage()
|
||||
{
|
||||
return usage.factoryUsage * ultimate.factoryUsageMultiplier;
|
||||
}
|
||||
|
||||
public static double getFactoryMaxEnergy()
|
||||
{
|
||||
return getFactoryUsage() * FactoryTier.ULTIMATE.processes * ultimate.factoryEnergyStorageTicks;
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@ package mekanism.ultimate.common.block;
|
||||
import java.util.List;
|
||||
|
||||
import buildcraft.api.tools.IToolWrench;
|
||||
import mekanism.api.MekanismConfig.ultimate;
|
||||
import mekanism.client.render.MekanismRenderer;
|
||||
import mekanism.client.render.MekanismRenderer.DefIcon;
|
||||
import mekanism.common.Tier.BaseTier;
|
||||
@@ -92,6 +93,11 @@ public class BlockUltimateFactory extends BlockMachine
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void getSubBlocks(Item item, CreativeTabs tab, List list)
|
||||
{
|
||||
if (!ultimate.factoryEnabled)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
for (RecipeType type : RecipeType.values())
|
||||
{
|
||||
ItemStack stack = new ItemStack(item);
|
||||
|
||||
@@ -3,14 +3,13 @@ package mekanism.ultimate.common.item;
|
||||
import java.util.List;
|
||||
|
||||
import mekanism.api.EnumColor;
|
||||
import mekanism.api.MekanismConfig.usage;
|
||||
import mekanism.client.MekanismKeyHandler;
|
||||
import mekanism.common.Tier.BaseTier;
|
||||
import mekanism.common.Tier.FactoryTier;
|
||||
import mekanism.common.base.IFactory.RecipeType;
|
||||
import mekanism.common.item.ItemBlockMachine;
|
||||
import mekanism.common.util.LangUtils;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import mekanism.ultimate.common.UltimateConfig;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@@ -63,7 +62,7 @@ public class ItemBlockUltimateFactory extends ItemBlockMachine
|
||||
@Override
|
||||
public double getMaxEnergy(ItemStack stack)
|
||||
{
|
||||
return MekanismUtils.getMaxEnergy(stack, usage.factoryUsage * FactoryTier.ULTIMATE.processes * 400);
|
||||
return MekanismUtils.getMaxEnergy(stack, UltimateConfig.getFactoryMaxEnergy());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package mekanism.ultimate.common.tile;
|
||||
|
||||
import mekanism.api.EnumColor;
|
||||
import mekanism.api.MekanismConfig.usage;
|
||||
import mekanism.api.transmitters.TransmissionType;
|
||||
import mekanism.common.SideData;
|
||||
import mekanism.common.Tier.FactoryTier;
|
||||
@@ -11,12 +10,16 @@ import mekanism.common.tile.component.TileComponentConfig;
|
||||
import mekanism.common.tile.component.TileComponentEjector;
|
||||
import mekanism.common.tile.component.TileComponentUpgrade;
|
||||
import mekanism.common.util.InventoryUtils;
|
||||
import mekanism.ultimate.common.UltimateConfig;
|
||||
|
||||
public class TileEntityUltimateFactory extends TileEntityFactory
|
||||
{
|
||||
public TileEntityUltimateFactory()
|
||||
{
|
||||
super(FactoryTier.ULTIMATE, "Factory", usage.factoryUsage * FactoryTier.ULTIMATE.processes * 400);
|
||||
super(FactoryTier.ULTIMATE, "Factory", UltimateConfig.getFactoryMaxEnergy());
|
||||
|
||||
BASE_ENERGY_PER_TICK = UltimateConfig.getFactoryUsage();
|
||||
energyPerTick = BASE_ENERGY_PER_TICK;
|
||||
|
||||
int[] inputSlots = new int[FactoryTier.ULTIMATE.processes];
|
||||
int[] outputSlots = new int[FactoryTier.ULTIMATE.processes];
|
||||
|
||||
@@ -1129,10 +1129,16 @@ item.SteelSword.name=Steel Sword
|
||||
mekanism.configgui.ctgy.tools.general=General
|
||||
mekanism.configgui.ctgy.tools.armor=Armor Balance
|
||||
mekanism.configgui.ctgy.tools.tools=Tools Balance
|
||||
mekanism.configgui.ctgy.ultimate.machines=Machines
|
||||
mekanism.configgui.ctgy.ultimate.usage=Energy Usage
|
||||
mekanism.configgui.ctgy.ultimate.recipes=Recipes
|
||||
|
||||
//Config Tooltips
|
||||
mekanism.configgui.ctgy.tools.general.tooltip=Settings regarding MekanismTools' general configuration
|
||||
mekanism.configgui.ctgy.tools.armor.tooltip=Settings regarding the protection values and balance of MekanismTools armor sets
|
||||
mekanism.configgui.ctgy.tools.tools.tooltip=Settings regarding the efficiency values and balance of MekanismTools tool sets
|
||||
mekanism.configgui.ctgy.ultimate.machines.tooltip=Settings for enabling Ultimate Factories and tier-installer upgrades
|
||||
mekanism.configgui.ctgy.ultimate.usage.tooltip=Settings for Ultimate Factory energy usage and storage
|
||||
mekanism.configgui.ctgy.ultimate.recipes.tooltip=Settings for Ultimate Factory crafting recipes
|
||||
|
||||
mekanism.gui.noWind=No wind
|
||||
Reference in new issue
Block a user