diff --git a/build.gradle b/build.gradle index a446834..f77423e 100644 --- a/build.gradle +++ b/build.gradle @@ -41,10 +41,13 @@ dependencies { modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" modImplementation("com.simibubi.create:create-fabric-${minecraft_version}:${create_version}") + modImplementation("com.terraformersmc:modmenu:${modmenu_version}") + + modApi("me.shedaniel.cloth:cloth-config-fabric:${cloth_config_version}") { + exclude(group: "net.fabricmc.fabric-api") + } modLocalRuntime("maven.modrinth:lazydfu:${lazydfu_version}") - modLocalRuntime("com.terraformersmc:modmenu:${modmenu_version}") - modLocalRuntime("dev.emi:emi-fabric:${emi_version}") } diff --git a/gradle.properties b/gradle.properties index b46fd1f..c24587f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -13,7 +13,8 @@ archives_base_name=pissnshit # check this on https://modmuss50.me/fabric.html fabric_version=0.92.2+1.20.1 -create_version = 0.5.1-f-build.1417+mc1.20.1 -modmenu_version = 7.2.2 -lazydfu_version = 0.1.3 -emi_version = 1.1.10+1.20.1 \ No newline at end of file +create_version = 0.5.1-f-build.1417+mc1.20.1 +modmenu_version = 7.2.2 +lazydfu_version = 0.1.3 +emi_version = 1.1.10+1.20.1 +cloth_config_version = 11.1.118 \ No newline at end of file diff --git a/src/main/java/me/theclashfruit/pissnshit/PissAndShit.java b/src/main/java/me/theclashfruit/pissnshit/PissAndShit.java index 15d28a9..389a525 100644 --- a/src/main/java/me/theclashfruit/pissnshit/PissAndShit.java +++ b/src/main/java/me/theclashfruit/pissnshit/PissAndShit.java @@ -1,6 +1,9 @@ package me.theclashfruit.pissnshit; import com.simibubi.create.Create; +import me.shedaniel.autoconfig.AutoConfig; +import me.shedaniel.autoconfig.serializer.Toml4jConfigSerializer; +import me.theclashfruit.pissnshit.config.MainConfig; import me.theclashfruit.pissnshit.registry.Blocks; import me.theclashfruit.pissnshit.registry.Fluids; import me.theclashfruit.pissnshit.registry.Items; @@ -9,6 +12,7 @@ import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.gamerule.v1.GameRuleFactory; import net.fabricmc.fabric.api.gamerule.v1.GameRuleRegistry; import net.fabricmc.fabric.api.loot.v2.LootTableEvents; +import net.minecraft.data.Main; import net.minecraft.loot.LootPool; import net.minecraft.loot.condition.RandomChanceLootCondition; import net.minecraft.loot.entry.ItemEntry; @@ -35,6 +39,8 @@ public class PissAndShit implements ModInitializer { ItemGroups.init(); + AutoConfig.register(MainConfig.class, Toml4jConfigSerializer::new); + Identifier jungleTemple = new Identifier("minecraft", "chests/jungle_temple"); Identifier desertPyramid = new Identifier("minecraft", "chests/desert_pyramid"); diff --git a/src/main/java/me/theclashfruit/pissnshit/config/MainConfig.java b/src/main/java/me/theclashfruit/pissnshit/config/MainConfig.java new file mode 100644 index 0000000..44771e2 --- /dev/null +++ b/src/main/java/me/theclashfruit/pissnshit/config/MainConfig.java @@ -0,0 +1,31 @@ +package me.theclashfruit.pissnshit.config; + +import me.shedaniel.autoconfig.ConfigData; +import me.shedaniel.autoconfig.annotation.Config; +import me.shedaniel.autoconfig.annotation.ConfigEntry; + +@Config(name = "pissnshit") +public class MainConfig implements ConfigData { + @ConfigEntry.Gui.Excluded + int configVersion = 1; + + @ConfigEntry.Gui.CollapsibleObject + ShittingMechanics shittingMechanics = new ShittingMechanics(); + + @ConfigEntry.Gui.CollapsibleObject + PissingMechanics pissingMechanics = new PissingMechanics(); + + static class ShittingMechanics { + boolean isMandatory = true; + + int maxIntervalTicks = 72000; + int minIntervalTicks = 12000; + } + + static class PissingMechanics { + boolean isMandatory = true; + + int maxIntervalTicks = 24000; + int minIntervalTicks = 3000; + } +} diff --git a/src/main/java/me/theclashfruit/pissnshit/util/ModMenu.java b/src/main/java/me/theclashfruit/pissnshit/util/ModMenu.java new file mode 100644 index 0000000..822236a --- /dev/null +++ b/src/main/java/me/theclashfruit/pissnshit/util/ModMenu.java @@ -0,0 +1,16 @@ +package me.theclashfruit.pissnshit.util; + +import com.terraformersmc.modmenu.api.ConfigScreenFactory; +import com.terraformersmc.modmenu.api.ModMenuApi; +import me.shedaniel.autoconfig.AutoConfig; +import me.theclashfruit.pissnshit.config.MainConfig; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +@Environment(EnvType.CLIENT) +public class ModMenu implements ModMenuApi { + @Override + public ConfigScreenFactory getModConfigScreenFactory() { + return parent -> AutoConfig.getConfigScreen(MainConfig.class, parent).get(); + } +} diff --git a/src/main/resources/assets/pissnshit/lang/en_us.json b/src/main/resources/assets/pissnshit/lang/en_us.json index 63a024f..07ba4c4 100644 --- a/src/main/resources/assets/pissnshit/lang/en_us.json +++ b/src/main/resources/assets/pissnshit/lang/en_us.json @@ -14,5 +14,18 @@ "block.pissnshit.mechanical_sanctifier": "Mechanical Sanctifier", "gamerule.pissSourceConversion": "Piss converts to source", - "itemGroup.pissnshit.creative_tab": "Create: Piss & Shit" + "itemGroup.pissnshit.creative_tab": "Create: Piss & Shit", + + "text.autoconfig.pissnshit.title": "Create: Piss & Shit Configuration", + + "text.autoconfig.pissnshit.option.shittingMechanics": "Shitting Mechanics", + "text.autoconfig.pissnshit.option.pissingMechanics": "Pissing Mechanics", + + "text.autoconfig.pissnshit.option.shittingMechanics.isMandatory": "Enable Mandatory Shitting", + "text.autoconfig.pissnshit.option.shittingMechanics.maxIntervalTicks": "Max Interval (Ticks)", + "text.autoconfig.pissnshit.option.shittingMechanics.minIntervalTicks": "Min Interval (Ticks)", + + "text.autoconfig.pissnshit.option.pissingMechanics.isMandatory": "Enable Mandatory Pissing", + "text.autoconfig.pissnshit.option.pissingMechanics.maxIntervalTicks": "Max Interval (Ticks)", + "text.autoconfig.pissnshit.option.pissingMechanics.minIntervalTicks": "Min Interval (Ticks)" } \ No newline at end of file diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 832361d..feb415d 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -23,6 +23,9 @@ ], "main": [ "me.theclashfruit.pissnshit.PissAndShit" + ], + "modmenu": [ + "me.theclashfruit.pissnshit.util.ModMenu" ] }, "mixins": [