Skip to content

Commit 9d29dda

Browse files
committed
Merge branch '1.10.2' of https://github.com/squeek502/Squake into 1.12.2
# Conflicts: # java/squeek/quakemovement/ModQuakeMovement.java
2 parents 8915b9e + aa92961 commit 9d29dda

File tree

5 files changed

+73
-10
lines changed

5 files changed

+73
-10
lines changed

java/squeek/quakemovement/ModConfig.java

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
package squeek.quakemovement;
22

3-
import java.io.File;
43
import net.minecraftforge.common.config.Configuration;
54
import net.minecraftforge.common.config.Property;
5+
import net.minecraftforge.fml.client.event.ConfigChangedEvent;
6+
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
7+
8+
import java.io.File;
69

710
public class ModConfig
811
{
9-
private static final String CATEGORY_MOVEMENT = "movement";
12+
public static final String CATEGORY_MOVEMENT = "movement";
1013

1114
public static float TRIMP_MULTIPLIER;
1215
private static final String TRIMP_MULTIPLIER_NAME = "trimpMultiplier";
@@ -65,14 +68,19 @@ public class ModConfig
6568
private static final String ENABLED_NAME = "enabled";
6669
private static final boolean ENABLED_DEFAULT = true;
6770

68-
private static Configuration config;
71+
public static Configuration config;
6972

7073
public static void init(File file)
7174
{
72-
config = new Configuration(file);
73-
74-
load();
75+
if (config == null)
76+
{
77+
config = new Configuration(file);
78+
load();
79+
}
80+
}
7581

82+
public static void load()
83+
{
7684
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);
7785
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);
7886
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 static void setEnabled(boolean enabled)
105113

106114
public static void save()
107115
{
108-
config.save();
116+
if (config.hasChanged())
117+
{
118+
config.save();
119+
}
109120
}
110121

111-
public static void load()
122+
@SubscribeEvent
123+
public void onConfigurationChangedEvent(ConfigChangedEvent.OnConfigChangedEvent event)
112124
{
113-
config.load();
125+
if (event.getModID().equalsIgnoreCase(ModInfo.MODID))
126+
{
127+
load();
128+
}
114129
}
115130
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package squeek.quakemovement;
2+
3+
import net.minecraft.client.gui.GuiScreen;
4+
import net.minecraftforge.common.config.ConfigElement;
5+
import net.minecraftforge.fml.client.config.GuiConfig;
6+
7+
public class ModConfigGui extends GuiConfig
8+
{
9+
public ModConfigGui(GuiScreen parentScreen)
10+
{
11+
super(parentScreen, new ConfigElement(ModConfig.config.getCategory(ModConfig.CATEGORY_MOVEMENT)).getChildElements(), ModInfo.MODID, false, false, GuiConfig.getAbridgedConfigPath(ModConfig.config.toString()));
12+
}
13+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package squeek.quakemovement;
2+
3+
import net.minecraft.client.Minecraft;
4+
import net.minecraft.client.gui.GuiScreen;
5+
import net.minecraftforge.fml.client.IModGuiFactory;
6+
7+
import java.util.Set;
8+
9+
public class ModConfigGuiFactory implements IModGuiFactory
10+
{
11+
@Override
12+
public void initialize(Minecraft minecraftInstance)
13+
{
14+
}
15+
16+
@Override
17+
public Class<? extends GuiScreen> mainConfigGuiClass()
18+
{
19+
return ModConfigGui.class;
20+
}
21+
22+
@Override
23+
public Set<RuntimeOptionCategoryElement> runtimeGuiCategories()
24+
{
25+
return null;
26+
}
27+
28+
@Override
29+
public RuntimeOptionGuiHandler getHandlerFor(RuntimeOptionCategoryElement element)
30+
{
31+
return null;
32+
}
33+
}

java/squeek/quakemovement/ModInfo.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@ public final class ModInfo
44
{
55
public static final String MODID = "squake";
66
public static final String VERSION = "${version}";
7+
public static final String CONFIG_GUI_FACTORY_CLASS = "squeek.quakemovement.ModConfigGuiFactory";
78
}

java/squeek/quakemovement/ModQuakeMovement.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
1212
import net.minecraftforge.fml.relauncher.Side;
1313

14-
@Mod(modid = ModInfo.MODID, version = ModInfo.VERSION, name="Squake", acceptedMinecraftVersions="[1.12.2]", dependencies = "after:squeedometer")
14+
@Mod(modid = ModInfo.MODID, version = ModInfo.VERSION, name="Squake", acceptedMinecraftVersions="[1.12.2]", dependencies = "after:squeedometer", guiFactory = ModInfo.CONFIG_GUI_FACTORY_CLASS)
1515
public class ModQuakeMovement
1616
{
1717
// The instance of your mod that Forge uses.
@@ -22,6 +22,7 @@ public class ModQuakeMovement
2222
public void preInit(FMLPreInitializationEvent event)
2323
{
2424
ModConfig.init(event.getSuggestedConfigurationFile());
25+
MinecraftForge.EVENT_BUS.register(new ModConfig());
2526
MinecraftForge.EVENT_BUS.register(this);
2627
if (event.getSide() == Side.CLIENT)
2728
{

0 commit comments

Comments
 (0)