From bb5d01bfe7a17369890f85a3a00477a722bd6834 Mon Sep 17 00:00:00 2001 From: Rubyboat Date: Wed, 24 Aug 2022 22:22:11 -0500 Subject: [PATCH] Added button support and presets --- gradle.properties | 8 +- .../builders/ButtonBuilder.java | 31 ++++ .../configEntryBuilderExtension.java | 140 ++++++++++++++++++ .../entries/ButtonEntry.java | 126 ++++++++++++++++ .../java/rubyboat/ghost/config/Config.java | 130 +++++++++------- .../java/rubyboat/ghost/mixin/BiomeMixin.java | 3 - .../java/rubyboat/ghost/mixin/BlockMixin.java | 10 -- .../rubyboat/ghost/mixin/CameraMixin.java | 9 +- .../ghost/mixin/ClientPlayerEntityMixin.java | 7 - .../ghost/mixin/ClientWorldMixin.java | 8 - .../mixin/ClientWorldPropertiesMixin.java | 2 - .../rubyboat/ghost/mixin/DebugHudMixin.java | 27 ++-- .../ghost/mixin/EndPortalRendererMixin.java | 18 --- .../rubyboat/ghost/mixin/InGameHudMixin.java | 42 ------ .../ghost/mixin/PigEntityModelMixin.java | 3 - .../ghost/mixin/PlayerRenderMixin.java | 4 - src/main/resources/assets/ghost/icon.png | Bin 96089 -> 0 bytes .../resources/assets/ghost/lang/en_us.json | 13 +- src/main/resources/fabric.mod.json | 2 +- src/main/resources/ghost.mixins.json | 2 - 20 files changed, 403 insertions(+), 182 deletions(-) create mode 100644 src/main/java/rubyboat/clothconfigextensions/builders/ButtonBuilder.java create mode 100644 src/main/java/rubyboat/clothconfigextensions/configEntryBuilderExtension.java create mode 100644 src/main/java/rubyboat/clothconfigextensions/entries/ButtonEntry.java delete mode 100644 src/main/java/rubyboat/ghost/mixin/EndPortalRendererMixin.java delete mode 100644 src/main/java/rubyboat/ghost/mixin/InGameHudMixin.java diff --git a/gradle.properties b/gradle.properties index d8e2f8c..05925e1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,14 +2,14 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://modmuss50.me/fabric.html -minecraft_version=1.19 -yarn_mappings=1.19+build.4 +minecraft_version=1.19.1 +yarn_mappings=1.19.1+build.5 loader_version=0.14.8 # Mod Properties -mod_version=1.19-1.4.0 +mod_version=1.19.1-1.5.0 maven_group=rubyboat archives_base_name=ghost # Dependencies # check this on https://modmuss50.me/fabric.html -fabric_version=0.56.0+1.19 +fabric_version=0.58.5+1.19.1 clothconfig_version=7.0.72 \ No newline at end of file diff --git a/src/main/java/rubyboat/clothconfigextensions/builders/ButtonBuilder.java b/src/main/java/rubyboat/clothconfigextensions/builders/ButtonBuilder.java new file mode 100644 index 0000000..99b38b6 --- /dev/null +++ b/src/main/java/rubyboat/clothconfigextensions/builders/ButtonBuilder.java @@ -0,0 +1,31 @@ +package rubyboat.clothconfigextensions.builders; + +import net.minecraft.client.gui.widget.ButtonWidget; +import net.minecraft.text.Text; +import rubyboat.clothconfigextensions.entries.ButtonEntry; + +public class ButtonBuilder { + Text value; + Text id; + ButtonWidget.PressAction onPress; + int xbuffer = 0; + + public ButtonBuilder(Text component, Text value) { + this.id = component; + this.value = value; + } + + public ButtonBuilder setOnPress(ButtonWidget.PressAction onPress) { + this.onPress = onPress; + return this; + } + + public ButtonBuilder setWidthBuffer(int xbuffer) { + this.xbuffer = xbuffer; + return this; + } + + public ButtonEntry build() { + return new ButtonEntry(id, value, onPress, xbuffer); + } +} \ No newline at end of file diff --git a/src/main/java/rubyboat/clothconfigextensions/configEntryBuilderExtension.java b/src/main/java/rubyboat/clothconfigextensions/configEntryBuilderExtension.java new file mode 100644 index 0000000..e8cbf44 --- /dev/null +++ b/src/main/java/rubyboat/clothconfigextensions/configEntryBuilderExtension.java @@ -0,0 +1,140 @@ +package rubyboat.clothconfigextensions; + +import me.shedaniel.clothconfig2.api.AbstractConfigListEntry; +import me.shedaniel.clothconfig2.api.ConfigEntryBuilder; +import me.shedaniel.clothconfig2.api.ModifierKeyCode; +import me.shedaniel.clothconfig2.gui.entries.DropdownBoxEntry; +import me.shedaniel.clothconfig2.impl.ConfigEntryBuilderImpl; +import me.shedaniel.clothconfig2.impl.builders.*; +import net.minecraft.text.Text; +import rubyboat.clothconfigextensions.builders.ButtonBuilder; + +import java.util.List; +import java.util.UUID; + +public class configEntryBuilderExtension implements ConfigEntryBuilder { + + @Override + public Text getResetButtonKey() { + return null; + } + + @Override + public ConfigEntryBuilder setResetButtonKey(Text text) { + return null; + } + + @Override + public IntListBuilder startIntList(Text text, List list) { + return null; + } + + @Override + public LongListBuilder startLongList(Text text, List list) { + return null; + } + + @Override + public FloatListBuilder startFloatList(Text text, List list) { + return null; + } + + @Override + public DoubleListBuilder startDoubleList(Text text, List list) { + return null; + } + + @Override + public StringListBuilder startStrList(Text text, List list) { + return null; + } + + @Override + public SubCategoryBuilder startSubCategory(Text text) { + return null; + } + + @Override + public SubCategoryBuilder startSubCategory(Text text, List list) { + return null; + } + + @Override + public BooleanToggleBuilder startBooleanToggle(Text text, boolean b) { + return null; + } + + @Override + public StringFieldBuilder startStrField(Text text, String s) { + return null; + } + + @Override + public ColorFieldBuilder startColorField(Text text, int i) { + return null; + } + + @Override + public TextFieldBuilder startTextField(Text text, String s) { + return null; + } + + @Override + public TextDescriptionBuilder startTextDescription(Text text) { + return null; + } + + @Override + public > EnumSelectorBuilder startEnumSelector(Text text, Class aClass, T t) { + return null; + } + + @Override + public SelectorBuilder startSelector(Text text, T[] ts, T t) { + return null; + } + + public ButtonBuilder startButtonBuilder(Text value) { + return new ButtonBuilder(Text.of(UUID.randomUUID().toString()), value); + } + + @Override + public IntFieldBuilder startIntField(Text text, int i) { + return null; + } + + @Override + public LongFieldBuilder startLongField(Text text, long l) { + return null; + } + + @Override + public FloatFieldBuilder startFloatField(Text text, float v) { + return null; + } + + @Override + public DoubleFieldBuilder startDoubleField(Text text, double v) { + return null; + } + + @Override + public IntSliderBuilder startIntSlider(Text text, int i, int i1, int i2) { + return null; + } + + @Override + public LongSliderBuilder startLongSlider(Text text, long l, long l1, long l2) { + return null; + } + + @Override + public KeyCodeBuilder startModifierKeyCodeField(Text text, ModifierKeyCode modifierKeyCode) { + return null; + } + + @Override + public DropdownMenuBuilder startDropdownMenu(Text text, DropdownBoxEntry.SelectionTopCellElement selectionTopCellElement, DropdownBoxEntry.SelectionCellCreator selectionCellCreator) { + return null; + } +} diff --git a/src/main/java/rubyboat/clothconfigextensions/entries/ButtonEntry.java b/src/main/java/rubyboat/clothconfigextensions/entries/ButtonEntry.java new file mode 100644 index 0000000..c74ddf3 --- /dev/null +++ b/src/main/java/rubyboat/clothconfigextensions/entries/ButtonEntry.java @@ -0,0 +1,126 @@ +package rubyboat.clothconfigextensions.entries; + +import com.google.common.collect.Lists; +import me.shedaniel.clothconfig2.gui.AbstractConfigScreen; +import me.shedaniel.clothconfig2.gui.entries.TooltipListEntry; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.font.TextRenderer; +import net.minecraft.client.gui.Element; +import net.minecraft.client.gui.Selectable; +import net.minecraft.client.gui.widget.ButtonWidget; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.text.OrderedText; +import net.minecraft.text.Style; +import net.minecraft.text.Text; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.Nullable; + +import java.util.Collections; +import java.util.List; +import java.util.Optional; +import java.util.function.Supplier; + +@Environment(EnvType.CLIENT) +public class ButtonEntry extends TooltipListEntry { + public static final int LINE_HEIGHT = 12; + private final TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer; + Text buttonInnerText; + private int savedWidth = -1; + private int savedX = -1; + private int savedY = -1; + + public int xbuffer; + public int ybuffer; + + private final List widgets; + private ButtonWidget button; + private List wrappedLines; + @ApiStatus.Internal + @Deprecated + public ButtonEntry(Text fieldName, Text text, ButtonWidget.PressAction onPress, int xbuffer) { + this(fieldName, text, null, onPress, xbuffer); + } + + @ApiStatus.Internal + @Deprecated + public ButtonEntry(Text fieldName, Text text, Supplier> tooltipSupplier, ButtonWidget.PressAction onPress, int xbuffer) { + super(fieldName, tooltipSupplier); + this.buttonInnerText = text; + this.wrappedLines = Collections.emptyList(); + this.button = new ButtonWidget(0, 0, MinecraftClient.getInstance().textRenderer.getWidth(text) + 6 + xbuffer, 20, text, onPress); + widgets = Lists.newArrayList(button); + } + + @Override + public void render(MatrixStack matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean isHovered, float delta) { + super.render(matrices, index, y, x, entryWidth, entryHeight, mouseX, mouseY, isHovered, delta); + if (this.savedWidth != entryWidth || this.savedX != x || this.savedY != y) { + this.wrappedLines = this.textRenderer.wrapLines(this.buttonInnerText, entryWidth); + this.savedWidth = entryWidth; + this.savedX = x; + this.savedY = y; + } + button.x = getConfigScreen().width / 2 - button.getWidth() / 2; + button.y = y; + button.render(matrices, mouseX, mouseY, delta); + + + Style style = this.getTextAt(mouseX, mouseY); + AbstractConfigScreen configScreen = this.getConfigScreen(); + if (style != null && configScreen != null) { + configScreen.renderTextHoverEffect(matrices, style, mouseX, mouseY); + } + } + + @Override + public int getItemHeight() { + if (savedWidth == -1) return LINE_HEIGHT; + int lineCount = this.wrappedLines.size(); + return lineCount == 0 ? 0 : 15 + lineCount * LINE_HEIGHT; + } + + @Override + public List narratables() { + return null; + } + + @Nullable + private Style getTextAt(double x, double y) { + int lineCount = this.wrappedLines.size(); + + if (lineCount > 0) { + int textX = (int) Math.floor(x - this.savedX); + int textY = (int) Math.floor(y - 4 - this.savedY); + if (textX >= 0 && textY >= 0 && textX <= this.savedWidth && textY < LINE_HEIGHT * lineCount + lineCount) { + int line = textY / LINE_HEIGHT; + if (line < this.wrappedLines.size()) { + OrderedText orderedText = this.wrappedLines.get(line); + return this.textRenderer.getTextHandler().getStyleAt(orderedText, textX); + } + } + } + return null; + } + + @Override + public Object getValue() { + return null; + } + + @Override + public Optional getDefaultValue() { + return Optional.empty(); + } + + @Override + public void save() { + + } + + @Override + public List children() { + return widgets; + } +} \ No newline at end of file diff --git a/src/main/java/rubyboat/ghost/config/Config.java b/src/main/java/rubyboat/ghost/config/Config.java index fe14d58..bc49ef3 100644 --- a/src/main/java/rubyboat/ghost/config/Config.java +++ b/src/main/java/rubyboat/ghost/config/Config.java @@ -7,15 +7,20 @@ import me.shedaniel.clothconfig2.impl.builders.ColorFieldBuilder; import me.shedaniel.clothconfig2.impl.builders.DropdownMenuBuilder; import net.fabricmc.fabric.api.lookup.v1.item.ItemApiLookup; +import net.fabricmc.loader.api.FabricLoader; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.screen.Screen; import net.minecraft.text.Text; import net.minecraft.text.TranslatableTextContent; +import rubyboat.clothconfigextensions.builders.ButtonBuilder; +import rubyboat.clothconfigextensions.configEntryBuilderExtension; import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.Arrays; +import java.util.UUID; public class Config { /* @@ -30,10 +35,10 @@ public class Config { static String block = "diamond_block"; static String camera_type = ""; - static int camera_distance = 10; + static int camera_distance = 4; static String path = "ghost_config.json"; static boolean is_slippery = false; - static String player_texture = "none"; + static String player_texture = ""; static boolean is_sleeve = true; static int zoom_strength = 75; static boolean is_cyrus_mode = true; @@ -44,7 +49,7 @@ public class Config { static Integer fog = 000000; static String title = "Minecraft"; static Integer color = 0; - static Integer time = 0; + static Integer time = -1; static Integer leaf = 0; static Integer grass = 0; static boolean render_arms = true; @@ -52,10 +57,6 @@ public class Config { static boolean render_body = true; static boolean render_head = true; static boolean technoblade = true; - static float arms_size = 1; - static float legs_size = 1; - static float body_size = 1; - static float head_size = 1; static float model_offset = 0; static String weather = ""; static Integer water = 0; @@ -63,18 +64,6 @@ public class Config { static String version = ""; static int distance = 0; //getters for size changers - public static float getArms_size() { - return arms_size; - } - public static float getLegs_size() { - return legs_size; - } - public static float getBody_size() { - return body_size; - } - public static float getHead_size() { - return head_size; - } public static String[] blocks = { @@ -219,30 +208,29 @@ public static SerializedConfig getConfig() return config; } + public static void save() { + SerializedConfig config = new SerializedConfig(); + MinecraftClient.getInstance().worldRenderer.reload(); + MinecraftClient.getInstance().reloadResources(); + try { + Files.writeString(Path.of(path), config.serialized()); + } catch (IOException e) { + e.printStackTrace(); + } + Config.config = loadConfig(); + } + public static ConfigBuilder MakeConfig() { - SerializedConfig sc = getConfig(); - ConfigBuilder builder = ConfigBuilder.create() .setParentScreen(MinecraftClient.getInstance().currentScreen) .setTitle(Text.translatable("title.ghost.config")); - builder.setSavingRunnable(() -> { - SerializedConfig config = new SerializedConfig(); - MinecraftClient.getInstance().worldRenderer.reload(); - MinecraftClient.getInstance().reloadResources(); - try { - Files.writeString(Path.of(path), config.serialized()); - } catch (IOException e) { - e.printStackTrace(); - } - Config.config = loadConfig(); - }); + builder.setSavingRunnable(Config::save); ConfigCategory general = builder.getOrCreateCategory(Text.translatable("config_category.ghost.general")); ConfigCategory experimental = builder.getOrCreateCategory(Text.translatable("config_category.ghost.experimental")); ConfigCategory texture = builder.getOrCreateCategory(Text.translatable("config_category.ghost.texture")); - ConfigCategory biome = builder.getOrCreateCategory(Text.translatable("config_category.ghost.biome")); - ConfigCategory time = builder.getOrCreateCategory(Text.translatable("config_category.ghost.time")); + ConfigCategory world = builder.getOrCreateCategory(Text.translatable("config_category.ghost.world")); ConfigCategory gamemodes = builder.getOrCreateCategory(Text.translatable("config_category.ghost.gamemodes")); ConfigEntryBuilder entryBuilder = builder.entryBuilder(); //---ENTRIES @@ -256,12 +244,7 @@ public static ConfigBuilder MakeConfig() .setSuggestionMode(false) .setSaveConsumer(newValue -> Config.camera_type = newValue ); - - DropdownMenuBuilder weather = entryBuilder.startStringDropdownMenu(Text.translatable("entry.ghost.weather"), Config.weather) - .setSelections(Arrays.asList(downfall)) - .setSuggestionMode(false) - .setSaveConsumer(newValue -> Config.weather = newValue - ); + general.addEntry(entryBuilder.startTextDescription(Text.of("test")).build()); general.addEntry(blockmenu.build()); gamemodes.addEntry(cameramenu.build()); if(camera_type.equalsIgnoreCase("topdown")) @@ -303,15 +286,17 @@ public static ConfigBuilder MakeConfig() );*/ texture.addEntry(entryBuilder.startBooleanToggle(Text.translatable("entry.ghost.is_sleeve"), Config.is_sleeve).setSaveConsumer(newValue -> Config.is_sleeve = newValue).build()); general.addEntry(entryBuilder.startStrField(Text.translatable("entry.ghost.title"), Config.title).setSaveConsumer(newValue -> Config.title = newValue).build()); - biome.addEntry(entryBuilder.startColorField(Text.translatable("entry.ghost.color"), Config.color) + world.addEntry(entryBuilder.startColorField(Text.translatable("entry.ghost.color"), Config.color) .setSaveConsumer(newValue -> Config.color = newValue) .setTooltip(Text.translatable("tooltip.ghost.color")) .build()); + world.addEntry(entryBuilder.startTextDescription(Text.translatable("label.ghost.world_presets")).build()); + experimental.addEntry(entryBuilder.startBooleanToggle(Text.translatable("entry.ghost.cyrus_mode"), Config.is_cyrus_mode) .setSaveConsumer(newValue -> Config.is_cyrus_mode = newValue) .build() ); - biome.addEntry(entryBuilder.startColorField(Text.translatable("entry.ghost.fog"), Config.fog) + world.addEntry(entryBuilder.startColorField(Text.translatable("entry.ghost.fog"), Config.fog) .setSaveConsumer(newValue -> Config.fog = newValue) .setTooltip(Text.translatable("tooltip.ghost.fog")) .build()); @@ -321,11 +306,11 @@ public static ConfigBuilder MakeConfig() .setSaveConsumer(newValue -> Config.inPowderSnowEffect = newValue ); - biome.addEntry(entryBuilder.startColorField(Text.translatable("entry.ghost.leaf"), Config.leaf) + world.addEntry(entryBuilder.startColorField(Text.translatable("entry.ghost.leaf"), Config.leaf) .setSaveConsumer(newValue -> Config.leaf = newValue) .setTooltip(Text.translatable("tooltip.ghost.leaf")) .build()); - biome.addEntry(entryBuilder.startColorField(Text.translatable("entry.ghost.grass"), Config.grass) + world.addEntry(entryBuilder.startColorField(Text.translatable("entry.ghost.grass"), Config.grass) .setSaveConsumer(newValue -> Config.grass = newValue) .setTooltip(Text.translatable("tooltip.ghost.grass")) .build()); @@ -335,7 +320,7 @@ public static ConfigBuilder MakeConfig() .build() ); texture.addEntry(snow.build()); - time.addEntry(entryBuilder.startIntSlider(Text.translatable("entry.ghost.time"), Config.time, -1 , 24000) + world.addEntry(entryBuilder.startIntSlider(Text.translatable("entry.ghost.time"), Config.time, -1 , 24000) .setDefaultValue(0) .setMin(-1) .setMax(24000) @@ -353,11 +338,11 @@ public static ConfigBuilder MakeConfig() texture.addEntry(entryBuilder.startFloatField(Text.translatable("entry.ghost.player_model_offset"), Config.model_offset) .setSaveConsumer(newValue -> Config.model_offset = newValue) .build()); - biome.addEntry(entryBuilder.startColorField(Text.translatable("entry.ghost.water"), Config.water) + world.addEntry(entryBuilder.startColorField(Text.translatable("entry.ghost.water"), Config.water) .setSaveConsumer(newValue -> Config.water = newValue) .setTooltip(Text.translatable("tooltip.ghost.water")) .build()); - biome.addEntry(entryBuilder.startColorField(Text.translatable("entry.ghost.waterfog"), Config.waterfog) + world.addEntry(entryBuilder.startColorField(Text.translatable("entry.ghost.waterfog"), Config.waterfog) .setSaveConsumer(newValue -> Config.waterfog = newValue) .setTooltip(Text.translatable("tooltip.ghost.waterfog")) .build()); @@ -367,6 +352,49 @@ public static ConfigBuilder MakeConfig() general.addEntry(entryBuilder.startIntField(Text.translatable("entry.ghost.distance"), Config.distance) .setSaveConsumer(newValue -> Config.distance = newValue) .build()); + world.addEntry(new ButtonBuilder(Text.of(UUID.randomUUID().toString()), Text.translatable("entry.ghost.plains_color")).setOnPress(button -> { + Config.grass = 0x7aca60; + config.grass = 0x7aca60; + MinecraftClient.getInstance().setScreen(null); + save(); + }).build()); + + world.addEntry(new ButtonBuilder(Text.of(UUID.randomUUID().toString()), Text.translatable("entry.ghost.ocean_color")).setOnPress(button -> { + Config.water = 0x00ccaa; + config.water = 0x00ccaa; + Config.waterfog = 0x00ccaa; + config.waterfog = 0x00ccaa; + MinecraftClient.getInstance().setScreen(null); + save(); + }).build()); + + world.addEntry(new ButtonBuilder(Text.of(UUID.randomUUID().toString()), Text.translatable("entry.ghost.jungle_color")).setOnPress(button -> { + Config.grass = 0x40cf00; + config.grass = 0x40cf00; + Config.leaf = 0x40cf00; + config.leaf = 0x40cf00; + MinecraftClient.getInstance().setScreen(null); + save(); + }).build()); + //12700 + world.addEntry(new ButtonBuilder(Text.of(UUID.randomUUID().toString()), Text.translatable("entry.ghost.sunset")).setOnPress(button -> { + Config.time = 12700; + config.time = 12700; + MinecraftClient.getInstance().setScreen(null); + save(); + }).build()); + texture.addEntry(new ButtonBuilder(Text.of(UUID.randomUUID().toString()), Text.translatable("entry.ghost.moleman")).setOnPress(button -> { + Config.render_arms = false; + Config.render_legs = false; + Config.render_body = false; + Config.model_offset = -1.4f; + config.render_arms = false; + config.render_legs = false; + config.render_body = false; + config.model_offset = -1.4f; + MinecraftClient.getInstance().setScreen(null); + save(); + }).build()); //Build return builder; } @@ -393,10 +421,6 @@ public static class SerializedConfig public boolean render_body; public boolean render_head; public boolean technoblade; - float arms_size; - float legs_size; - float body_size; - float head_size; public boolean bouncy; public boolean antfarm; public float model_offset; @@ -430,10 +454,6 @@ public SerializedConfig() this.render_legs = Config.render_legs; this.render_body = Config.render_body; this.render_head = Config.render_head; - this.arms_size = Config.arms_size; - this.legs_size = Config.legs_size; - this.body_size = Config.body_size; - this.head_size = Config.head_size; this.model_offset = Config.model_offset; this.water = Config.water; this.waterfog = Config.waterfog; diff --git a/src/main/java/rubyboat/ghost/mixin/BiomeMixin.java b/src/main/java/rubyboat/ghost/mixin/BiomeMixin.java index a7eb2d0..c97958b 100644 --- a/src/main/java/rubyboat/ghost/mixin/BiomeMixin.java +++ b/src/main/java/rubyboat/ghost/mixin/BiomeMixin.java @@ -1,7 +1,6 @@ package rubyboat.ghost.mixin; import net.minecraft.world.biome.Biome; -import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; @@ -9,8 +8,6 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import rubyboat.ghost.config.Config; -import java.util.Objects; - @Mixin(Biome.class) public abstract class BiomeMixin { @Shadow public abstract int getSkyColor(); diff --git a/src/main/java/rubyboat/ghost/mixin/BlockMixin.java b/src/main/java/rubyboat/ghost/mixin/BlockMixin.java index 9e6d126..fd1ed06 100644 --- a/src/main/java/rubyboat/ghost/mixin/BlockMixin.java +++ b/src/main/java/rubyboat/ghost/mixin/BlockMixin.java @@ -2,30 +2,20 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.minecraft.block.AbstractBlock; import net.minecraft.block.Block; -import net.minecraft.block.BlockState; import net.minecraft.client.MinecraftClient; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityType; import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.damage.DamageSource; -import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; import net.minecraft.world.BlockView; -import net.minecraft.world.World; -import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Mutable; -import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import rubyboat.ghost.config.Config; -import java.util.logging.Logger; - @Environment(EnvType.CLIENT) @Mixin(Block.class) public class BlockMixin { diff --git a/src/main/java/rubyboat/ghost/mixin/CameraMixin.java b/src/main/java/rubyboat/ghost/mixin/CameraMixin.java index e821d2c..1e538a7 100644 --- a/src/main/java/rubyboat/ghost/mixin/CameraMixin.java +++ b/src/main/java/rubyboat/ghost/mixin/CameraMixin.java @@ -1,14 +1,12 @@ package rubyboat.ghost.mixin; -import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.Camera; import net.minecraft.client.render.CameraSubmersionType; -import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.Entity; import net.minecraft.entity.LivingEntity; -import net.minecraft.util.Identifier; -import net.minecraft.util.math.*; -import net.minecraft.util.registry.Registry; +import net.minecraft.util.math.Direction; +import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.Vec3d; import net.minecraft.world.BlockView; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -16,7 +14,6 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import rubyboat.ghost.client.GhostClient; import rubyboat.ghost.config.Config; @Mixin(Camera.class) diff --git a/src/main/java/rubyboat/ghost/mixin/ClientPlayerEntityMixin.java b/src/main/java/rubyboat/ghost/mixin/ClientPlayerEntityMixin.java index d06830b..22fb654 100644 --- a/src/main/java/rubyboat/ghost/mixin/ClientPlayerEntityMixin.java +++ b/src/main/java/rubyboat/ghost/mixin/ClientPlayerEntityMixin.java @@ -1,17 +1,10 @@ package rubyboat.ghost.mixin; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.input.Input; import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.text.Text; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import rubyboat.ghost.client.GhostClient; import rubyboat.ghost.config.Config; @Mixin(ClientPlayerEntity.class) diff --git a/src/main/java/rubyboat/ghost/mixin/ClientWorldMixin.java b/src/main/java/rubyboat/ghost/mixin/ClientWorldMixin.java index 4e2ff46..9fcb465 100644 --- a/src/main/java/rubyboat/ghost/mixin/ClientWorldMixin.java +++ b/src/main/java/rubyboat/ghost/mixin/ClientWorldMixin.java @@ -1,18 +1,12 @@ package rubyboat.ghost.mixin; -import me.shedaniel.autoconfig.AutoConfig; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.render.block.entity.BeaconBlockEntityRenderer; -import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.world.ClientChunkManager; import net.minecraft.client.world.ClientWorld; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.mob.CreeperEntity; import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; import net.minecraft.util.registry.Registry; @@ -25,8 +19,6 @@ import rubyboat.ghost.client.GhostClient; import rubyboat.ghost.config.Config; -import java.util.Random; - @Environment(EnvType.CLIENT) @Mixin(ClientWorld.class) public abstract class ClientWorldMixin { diff --git a/src/main/java/rubyboat/ghost/mixin/ClientWorldPropertiesMixin.java b/src/main/java/rubyboat/ghost/mixin/ClientWorldPropertiesMixin.java index 9737969..e8921ce 100644 --- a/src/main/java/rubyboat/ghost/mixin/ClientWorldPropertiesMixin.java +++ b/src/main/java/rubyboat/ghost/mixin/ClientWorldPropertiesMixin.java @@ -1,11 +1,9 @@ package rubyboat.ghost.mixin; -import net.minecraft.client.render.block.entity.EndPortalBlockEntityRenderer; import net.minecraft.client.world.ClientWorld; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import rubyboat.ghost.config.Config; diff --git a/src/main/java/rubyboat/ghost/mixin/DebugHudMixin.java b/src/main/java/rubyboat/ghost/mixin/DebugHudMixin.java index da50a79..fe7bd36 100644 --- a/src/main/java/rubyboat/ghost/mixin/DebugHudMixin.java +++ b/src/main/java/rubyboat/ghost/mixin/DebugHudMixin.java @@ -5,15 +5,11 @@ import it.unimi.dsi.fastutil.longs.LongSet; import it.unimi.dsi.fastutil.longs.LongSets; import it.unimi.dsi.fastutil.objects.Object2IntMap; - -import java.util.*; -import java.util.stream.Collectors; -import java.util.stream.Stream; - import net.minecraft.SharedConstants; import net.minecraft.client.ClientBrandRetriever; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gl.ShaderEffect; +import net.minecraft.client.gui.hud.DebugHud; import net.minecraft.entity.Entity; import net.minecraft.entity.SpawnGroup; import net.minecraft.network.ClientConnection; @@ -21,23 +17,21 @@ import net.minecraft.server.world.ServerChunkManager; import net.minecraft.server.world.ServerWorld; import net.minecraft.util.Identifier; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.ChunkPos; -import net.minecraft.util.math.ChunkSectionPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.*; import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.RegistryEntry; -import net.minecraft.world.*; import net.minecraft.world.Heightmap.Type; +import net.minecraft.world.LightType; +import net.minecraft.world.LocalDifficulty; +import net.minecraft.world.SpawnHelper; +import net.minecraft.world.World; import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.source.BiomeSource; +import net.minecraft.world.biome.source.util.MultiNoiseUtil; import net.minecraft.world.chunk.WorldChunk; import net.minecraft.world.gen.chunk.ChunkGenerator; import net.minecraft.world.gen.noise.NoiseConfig; import org.jetbrains.annotations.Nullable; -import net.minecraft.client.gui.hud.DebugHud; -import net.minecraft.world.biome.source.util.MultiNoiseUtil; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -47,6 +41,13 @@ import rubyboat.ghost.client.GhostClient; import rubyboat.ghost.config.Config; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; +import java.util.stream.Stream; + @Mixin(DebugHud.class) public abstract class DebugHudMixin { diff --git a/src/main/java/rubyboat/ghost/mixin/EndPortalRendererMixin.java b/src/main/java/rubyboat/ghost/mixin/EndPortalRendererMixin.java deleted file mode 100644 index b1121e7..0000000 --- a/src/main/java/rubyboat/ghost/mixin/EndPortalRendererMixin.java +++ /dev/null @@ -1,18 +0,0 @@ -package rubyboat.ghost.mixin; - -import net.minecraft.client.render.RenderLayer; -import net.minecraft.client.render.block.entity.EndPortalBlockEntityRenderer; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; - -@Mixin(EndPortalBlockEntityRenderer.class) -public class EndPortalRendererMixin { - - @Inject(at = @At("HEAD"), method = "getLayer", cancellable = true) - protected void getLayer(CallbackInfoReturnable cir) { - cir.setReturnValue(RenderLayer.getEndGateway()); - } - -} diff --git a/src/main/java/rubyboat/ghost/mixin/InGameHudMixin.java b/src/main/java/rubyboat/ghost/mixin/InGameHudMixin.java deleted file mode 100644 index 8dc28d2..0000000 --- a/src/main/java/rubyboat/ghost/mixin/InGameHudMixin.java +++ /dev/null @@ -1,42 +0,0 @@ -package rubyboat.ghost.mixin; - - -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawableHelper; -import net.minecraft.client.gui.hud.InGameHud; -import net.minecraft.client.render.block.entity.EndPortalBlockEntityRenderer; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.entity.player.PlayerEntity; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import rubyboat.ghost.client.GhostClient; -import rubyboat.ghost.config.Config; - -@Mixin(InGameHud.class) -public abstract class InGameHudMixin { - @Shadow protected abstract PlayerEntity getCameraPlayer(); - - @Shadow public abstract TextRenderer getTextRenderer(); - - @Shadow private int scaledWidth; - - @Shadow private int scaledHeight; - - @Inject(at = @At("HEAD"), method = "renderStatusBars") - public void renderStatusBars(MatrixStack matrices, CallbackInfo ci){ - PlayerEntity playerEntity = this.getCameraPlayer(); - if (playerEntity != null) { - /*if(Config.is_thirst()) - { - String to_print = "Thirst: "; - //MatrixStack matrices, TextRenderer textRenderer, String text, int centerX, int y, int color - int k = (this.scaledWidth - this.getTextRenderer().getWidth(to_print)) / 2; - this.getTextRenderer().draw(matrices, "Thirst: ", k, this.scaledHeight - 100, 0x00aaff); - }*/ - } - } -} diff --git a/src/main/java/rubyboat/ghost/mixin/PigEntityModelMixin.java b/src/main/java/rubyboat/ghost/mixin/PigEntityModelMixin.java index 2600b6d..cee4137 100644 --- a/src/main/java/rubyboat/ghost/mixin/PigEntityModelMixin.java +++ b/src/main/java/rubyboat/ghost/mixin/PigEntityModelMixin.java @@ -1,11 +1,8 @@ package rubyboat.ghost.mixin; import net.minecraft.client.model.*; -import net.minecraft.client.network.AbstractClientPlayerEntity; -import net.minecraft.client.render.entity.PlayerEntityRenderer; import net.minecraft.client.render.entity.model.PigEntityModel; import net.minecraft.client.render.entity.model.QuadrupedEntityModel; -import net.minecraft.util.Identifier; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; diff --git a/src/main/java/rubyboat/ghost/mixin/PlayerRenderMixin.java b/src/main/java/rubyboat/ghost/mixin/PlayerRenderMixin.java index 059d45c..dfea566 100644 --- a/src/main/java/rubyboat/ghost/mixin/PlayerRenderMixin.java +++ b/src/main/java/rubyboat/ghost/mixin/PlayerRenderMixin.java @@ -5,15 +5,11 @@ import net.minecraft.client.render.OverlayTexture; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.block.entity.EndPortalBlockEntityRenderer; import net.minecraft.client.render.entity.PlayerEntityRenderer; -import net.minecraft.client.render.entity.feature.PlayerHeldItemFeatureRenderer; import net.minecraft.client.render.entity.model.PlayerEntityModel; import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.entity.player.PlayerEntity; import net.minecraft.util.Identifier; import net.minecraft.util.math.Vec3d; -import net.minecraft.util.math.Vec3f; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; diff --git a/src/main/resources/assets/ghost/icon.png b/src/main/resources/assets/ghost/icon.png index f5019cb8015bf1eeb0f78cfaa2a55c64d0d4e3ce..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 GIT binary patch literal 0 HcmV?d00001 literal 96089 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 z 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 z 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 diff --git a/src/main/resources/assets/ghost/lang/en_us.json b/src/main/resources/assets/ghost/lang/en_us.json index 06585b0..232d81f 100644 --- a/src/main/resources/assets/ghost/lang/en_us.json +++ b/src/main/resources/assets/ghost/lang/en_us.json @@ -1,7 +1,7 @@ { "category.ghost.general": "Ghost Keybinds", "ghost.general": "Ghost Options", - "key.ghost.createghostblock": "Create Ghost block", + "key.ghostforge.createghostblock": "Create Ghost block", "key.ghost.menu": "Open Menu", "title.ghost.config": "Ghost Config", "config_category.ghost.general": "General Options", @@ -18,14 +18,13 @@ "tooltip.ghost.snow": "Effects like Powder Snow, Lava, and Water", "entry.ghost.is_portal": "Nether Portal Texture on Camera", "entry.ghost.title": "Minecraft Menu Title", - "config_category.ghost.biome": "Biome Options", + "config_category.ghost.world": "World Options", "entry.ghost.color": "Sky Color", "tooltip.ghost.color": "Base value: 000000", "entry.ghost.fog": "Fog Color", "tooltip.ghost.fog": "Base value: 000000", "entry.ghost.snow": "Screen Texture:", "entry.ghost.cyrus_mode": "Remove Negative Y Coordinates", - "config_category.ghost.time" : "Time Settings", "tooltip.ghost.time": "Set to -1 to turn off custom time", "entry.ghost.time":"Time of Day", "entry.ghost.leaf": "Leave Color", @@ -48,5 +47,11 @@ "entry.ghost.player_model_offset":"Player Model Offset", "tooltip.ghost.technoblade": "Adds crowns to all pigs, RIP Techno", "entry.ghost.version": "Minecraft Version", - "entry.ghost.distance": "Zoom Out Camera Distance" + "entry.ghost.distance": "Zoom Out Camera Distance", + "config_category.ghost.gamemodes": "Gamemodes", + "label.ghost.world_presets": "Presets", + "entry.ghost.plains_color": "Grass Color Always Plains", + "entry.ghost.ocean_color": "Water Color Always Ocean", + "entry.ghost.jungle_color": "Grass Color Always Jungle", + "entry.ghost.sunset": "Time always sunset" } \ No newline at end of file diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 6039e1d..c10492f 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -20,6 +20,6 @@ "depends": { "fabricloader": ">=0.12.12", "fabric": "*", - "minecraft": "1.19.x" + "minecraft": ">=1.19.1" } } diff --git a/src/main/resources/ghost.mixins.json b/src/main/resources/ghost.mixins.json index 60e5ca5..f0de013 100644 --- a/src/main/resources/ghost.mixins.json +++ b/src/main/resources/ghost.mixins.json @@ -10,13 +10,11 @@ "ClientPlayerEntityMixin", "ClientWorldMixin", "DebugHudMixin", - "EndPortalRendererMixin", "gameRendererMixin", "MinecraftClientMixin", "PigEntityModelMixin", "PlayerRenderMixin", "ClientWorldPropertiesMixin" - ], "injectors": { "defaultRequire": 1