Skip to content

Commit

Permalink
feat: add disclaimer screen
Browse files Browse the repository at this point in the history
  • Loading branch information
TheClashFruit committed Aug 23, 2024
1 parent 3008f12 commit 7a1f6fa
Show file tree
Hide file tree
Showing 6 changed files with 78 additions and 8 deletions.
5 changes: 4 additions & 1 deletion src/main/java/me/theclashfruit/pissnshit/PissAndShit.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.simibubi.create.Create;
import me.shedaniel.autoconfig.AutoConfig;
import me.shedaniel.autoconfig.ConfigHolder;
import me.shedaniel.autoconfig.serializer.Toml4jConfigSerializer;
import me.theclashfruit.pissnshit.config.MainConfig;
import me.theclashfruit.pissnshit.network.PissingPacket;
Expand All @@ -27,6 +28,7 @@ public class PissAndShit implements ModInitializer {
public static final GameRules.Key<GameRules.BooleanRule> PISS_SOURCE_CONVERSION = GameRuleRegistry.register("pissSourceConversion", GameRules.Category.UPDATES, GameRuleFactory.createBooleanRule(false));

public static MainConfig CONFIG;
public static ConfigHolder<MainConfig> CONFIG_HOLDER;

@Override
public void onInitialize() {
Expand All @@ -43,7 +45,8 @@ public void onInitialize() {

AutoConfig.register(MainConfig.class, Toml4jConfigSerializer::new);

CONFIG = AutoConfig.getConfigHolder(MainConfig.class).getConfig();
CONFIG_HOLDER = AutoConfig.getConfigHolder(MainConfig.class);
CONFIG = CONFIG_HOLDER.getConfig();

Identifier jungleTemple = new Identifier("minecraft", "chests/jungle_temple");
Identifier desertPyramid = new Identifier("minecraft", "chests/desert_pyramid");
Expand Down
Original file line number Diff line number Diff line change
@@ -1,29 +1,28 @@
package me.theclashfruit.pissnshit.client;

import me.theclashfruit.pissnshit.client.gui.PissAndShitHudOverlay;
import me.theclashfruit.pissnshit.client.gui.hud.PissAndShitHudOverlay;
import me.theclashfruit.pissnshit.network.PissSyncPacket;
import me.theclashfruit.pissnshit.network.PissingPacket;
import me.theclashfruit.pissnshit.network.ShitSyncPacket;
import me.theclashfruit.pissnshit.registry.Fluids;
import me.theclashfruit.pissnshit.util.PissManager;
import me.theclashfruit.pissnshit.util.PlayerEntityUtil;
import me.theclashfruit.pissnshit.client.gui.screen.DisclaimerScreen;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandlerRegistry;
import net.fabricmc.fabric.api.client.render.fluid.v1.SimpleFluidRenderHandler;
import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.option.KeyBinding;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.client.util.InputUtil;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
import org.lwjgl.glfw.GLFW;

import static me.theclashfruit.pissnshit.PissAndShit.CONFIG;

public class PissAndShitClient implements ClientModInitializer {
private static KeyBinding keyBinding;

Expand All @@ -46,6 +45,11 @@ public void onInitializeClient() {
}
});

ClientLifecycleEvents.CLIENT_STARTED.register(c -> {
if (!CONFIG.hasShownDisclaimer)
c.setScreen(new DisclaimerScreen());
});

// Register Packets
PissSyncPacket.register();
ShitSyncPacket.register();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package me.theclashfruit.pissnshit.client.gui;
package me.theclashfruit.pissnshit.client.gui.hud;

import com.mojang.blaze3d.systems.RenderSystem;
import me.theclashfruit.pissnshit.util.PlayerEntityUtil;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package me.theclashfruit.pissnshit.client.gui.screen;

import me.shedaniel.autoconfig.AutoConfig;
import me.theclashfruit.pissnshit.config.MainConfig;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.font.MultilineText;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.text.Text;

import static me.theclashfruit.pissnshit.PissAndShit.CONFIG;
import static me.theclashfruit.pissnshit.PissAndShit.CONFIG_HOLDER;

@Environment(EnvType.CLIENT)
public class DisclaimerScreen extends Screen {
public DisclaimerScreen() {
super(Text.translatable("screen.pissnshit.disclaimer.title"));
}

@Override
protected void init() {
ButtonWidget doneButton = ButtonWidget.builder(Text.translatable("gui.done"), button -> close())
.dimensions(width / 2 - 155, height - 40, 150, 20)
.build();

ButtonWidget quitButton = ButtonWidget
.builder(Text.translatable("menu.quit"), button -> client.scheduleStop())
.dimensions(width / 2 + 5, height - 40, 150, 20)
.build();

addDrawableChild(doneButton);
addDrawableChild(quitButton);
}

@Override
public void render(DrawContext context, int mouseX, int mouseY, float delta) {
this.renderBackground(context);

context.drawCenteredTextWithShadow(textRenderer, Text.translatable("screen.pissnshit.disclaimer.title"), width / 2, 20, 0xff5555);

MultilineText
.create(textRenderer, Text.translatable("screen.pissnshit.disclaimer.message"), width - 20)
.drawCenterWithShadow(context, width / 2, ((height / 2) - (2 * 16)), 16, 0xffffff);

super.render(context, mouseX, mouseY, delta);
}

@Override
public void close() {
CONFIG.hasShownDisclaimer = true;
CONFIG_HOLDER.save();

super.close();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ public class MainConfig implements ConfigData {
@ConfigEntry.Gui.Excluded
public int configVersion = 1;

@ConfigEntry.Gui.Excluded
public boolean hasShownDisclaimer = false;

@ConfigEntry.Gui.CollapsibleObject
public ShittingMechanics shittingMechanics = new ShittingMechanics();

Expand Down
3 changes: 3 additions & 0 deletions src/main/resources/assets/pissnshit/lang/en_us.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,9 @@
"gamerule.pissSourceConversion": "Piss converts to source",
"itemGroup.pissnshit.creative_tab": "Create: Piss & Shit",

"screen.pissnshit.disclaimer.title": "Disclaimer",
"screen.pissnshit.disclaimer.message": "Thank you for installing §6Create: Piss & Shit§r.\n\nBefore you continue we'd like to warn you that this mod might contain offensive content for some, you're free to continue or exit Minecraft.",

"text.autoconfig.pissnshit.title": "Create: Piss & Shit Configuration",

"text.autoconfig.pissnshit.option.shittingMechanics": "Shitting Mechanics",
Expand Down

0 comments on commit 7a1f6fa

Please sign in to comment.