Merge branch '1.10.2' of https://github.com/squeek502/Squake into 1.12.2

# Conflicts:
#	java/squeek/quakemovement/ModQuakeMovement.java
This commit is contained in:
Ryan Liptak 2018-06-18 23:54:17 -07:00
commit 9d29ddaa1f
5 changed files with 73 additions and 10 deletions

View File

@ -1,12 +1,15 @@
package squeek.quakemovement; package squeek.quakemovement;
import java.io.File;
import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.common.config.Property; import net.minecraftforge.common.config.Property;
import net.minecraftforge.fml.client.event.ConfigChangedEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import java.io.File;
public class ModConfig public class ModConfig
{ {
private static final String CATEGORY_MOVEMENT = "movement"; public static final String CATEGORY_MOVEMENT = "movement";
public static float TRIMP_MULTIPLIER; public static float TRIMP_MULTIPLIER;
private static final String TRIMP_MULTIPLIER_NAME = "trimpMultiplier"; private static final String TRIMP_MULTIPLIER_NAME = "trimpMultiplier";
@ -65,14 +68,19 @@ public class ModConfig
private static final String ENABLED_NAME = "enabled"; private static final String ENABLED_NAME = "enabled";
private static final boolean ENABLED_DEFAULT = true; private static final boolean ENABLED_DEFAULT = true;
private static Configuration config; public static Configuration config;
public static void init(File file) public static void init(File file)
{ {
config = new Configuration(file); if (config == null)
{
load(); config = new Configuration(file);
load();
}
}
public static void load()
{
UNCAPPED_BUNNYHOP_ENABLED = config.get(CATEGORY_MOVEMENT, UNCAPPED_BUNNYHOP_ENABLED_NAME, UNCAPPED_BUNNYHOP_ENABLED_DEFAULT, "if enabled, the soft and hard caps will not be applied at all").getBoolean(UNCAPPED_BUNNYHOP_ENABLED_DEFAULT); UNCAPPED_BUNNYHOP_ENABLED = config.get(CATEGORY_MOVEMENT, UNCAPPED_BUNNYHOP_ENABLED_NAME, UNCAPPED_BUNNYHOP_ENABLED_DEFAULT, "if enabled, the soft and hard caps will not be applied at all").getBoolean(UNCAPPED_BUNNYHOP_ENABLED_DEFAULT);
AIR_ACCELERATE = config.get(CATEGORY_MOVEMENT, AIR_ACCELERATE_NAME, AIR_ACCELERATE_DEFAULT, "a higher value means you can turn more sharply in the air without losing speed").getDouble(AIR_ACCELERATE_DEFAULT); AIR_ACCELERATE = config.get(CATEGORY_MOVEMENT, AIR_ACCELERATE_NAME, AIR_ACCELERATE_DEFAULT, "a higher value means you can turn more sharply in the air without losing speed").getDouble(AIR_ACCELERATE_DEFAULT);
MAX_AIR_ACCEL_PER_TICK = config.get(CATEGORY_MOVEMENT, MAX_AIR_ACCEL_PER_TICK_NAME, MAX_AIR_ACCEL_PER_TICK_DEFAULT, "a higher value means faster air acceleration").getDouble(MAX_AIR_ACCEL_PER_TICK_DEFAULT); MAX_AIR_ACCEL_PER_TICK = config.get(CATEGORY_MOVEMENT, MAX_AIR_ACCEL_PER_TICK_NAME, MAX_AIR_ACCEL_PER_TICK_DEFAULT, "a higher value means faster air acceleration").getDouble(MAX_AIR_ACCEL_PER_TICK_DEFAULT);
@ -105,11 +113,18 @@ public class ModConfig
public static void save() public static void save()
{ {
config.save(); if (config.hasChanged())
{
config.save();
}
} }
public static void load() @SubscribeEvent
public void onConfigurationChangedEvent(ConfigChangedEvent.OnConfigChangedEvent event)
{ {
config.load(); if (event.getModID().equalsIgnoreCase(ModInfo.MODID))
{
load();
}
} }
} }

View File

@ -0,0 +1,13 @@
package squeek.quakemovement;
import net.minecraft.client.gui.GuiScreen;
import net.minecraftforge.common.config.ConfigElement;
import net.minecraftforge.fml.client.config.GuiConfig;
public class ModConfigGui extends GuiConfig
{
public ModConfigGui(GuiScreen parentScreen)
{
super(parentScreen, new ConfigElement(ModConfig.config.getCategory(ModConfig.CATEGORY_MOVEMENT)).getChildElements(), ModInfo.MODID, false, false, GuiConfig.getAbridgedConfigPath(ModConfig.config.toString()));
}
}

View File

@ -0,0 +1,33 @@
package squeek.quakemovement;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiScreen;
import net.minecraftforge.fml.client.IModGuiFactory;
import java.util.Set;
public class ModConfigGuiFactory implements IModGuiFactory
{
@Override
public void initialize(Minecraft minecraftInstance)
{
}
@Override
public Class<? extends GuiScreen> mainConfigGuiClass()
{
return ModConfigGui.class;
}
@Override
public Set<RuntimeOptionCategoryElement> runtimeGuiCategories()
{
return null;
}
@Override
public RuntimeOptionGuiHandler getHandlerFor(RuntimeOptionCategoryElement element)
{
return null;
}
}

View File

@ -4,4 +4,5 @@ public final class ModInfo
{ {
public static final String MODID = "squake"; public static final String MODID = "squake";
public static final String VERSION = "${version}"; public static final String VERSION = "${version}";
public static final String CONFIG_GUI_FACTORY_CLASS = "squeek.quakemovement.ModConfigGuiFactory";
} }

View File

@ -11,7 +11,7 @@ import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
@Mod(modid = ModInfo.MODID, version = ModInfo.VERSION, name="Squake", acceptedMinecraftVersions="[1.12.2]", dependencies = "after:squeedometer") @Mod(modid = ModInfo.MODID, version = ModInfo.VERSION, name="Squake", acceptedMinecraftVersions="[1.12.2]", dependencies = "after:squeedometer", guiFactory = ModInfo.CONFIG_GUI_FACTORY_CLASS)
public class ModQuakeMovement public class ModQuakeMovement
{ {
// The instance of your mod that Forge uses. // The instance of your mod that Forge uses.
@ -22,6 +22,7 @@ public class ModQuakeMovement
public void preInit(FMLPreInitializationEvent event) public void preInit(FMLPreInitializationEvent event)
{ {
ModConfig.init(event.getSuggestedConfigurationFile()); ModConfig.init(event.getSuggestedConfigurationFile());
MinecraftForge.EVENT_BUS.register(new ModConfig());
MinecraftForge.EVENT_BUS.register(this); MinecraftForge.EVENT_BUS.register(this);
if (event.getSide() == Side.CLIENT) if (event.getSide() == Side.CLIENT)
{ {