diff --git a/build.gradle b/build.gradle index 45b68577..5da39e6d 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'fabric-loom' version '1.11-SNAPSHOT' + id 'net.fabricmc.fabric-loom-remap' version '1.14-SNAPSHOT' id 'java-library' id 'maven-publish' } diff --git a/changelog.md b/changelog.md index b9ac441c..ee8ef50a 100644 --- a/changelog.md +++ b/changelog.md @@ -13,7 +13,7 @@ Find your version by looking for the file for your mod-loader: Special thanks to the Entropy Contributors: bl4ckscor3, Kanawanagasaki and slicedlime! <3 Available versions: -- Minecraft 1.21.8 +- Minecraft 1.21.8, 1.21.10 ### Added diff --git a/gradle.properties b/gradle.properties index ed25e2ec..e907950e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,18 +2,18 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://fabricmc.net/develop/ -minecraft_version=1.21.8 -parchment_minecraft_version=1.21.8 -parchment_mappings_version=2025.07.18 -loader_version=0.16.14 +minecraft_version=1.21.10 +parchment_minecraft_version=1.21.10 +parchment_mappings_version=2025.10.12 +loader_version=0.18.4 # Mod Properties -mod_version=1.15+mc1.21.8 +mod_version=1.15+mc1.21.10 maven_group=me.juancarloscp52 archives_base_name=Entropy # Dependencies -fabric_version=0.129.0+1.21.8 +fabric_version=0.138.4+1.21.10 -modmenu_version=15.0.0-beta.3 +modmenu_version=16.0.0-rc.2 pircbotx_version=2.3.1 slf4j_version=1.7.36 jda_version=5.6.1 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 1b33c55b..8bdaf60c 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ca025c83..23449a2b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index 23d15a93..adff685a 100755 --- a/gradlew +++ b/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -114,7 +114,6 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -172,7 +171,6 @@ fi # For Cygwin or MSYS, switch paths to Windows format before running java if "$cygwin" || "$msys" ; then APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) JAVACMD=$( cygpath --unix "$JAVACMD" ) @@ -212,7 +210,6 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" diff --git a/gradlew.bat b/gradlew.bat index 5eed7ee8..e509b2dd 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -70,11 +70,10 @@ goto fail :execute @rem Setup the command line -set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/settings.gradle b/settings.gradle index 5b60df3d..f91a4fe7 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,6 +1,5 @@ pluginManagement { repositories { - jcenter() maven { name = 'Fabric' url = 'https://maven.fabricmc.net/' diff --git a/src/main/java/me/juancarloscp52/entropy/client/ClientEventHandler.java b/src/main/java/me/juancarloscp52/entropy/client/ClientEventHandler.java index 7826e31c..680bca25 100644 --- a/src/main/java/me/juancarloscp52/entropy/client/ClientEventHandler.java +++ b/src/main/java/me/juancarloscp52/entropy/client/ClientEventHandler.java @@ -100,7 +100,7 @@ public void render(GuiGraphics drawContext, DeltaTracker tickCounter) { Minecraft client = Minecraft.getInstance(); - if (client.getDebugOverlay().showDebugScreen()) + if (client.debugEntries.isF3Visible()) return; double time = timerDuration - eventCountDown; diff --git a/src/main/java/me/juancarloscp52/entropy/client/ConstantColorDustParticle.java b/src/main/java/me/juancarloscp52/entropy/client/ConstantColorDustParticle.java index f8204ac3..33ad81b4 100644 --- a/src/main/java/me/juancarloscp52/entropy/client/ConstantColorDustParticle.java +++ b/src/main/java/me/juancarloscp52/entropy/client/ConstantColorDustParticle.java @@ -7,6 +7,7 @@ import net.minecraft.client.particle.Particle; import net.minecraft.client.particle.ParticleProvider; import net.minecraft.client.particle.SpriteSet; +import net.minecraft.util.RandomSource; public class ConstantColorDustParticle extends DustParticleBase{ protected ConstantColorDustParticle(ClientLevel world, double x, double y, double z, double velocityX, double velocityY, double velocityZ, ConstantColorDustParticleOptions parameters, SpriteSet spriteProvider) { @@ -28,7 +29,8 @@ public Factory(FabricSpriteProvider spriteProvider) { this.spriteProvider = spriteProvider; } - public Particle createParticle(ConstantColorDustParticleOptions dustParticleEffect, ClientLevel clientWorld, double x, double y, double z, double velocityX, double velocityY, double velocityZ) { + @Override + public Particle createParticle(ConstantColorDustParticleOptions dustParticleEffect, ClientLevel clientWorld, double x, double y, double z, double velocityX, double velocityY, double velocityZ, RandomSource random) { return new ConstantColorDustParticle(clientWorld, x, y, z, velocityX, velocityY, velocityZ, dustParticleEffect, spriteProvider); } } diff --git a/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyEventConfigurationScreen.java b/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyEventConfigurationScreen.java index bcd52436..888716f7 100644 --- a/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyEventConfigurationScreen.java +++ b/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyEventConfigurationScreen.java @@ -27,8 +27,11 @@ import net.minecraft.client.gui.components.CycleButton; import net.minecraft.client.gui.components.EditBox; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.input.MouseButtonEvent; +import net.minecraft.client.input.MouseButtonInfo; import net.minecraft.network.chat.CommonComponents; import net.minecraft.network.chat.Component; +import org.lwjgl.glfw.GLFW; import java.util.ArrayList; @@ -46,9 +49,9 @@ public EntropyEventConfigurationScreen(Screen parent) { this.parent = parent; } + @Override protected void init() { list = addRenderableWidget(new EntropyEventListWidget(Minecraft.getInstance(), this.width, this.height - 65 - 30, 0, 65, 25)); - list.addAllFromRegistry(); this.addWidget(list); // Done button Button done = Button.builder(CommonComponents.GUI_DONE, button -> onDone()).pos(this.width / 2 - 100, this.height - 26).width(200).build(); @@ -77,16 +80,18 @@ protected void init() { this.addRenderableWidget(filterEvents); } + @Override public void render(GuiGraphics drawContext, int mouseX, int mouseY, float delta) { super.render(drawContext, mouseX, mouseY, delta); drawContext.drawString(font, this.title, this.width / 2 - font.width(this.title) / 2, 12, 0xFFE0E0E0); EntropyConfigurationScreen.drawLogo(drawContext); } - public boolean mouseReleased(double mouseX, double mouseY, int button) { - if (super.mouseReleased(mouseX, mouseY, button)) { + @Override + public boolean mouseReleased(MouseButtonEvent event) { + if (super.mouseReleased(event)) { return true; - } else return this.list.mouseReleased(mouseX, mouseY, button); + } else return this.list.mouseReleased(event); } private void onDone() { @@ -100,17 +105,19 @@ private void onDone() { } private void onCheckAll() { + MouseButtonInfo info = new MouseButtonInfo(GLFW.GLFW_MOUSE_BUTTON_LEFT, 0); this.list.children().forEach(buttonEntry -> { if (buttonEntry.checkbox.visible && !buttonEntry.checkbox.selected() && buttonEntry.eventInfo.typeReference().value().isEnabled()) { - buttonEntry.checkbox.onPress(); + buttonEntry.checkbox.onPress(info); } }); } private void onUncheckAll() { + MouseButtonInfo info = new MouseButtonInfo(GLFW.GLFW_MOUSE_BUTTON_LEFT, 0); this.list.children().forEach(buttonEntry -> { if (buttonEntry.checkbox.visible && buttonEntry.checkbox.selected() && buttonEntry.eventInfo.typeReference().value().isEnabled()) { - buttonEntry.checkbox.onPress(); + buttonEntry.checkbox.onPress(info); } }); } diff --git a/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyIntegrationsScreen.java b/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyIntegrationsScreen.java index 1a43ce79..cc0fdd07 100644 --- a/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyIntegrationsScreen.java +++ b/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyIntegrationsScreen.java @@ -184,7 +184,7 @@ public TwitchTab() { token = new EditBox(font, 200, 20, Component.translatable("entropy.options.integrations.twitch.OAuthToken")); token.setMaxLength(64); token.setValue(settings.twitch.token); - token.setFormatter((s, integer) -> FormattedCharSequence.forward("*".repeat(s.length()), Style.EMPTY)); + token.addFormatter((s, integer) -> FormattedCharSequence.forward("*".repeat(s.length()), Style.EMPTY)); rowHelper.addChild( CommonLayouts.labeledElement(font, token, Component.translatable("entropy.options.integrations.twitch.OAuthToken")), rowHelper.newCellSettings().alignHorizontallyCenter() @@ -219,7 +219,7 @@ public DiscordTab() { token = new EditBox(font, 200, 20, Component.translatable("entropy.options.integrations.discord.token")); token.setMaxLength(128); token.setValue(settings.discord.token); - token.setFormatter((s, integer) -> FormattedCharSequence.forward("*".repeat(s.length()), Style.EMPTY)); + token.addFormatter((s, integer) -> FormattedCharSequence.forward("*".repeat(s.length()), Style.EMPTY)); rowHelper.addChild( CommonLayouts.labeledElement(font, token, Component.translatable("entropy.options.integrations.discord.token")), rowHelper.newCellSettings().alignHorizontallyCenter() @@ -266,7 +266,7 @@ public YouTubeTab() { secret = new EditBox(font, 200, 20, Component.translatable("entropy.options.integrations.youtube.secret")); secret.setMaxLength(64); secret.setValue(settings.youtube.secret); - secret.setFormatter((s, integer) -> FormattedCharSequence.forward("*".repeat(s.length()), Style.EMPTY)); + secret.addFormatter((s, integer) -> FormattedCharSequence.forward("*".repeat(s.length()), Style.EMPTY)); rowHelper.addChild( CommonLayouts.labeledElement(font, secret, Component.translatable("entropy.options.integrations.youtube.secret")), rowHelper.newCellSettings().alignHorizontallyCenter() diff --git a/src/main/java/me/juancarloscp52/entropy/client/Screens/Widgets/EntropyEventListWidget.java b/src/main/java/me/juancarloscp52/entropy/client/Screens/Widgets/EntropyEventListWidget.java index b2e3d97a..ed6888b8 100644 --- a/src/main/java/me/juancarloscp52/entropy/client/Screens/Widgets/EntropyEventListWidget.java +++ b/src/main/java/me/juancarloscp52/entropy/client/Screens/Widgets/EntropyEventListWidget.java @@ -21,7 +21,6 @@ import me.juancarloscp52.entropy.Entropy; import me.juancarloscp52.entropy.events.EventRegistry; import me.juancarloscp52.entropy.events.EventType; -import me.juancarloscp52.entropy.mixin.AbstractScrollAreaAccessor; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.Minecraft; @@ -33,6 +32,7 @@ import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.gui.narration.NarratableEntry; import net.minecraft.client.gui.screens.inventory.tooltip.MenuTooltipPositioner; +import net.minecraft.client.input.MouseButtonEvent; import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.client.resources.sounds.SimpleSoundInstance; import net.minecraft.core.Holder; @@ -40,15 +40,14 @@ import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvents; -import net.minecraft.util.Mth; -import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.Locale; +import java.util.stream.Stream; public class EntropyEventListWidget extends ContainerObjectSelectionList { - public final List visibleEntries = new ArrayList<>(); + private final List eventInfos; private final Font textRenderer; public EntropyEventListWidget(Minecraft minecraftClient, int width, int height, int x, int y, int itemHeight) { @@ -56,26 +55,19 @@ public EntropyEventListWidget(Minecraft minecraftClient, int width, int height, this.setX(x); this.centerListVertically = false; this.textRenderer = minecraftClient.font; - } - - public void addAllFromRegistry() { - EventRegistry.EVENTS + eventInfos = EventRegistry.EVENTS .listElements() .map(typeReference -> new EventInfo(Component.translatable(typeReference.value().getLanguageKey()).getString(), typeReference)) .sorted(Comparator.comparing(EventInfo::name)) - .forEach(this::addEvent); + .toList(); + getEntries().forEach(this::addEntry); } - public int addEvent(EventInfo eventInfo) { - return this.addEntry(EntropyEventListWidget.ButtonEntry.create(eventInfo, textRenderer)); + public Stream getEntries() { + return eventInfos.stream().map(eventInfo -> EntropyEventListWidget.ButtonEntry.create(eventInfo, textRenderer)); } @Override - protected int addEntry(ButtonEntry entry) { - this.visibleEntries.add(entry); - return super.addEntry(entry); - } - public int getRowWidth() { return 400; } @@ -85,85 +77,17 @@ protected int scrollBarX() { return super.scrollBarX() + 32; } - @Override - protected int getItemCount() { - return this.visibleEntries.size(); - } - - @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - this.updateScrolling(mouseX, mouseY, button); - if (!this.isMouseOver(mouseX, mouseY)) { - return false; - } else { - ButtonEntry entry = this.getEntryAtPositionRespectingSearch(mouseX, mouseY); - if (entry != null) { - if (entry.mouseClicked(mouseX, mouseY, button)) { - this.setFocused(entry); - this.setDragging(true); - return true; - } - } else if (button == 0) { - super.mouseClicked(mouseX, mouseY, button); - return true; - } - - return ((AbstractScrollAreaAccessor) this).getScrolling(); - } - } - - protected ButtonEntry getEntryAtPositionRespectingSearch(double x, double y) { - int i = this.getRowWidth() / 2; - int j = this.getX() + this.width / 2; - int k = j - i; - int l = j + i; - int m = Mth.floor(y - (double)this.getY()) - this.headerHeight + (int)this.scrollAmount() - 4; - int n = m / this.itemHeight; - return x < (double)this.scrollBarX() && x >= (double)k && x <= (double)l && n >= 0 && m >= 0 && n < this.getItemCount() ? this.visibleEntries.get(n) : null; - } - - @Override - protected void renderListItems(GuiGraphics drawContext, int mouseX, int mouseY, float delta) { - int rowLeft = this.getRowLeft(); - int rowWidth = this.getRowWidth(); - int entryHeight = this.itemHeight - 4; - int entryCount = this.children().size(); - int drawIndex = 0; - - for (int index = 0; index < entryCount; ++index) { - int rowTop = this.getRowTop(drawIndex); - int rowBottom = rowTop + this.itemHeight; - - if (this.getEntry(index).checkbox.visible) { - drawIndex++; - - if (rowBottom >= this.getY() && rowTop <= this.getBottom()) - this.renderItem(drawContext, mouseX, mouseY, delta, index, rowLeft, rowTop, rowWidth, entryHeight); - } - } - } - public void updateVisibleEntries(String searchText, FilterMode filterMode) { String lowerCasedNewText = searchText.toLowerCase(Locale.ROOT); - visibleEntries.clear(); - - if (searchText.isBlank()) - children().stream().forEach(buttonEntry -> { - buttonEntry.checkbox.visible = filterMode.allowsVisibility(buttonEntry); - - if(buttonEntry.checkbox.visible) - visibleEntries.add(buttonEntry); - }); - else { - children().stream().forEach(buttonEntry -> { - buttonEntry.checkbox.visible = filterMode.allowsVisibility(buttonEntry) && (buttonEntry.eventInfo.name.toLowerCase(Locale.ROOT).contains(lowerCasedNewText) || buttonEntry.eventInfo.typeReference.key().location().toString().contains(lowerCasedNewText)); - - if(buttonEntry.checkbox.visible) - visibleEntries.add(buttonEntry); - }); + Stream buttonEntries = getEntries().filter(filterMode::allowsVisibility); + + if (!searchText.isBlank()) { + buttonEntries = buttonEntries.filter(buttonEntry -> buttonEntry.eventInfo.name.toLowerCase(Locale.ROOT).contains(lowerCasedNewText) || buttonEntry.eventInfo.typeReference.key().location().toString().contains(lowerCasedNewText)); } setScrollAmount(0.0D); + clearEntries(); + buttonEntries.forEach(this::addEntry); } @Environment(EnvType.CLIENT) @@ -199,25 +123,26 @@ private static boolean isEventDisabledInSettings(Holder.Reference> .anyMatch(key -> typeReference.key().location().equals(key)); } - public void render(GuiGraphics drawContext, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) { - checkbox.setPosition(x + 32, y); + @Override + public void renderContent(GuiGraphics drawContext, int mouseX, int mouseY, boolean isHovering, float tickDelta) { + checkbox.setPosition(getX() + 32, getY()); checkbox.render(drawContext, mouseX, mouseY, tickDelta); if(!eventInfo.typeReference.value().isEnabled()) { - drawContext.blitSprite(RenderPipelines.GUI_TEXTURED, ICON_OVERLAY_LOCATION, x, y - 6, 32, 32); + drawContext.blitSprite(RenderPipelines.GUI_TEXTURED, ICON_OVERLAY_LOCATION, getX(), getY() - 6, 32, 32); - if(mouseX >= x && mouseX <= x + 32 && mouseY >= y && mouseY <= y + entryHeight) { + if(mouseX >= getX() && mouseX <= getX() + 32 && mouseY >= getY() && mouseY <= getY() + getHeight()) { Minecraft minecraft = Minecraft.getInstance(); - drawContext.setTooltipForNextFrame(minecraft.font, ACCESSIBILITY_TOOLTIP.toCharSequence(minecraft), new MenuTooltipPositioner(checkbox.getRectangle()), mouseX, mouseY, hovered); + drawContext.setTooltipForNextFrame(minecraft.font, ACCESSIBILITY_TOOLTIP.toCharSequence(minecraft), new MenuTooltipPositioner(checkbox.getRectangle()), mouseX, mouseY, isHovering); } } } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { + public boolean mouseClicked(MouseButtonEvent event, boolean doubleClick) { if(checkbox.active) { Minecraft.getInstance().getSoundManager().play(SimpleSoundInstance.forUI(SoundEvents.UI_BUTTON_CLICK, 1.0F)); - this.checkbox.onPress(); + this.checkbox.onPress(event); } return true; diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/RainbowTrailsEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/RainbowTrailsEvent.java index a7c95ac5..2987f401 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/RainbowTrailsEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/RainbowTrailsEvent.java @@ -19,7 +19,7 @@ public void tickClient() { float yOffset = (Mth.cos(tickCount) + 1.0F) / 2.0F; Vector3f color = HSBtoRGB(((tickCount * 5) % 360) / 360.0F, 1.0F, 1.0F); - Minecraft.getInstance().player.clientLevel.entitiesForRendering().forEach(entity -> { + Minecraft.getInstance().level.entitiesForRendering().forEach(entity -> { if(entity.getType().is(EntityTypeTags.NO_RAINBOW_TRAIL)) return; diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/RideClosestMobEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/RideClosestMobEvent.java index f8b420df..9298f3d0 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/RideClosestMobEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/RideClosestMobEvent.java @@ -23,7 +23,7 @@ public void init() { TargetingConditions.forCombat(), serverPlayerEntity, playerPos.x(), playerPos.y(), playerPos.z(), box); if (mob != null) - serverPlayerEntity.startRiding(mob, true); + serverPlayerEntity.startRiding(mob, true, true); } } diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/SlimePyramidEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/SlimePyramidEvent.java index b5f4a9e2..46248fb5 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/SlimePyramidEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/SlimePyramidEvent.java @@ -38,7 +38,7 @@ public void init() { slime2.setPos(player.position().add(addX, 0, addY)); player.level().addFreshEntity(slime2); - slime2.startRiding(slime, true); + slime2.startRiding(slime, true, true); slime = slime2; } } diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/Teleport0Event.java b/src/main/java/me/juancarloscp52/entropy/events/db/Teleport0Event.java index aade5a92..611b16c8 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/Teleport0Event.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/Teleport0Event.java @@ -35,8 +35,8 @@ public class Teleport0Event extends AbstractInstantEvent { public void init() { server = Entropy.getInstance().eventHandler.server; Entropy.getInstance().eventHandler.getActivePlayers().forEach(serverPlayerEntity -> { - ServerLevel overworld = serverPlayerEntity.getServer().getLevel(Level.OVERWORLD); - EntropyUtils.teleportPlayer(serverPlayerEntity, overworld, overworld.getSharedSpawnPos().getCenter()); + ServerLevel overworld = serverPlayerEntity.level().getServer().getLevel(Level.OVERWORLD); + EntropyUtils.teleportPlayer(serverPlayerEntity, overworld, overworld.getRespawnData().pos().getCenter()); EntropyUtils.clearPlayerArea(serverPlayerEntity); }); diff --git a/src/main/java/me/juancarloscp52/entropy/mixin/AbstractScrollAreaAccessor.java b/src/main/java/me/juancarloscp52/entropy/mixin/AbstractScrollAreaAccessor.java deleted file mode 100644 index 54787317..00000000 --- a/src/main/java/me/juancarloscp52/entropy/mixin/AbstractScrollAreaAccessor.java +++ /dev/null @@ -1,13 +0,0 @@ -package me.juancarloscp52.entropy.mixin; - -import net.minecraft.client.gui.components.AbstractScrollArea; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -@Mixin(AbstractScrollArea.class) -public interface AbstractScrollAreaAccessor { - - @Accessor - boolean getScrolling(); - -} \ No newline at end of file diff --git a/src/main/java/me/juancarloscp52/entropy/mixin/EntityMixin.java b/src/main/java/me/juancarloscp52/entropy/mixin/EntityMixin.java index 062bfbdd..cdca7ded 100644 --- a/src/main/java/me/juancarloscp52/entropy/mixin/EntityMixin.java +++ b/src/main/java/me/juancarloscp52/entropy/mixin/EntityMixin.java @@ -53,8 +53,8 @@ public abstract class EntityMixin { @Shadow public abstract double getZ(); - @Inject(method = "startRiding(Lnet/minecraft/world/entity/Entity;Z)Z", at = @At("HEAD"), cancellable = true) - private void preventMounting(Entity entityToMount, boolean force, CallbackInfoReturnable cir) { + @Inject(method = "startRiding(Lnet/minecraft/world/entity/Entity;ZZ)Z", at = @At("HEAD"), cancellable = true) + private void preventMounting(Entity entityToMount, boolean force, boolean sendGameEvent, CallbackInfoReturnable cir) { if(Variables.forceRiding && vehicle != null) cir.setReturnValue(false); } @@ -75,7 +75,7 @@ private void randomDrops(ServerLevel level, ItemStack stack, float yOffset, Call if (stack.isEmpty()) { cir.setReturnValue(null); cir.cancel(); - } else if (this.level.isClientSide) { + } else if (this.level.isClientSide()) { cir.setReturnValue(null); cir.cancel(); } else { diff --git a/src/main/java/me/juancarloscp52/entropy/mixin/LivingEntityRendererMixin.java b/src/main/java/me/juancarloscp52/entropy/mixin/LivingEntityRendererMixin.java index 118fa6ac..9cd38657 100644 --- a/src/main/java/me/juancarloscp52/entropy/mixin/LivingEntityRendererMixin.java +++ b/src/main/java/me/juancarloscp52/entropy/mixin/LivingEntityRendererMixin.java @@ -12,7 +12,7 @@ public class LivingEntityRendererMixin { @Inject(method = "isEntityUpsideDown", at = @At("HEAD"), cancellable = true) - private static void flipUpsidedownEvent(LivingEntity entity, CallbackInfoReturnable cir){ + private void flipUpsidedownEvent(LivingEntity entity, CallbackInfoReturnable cir){ if(Variables.flipEntities){ cir.setReturnValue(true); } diff --git a/src/main/java/me/juancarloscp52/entropy/mixin/SheepRendererMixin.java b/src/main/java/me/juancarloscp52/entropy/mixin/SheepRendererMixin.java new file mode 100644 index 00000000..eed187ec --- /dev/null +++ b/src/main/java/me/juancarloscp52/entropy/mixin/SheepRendererMixin.java @@ -0,0 +1,19 @@ +package me.juancarloscp52.entropy.mixin; + +import me.juancarloscp52.entropy.Variables; +import net.minecraft.client.renderer.entity.SheepRenderer; +import net.minecraft.client.renderer.entity.state.SheepRenderState; +import net.minecraft.world.entity.animal.sheep.Sheep; +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; + +@Mixin(SheepRenderer.class) +public class SheepRendererMixin { + @Inject(method = "extractRenderState", at = @At("TAIL")) + private void makeAllSheepRainbow2(Sheep sheep, SheepRenderState renderState, float partialTick, CallbackInfo ci) { + if (Variables.rainbowSheepEverywhere) + renderState.isJebSheep = true; + } +} diff --git a/src/main/java/me/juancarloscp52/entropy/mixin/SheepWoolLayerMixin.java b/src/main/java/me/juancarloscp52/entropy/mixin/SheepWoolLayerMixin.java deleted file mode 100644 index 99f4b1dc..00000000 --- a/src/main/java/me/juancarloscp52/entropy/mixin/SheepWoolLayerMixin.java +++ /dev/null @@ -1,22 +0,0 @@ -package me.juancarloscp52.entropy.mixin; - -import com.mojang.blaze3d.vertex.PoseStack; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.entity.layers.SheepWoolLayer; -import net.minecraft.client.renderer.entity.state.SheepRenderState; -import net.minecraft.network.chat.Component; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; - -import me.juancarloscp52.entropy.Variables; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Mixin(SheepWoolLayer.class) -public class SheepWoolLayerMixin { - @Inject(method = "render", at = @At("HEAD")) - private void makeAllSheepRainbow2(PoseStack poseStack, MultiBufferSource bufferSource, int packedLight, SheepRenderState renderState, float yRot, float xRot, CallbackInfo ci) { - if (Variables.rainbowSheepEverywhere) - renderState.customName = Component.literal("jeb_"); - } -} diff --git a/src/main/resources/assets/entropy/post_effect/black_and_white.json b/src/main/resources/assets/entropy/post_effect/black_and_white.json index b2bebb5e..e6a694b1 100644 --- a/src/main/resources/assets/entropy/post_effect/black_and_white.json +++ b/src/main/resources/assets/entropy/post_effect/black_and_white.json @@ -4,7 +4,7 @@ }, "passes": [ { - "vertex_shader": "minecraft:post/sobel", + "vertex_shader": "minecraft:core/screenquad", "fragment_shader": "entropy:program/black_and_white", "inputs": [ { @@ -15,7 +15,7 @@ "output": "swap" }, { - "vertex_shader": "minecraft:post/blit", + "vertex_shader": "minecraft:core/screenquad", "fragment_shader": "minecraft:post/blit", "inputs": [ { diff --git a/src/main/resources/assets/entropy/post_effect/blur.json b/src/main/resources/assets/entropy/post_effect/blur.json index faf1c801..7e528a10 100644 --- a/src/main/resources/assets/entropy/post_effect/blur.json +++ b/src/main/resources/assets/entropy/post_effect/blur.json @@ -6,7 +6,7 @@ }, "passes": [ { - "vertex_shader": "minecraft:post/blur", + "vertex_shader": "minecraft:core/screenquad", "fragment_shader": "minecraft:post/box_blur", "inputs": [ { @@ -32,7 +32,7 @@ } }, { - "vertex_shader": "minecraft:post/blur", + "vertex_shader": "minecraft:core/screenquad", "fragment_shader": "minecraft:post/box_blur", "inputs": [ { @@ -57,7 +57,7 @@ ] } }, { - "vertex_shader": "minecraft:post/blur", + "vertex_shader": "minecraft:core/screenquad", "fragment_shader": "minecraft:post/box_blur", "inputs": [ { @@ -84,7 +84,7 @@ } }, { - "vertex_shader": "minecraft:post/blur", + "vertex_shader": "minecraft:core/screenquad", "fragment_shader": "minecraft:post/box_blur", "inputs": [ { @@ -111,7 +111,7 @@ } }, { - "vertex_shader": "minecraft:post/blit", + "vertex_shader": "minecraft:core/screenquad", "fragment_shader": "minecraft:post/blit", "inputs": [ { diff --git a/src/main/resources/assets/entropy/post_effect/crt.json b/src/main/resources/assets/entropy/post_effect/crt.json index 384c54e6..2b67d6a5 100644 --- a/src/main/resources/assets/entropy/post_effect/crt.json +++ b/src/main/resources/assets/entropy/post_effect/crt.json @@ -5,7 +5,7 @@ }, "passes": [ { - "vertex_shader": "minecraft:post/sobel", + "vertex_shader": "minecraft:core/screenquad", "fragment_shader": "minecraft:post/bits", "inputs": [ { @@ -30,7 +30,7 @@ "output": "swap" }, { - "vertex_shader": "minecraft:post/sobel", + "vertex_shader": "minecraft:core/screenquad", "fragment_shader": "entropy:program/scan_pincushion", "inputs": [ { @@ -41,7 +41,7 @@ "output": "swap2" }, { - "vertex_shader": "minecraft:post/sobel", + "vertex_shader": "minecraft:core/screenquad", "fragment_shader": "entropy:program/ntsc_encode", "inputs": [ { @@ -52,16 +52,12 @@ "output": "swap" }, { - "vertex_shader": "minecraft:post/sobel", + "vertex_shader": "minecraft:core/screenquad", "fragment_shader": "entropy:program/ntsc_decode", "inputs": [ { "sampler_name": "In", "target": "swap" - }, - { - "sampler_name": "Base", - "target": "minecraft:main" } ], "output": "minecraft:main" diff --git a/src/main/resources/assets/entropy/post_effect/wobble.json b/src/main/resources/assets/entropy/post_effect/wobble.json index 56542c6b..71add521 100644 --- a/src/main/resources/assets/entropy/post_effect/wobble.json +++ b/src/main/resources/assets/entropy/post_effect/wobble.json @@ -4,7 +4,7 @@ }, "passes": [ { - "vertex_shader": "minecraft:post/sobel", + "vertex_shader": "minecraft:core/screenquad", "fragment_shader": "entropy:program/wobble", "inputs": [ { @@ -29,7 +29,7 @@ } }, { - "vertex_shader": "minecraft:post/blit", + "vertex_shader": "minecraft:core/screenquad", "fragment_shader": "minecraft:post/blit", "inputs": [ { diff --git a/src/main/resources/assets/entropy/shaders/program/black_and_white.fsh b/src/main/resources/assets/entropy/shaders/program/black_and_white.fsh index 4660f631..215214a9 100644 --- a/src/main/resources/assets/entropy/shaders/program/black_and_white.fsh +++ b/src/main/resources/assets/entropy/shaders/program/black_and_white.fsh @@ -1,4 +1,4 @@ -#version 150 +#version 330 uniform sampler2D InSampler; diff --git a/src/main/resources/assets/entropy/shaders/program/ntsc_decode.fsh b/src/main/resources/assets/entropy/shaders/program/ntsc_decode.fsh index 76e9ab4e..e3377bfa 100644 --- a/src/main/resources/assets/entropy/shaders/program/ntsc_decode.fsh +++ b/src/main/resources/assets/entropy/shaders/program/ntsc_decode.fsh @@ -1,10 +1,8 @@ -#version 150 +#version 330 uniform sampler2D InSampler; -uniform sampler2D BaseSampler; in vec2 texCoord; -in vec2 oneTexel; layout(std140) uniform SamplerInfo { vec2 OutSize; @@ -40,6 +38,7 @@ const vec4 W = vec4(Pi2 * CCFrequency * ScanTime); out vec4 fragColor; void main() { + vec2 oneTexel = 1.0 / InSize; vec4 YAccum = Zero; vec4 IAccum = Zero; vec4 QAccum = Zero; diff --git a/src/main/resources/assets/entropy/shaders/program/ntsc_encode.fsh b/src/main/resources/assets/entropy/shaders/program/ntsc_encode.fsh index 30ff6097..8cbd012d 100644 --- a/src/main/resources/assets/entropy/shaders/program/ntsc_encode.fsh +++ b/src/main/resources/assets/entropy/shaders/program/ntsc_encode.fsh @@ -1,9 +1,8 @@ -#version 150 +#version 330 uniform sampler2D InSampler; in vec2 texCoord; -in vec2 oneTexel; layout(std140) uniform SamplerInfo { vec2 OutSize; @@ -27,6 +26,7 @@ const vec4 InvCRange = vec4(1.0 / 3.2366); out vec4 fragColor; void main() { + vec2 oneTexel = 1.0 / InSize; vec2 InverseP = vec2(P, 0.0) * oneTexel; // UVs for four linearly-interpolated samples spread 0.25 texels apart diff --git a/src/main/resources/assets/entropy/shaders/program/scan_pincushion.fsh b/src/main/resources/assets/entropy/shaders/program/scan_pincushion.fsh index 0e4bb6a0..4e4aa218 100644 --- a/src/main/resources/assets/entropy/shaders/program/scan_pincushion.fsh +++ b/src/main/resources/assets/entropy/shaders/program/scan_pincushion.fsh @@ -1,9 +1,8 @@ -#version 150 +#version 330 uniform sampler2D InSampler; in vec2 texCoord; -in vec2 oneTexel; layout(std140) uniform SamplerInfo { vec2 OutSize; diff --git a/src/main/resources/assets/entropy/shaders/program/wobble.fsh b/src/main/resources/assets/entropy/shaders/program/wobble.fsh index 84ede616..8ebe825a 100644 --- a/src/main/resources/assets/entropy/shaders/program/wobble.fsh +++ b/src/main/resources/assets/entropy/shaders/program/wobble.fsh @@ -1,11 +1,10 @@ -#version 150 +#version 330 #moj_import uniform sampler2D InSampler; in vec2 texCoord; -in vec2 oneTexel; layout(std140) uniform SamplerInfo { vec2 OutSize; diff --git a/src/main/resources/entropy.mixins.json b/src/main/resources/entropy.mixins.json index 0f5849e9..e1816c91 100644 --- a/src/main/resources/entropy.mixins.json +++ b/src/main/resources/entropy.mixins.json @@ -14,7 +14,6 @@ "WolfInvoker" ], "client": [ - "AbstractScrollAreaAccessor", "BossHealthOverlayAccessor", "BossHealthOverlayMixin", "CameraMixin", @@ -32,7 +31,7 @@ "MultiPlayerGameModeAccessor", "OptionsScreenMixin", "ScreenEffectRendererMixin", - "SheepWoolLayerMixin", + "SheepRendererMixin", "SoundEngineMixin" ], "injectors": { diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index bdb245ce..c7dc608e 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -40,7 +40,7 @@ "depends": { "fabricloader": ">=0.16.0", "fabric": "*", - "minecraft": ">=1.21.6-rc.1" + "minecraft": ">=1.21.10" }, "suggests": { "modmenu": ">=3.1.0"