diff --git a/build.gradle b/build.gradle index 3c10aa5d..4a091407 100644 --- a/build.gradle +++ b/build.gradle @@ -1,13 +1,13 @@ plugins { id 'java-library' - id 'fabric-loom' version '0.8-SNAPSHOT' + id 'fabric-loom' version '0.10-SNAPSHOT' id 'maven-publish' id 'org.ajoberstar.reckon' version '0.13.0' } java { toolchain { - languageVersion = JavaLanguageVersion.of(16) + languageVersion = JavaLanguageVersion.of(17) } } @@ -15,9 +15,9 @@ group = project.group description = project.displayname archivesBaseName = project.name -minecraft { - refmapName = 'minelp.mixin.refmap.json' - accessWidener 'src/main/resources/minelp.aw' +loom { + mixin.defaultRefmapName = 'minelp.mixin.refmap.json' + accessWidenerPath = file('src/main/resources/minelp.aw') } reckon { @@ -105,12 +105,7 @@ task sourcesJar(type: Jar, dependsOn: classes) { publishing { publications { maven(MavenPublication) { - afterEvaluate { - artifact(remapJar) - } - artifact(sourcesJar) { - builtBy remapSourcesJar - } + from components.java pom { name = "MineLittlePony" diff --git a/gradle.properties b/gradle.properties index 689c8441..e996e6c4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,10 +3,10 @@ org.gradle.daemon=false # Fabric Properties # check these on https://modmuss50.me/fabric.html - minecraft_version=1.17 - yarn_mappings=1.17+build.5 - loader_version=0.11.3 - fabric_version=0.34.9+1.17 + minecraft_version=1.18-pre8 + yarn_mappings=1.18-pre8+build.2 + loader_version=0.12.5 + fabric_version=0.43.0+1.18 # Mod Properties group=com.minelittlepony @@ -16,6 +16,6 @@ org.gradle.daemon=false # Dependencies modmenu_version=2.0.0-beta.7 - kirin_version=1.9.1 - hd_skins_version=6.4.12 - mson_version=1.4.3 + kirin_version=1.10.0-beta.1 + hd_skins_version=6.5.0-beta.2 + mson_version=1.5.0-beta.1 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index e708b1c0..7454180f 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 e5338d37..e750102e 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 4f906e0c..c53aefaa 100755 --- a/gradlew +++ b/gradlew @@ -1,7 +1,7 @@ -#!/usr/bin/env sh +#!/bin/sh # -# Copyright 2015 the original author or authors. +# Copyright © 2015-2021 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. @@ -17,67 +17,101 @@ # ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## # Attempt to set APP_HOME + # Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` +APP_BASE_NAME=${0##*/} # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar @@ -87,9 +121,9 @@ CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -98,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" + JAVACMD=java which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the @@ -106,80 +140,95 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=`expr $i + 1` - done - case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=`save "$@"` +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" +# 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" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' exec "$JAVACMD" "$@" diff --git a/settings.gradle b/settings.gradle index 42c336a6..b0b0b064 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,6 +1,6 @@ pluginManagement { repositories { - jcenter() + mavenCentral() maven { name = 'Fabric' url = 'https://maven.fabricmc.net/' diff --git a/src/main/java/com/minelittlepony/api/pony/meta/TriggerPixel.java b/src/main/java/com/minelittlepony/api/pony/meta/TriggerPixel.java index edafdbce..a263e23b 100644 --- a/src/main/java/com/minelittlepony/api/pony/meta/TriggerPixel.java +++ b/src/main/java/com/minelittlepony/api/pony/meta/TriggerPixel.java @@ -98,7 +98,7 @@ public enum TriggerPixel { } public int readValue(int x, int y, NativeImage image) { - return (Color.abgrToArgb(image.getPixelColor(x, y)) >> offset) & mask; + return (Color.abgrToArgb(image.getColor(x, y)) >> offset) & mask; } } } diff --git a/src/main/java/com/minelittlepony/api/pony/network/MsgPonyData.java b/src/main/java/com/minelittlepony/api/pony/network/MsgPonyData.java index 2e81fc18..3fba7b8f 100644 --- a/src/main/java/com/minelittlepony/api/pony/network/MsgPonyData.java +++ b/src/main/java/com/minelittlepony/api/pony/network/MsgPonyData.java @@ -1,9 +1,9 @@ package com.minelittlepony.api.pony.network; import net.minecraft.network.PacketByteBuf; -import net.minecraft.util.Lazy; import net.minecraft.util.Util; +import com.google.common.base.Suppliers; import com.minelittlepony.api.pony.IPonyData; import com.minelittlepony.api.pony.TriggerPixelType; import com.minelittlepony.api.pony.meta.Gender; @@ -16,6 +16,7 @@ import com.minelittlepony.common.util.animation.Interpolator; import java.util.Map; import java.util.TreeMap; import java.util.UUID; +import java.util.function.Supplier; public class MsgPonyData implements IPonyData { @@ -32,7 +33,7 @@ public class MsgPonyData implements IPonyData { private final int wearableColor; private final boolean[] wearables; - private final Lazy>> triggerPixels = new Lazy<>(() -> Util.make(new TreeMap<>(), this::initTriggerPixels)); + private final Supplier>> triggerPixels = Suppliers.memoize(() -> Util.make(new TreeMap<>(), this::initTriggerPixels)); private void initTriggerPixels(Map> map) { map.put("race", race); map.put("tail", tailLength); diff --git a/src/main/java/com/minelittlepony/client/MineLittlePony.java b/src/main/java/com/minelittlepony/client/MineLittlePony.java index f6b261fe..1c16d8b9 100644 --- a/src/main/java/com/minelittlepony/client/MineLittlePony.java +++ b/src/main/java/com/minelittlepony/client/MineLittlePony.java @@ -104,7 +104,7 @@ public class MineLittlePony implements ClientModInitializer { } if ((mainMenu || inGame) && keyBinding.isPressed()) { - client.openScreen(new GuiPonySettings(client.currentScreen)); + client.setScreen(new GuiPonySettings(client.currentScreen)); } } @@ -118,7 +118,7 @@ public class MineLittlePony implements ClientModInitializer { if (show) { int y = hasHdSkins ? 75 : 50; Button button = buttons.addButton(new Button(screen.width - 50, screen.height - y, 20, 20)) - .onClick(sender -> MinecraftClient.getInstance().openScreen(new GuiPonySettings(screen))); + .onClick(sender -> MinecraftClient.getInstance().setScreen(new GuiPonySettings(screen))); button.getStyle() .setIcon(new TextureSprite() .setPosition(2, 2) diff --git a/src/main/java/com/minelittlepony/client/hdskins/GuiSkinsMineLP.java b/src/main/java/com/minelittlepony/client/hdskins/GuiSkinsMineLP.java index 75a3c9f8..c65cbd88 100644 --- a/src/main/java/com/minelittlepony/client/hdskins/GuiSkinsMineLP.java +++ b/src/main/java/com/minelittlepony/client/hdskins/GuiSkinsMineLP.java @@ -37,7 +37,7 @@ class GuiSkinsMineLP extends GuiSkins { if (!(parent instanceof GuiPonySettings)) { addButton(new Button(width - 25, height - 90, 20, 20)) - .onClick(sender -> client.openScreen(new GuiPonySettings(this))) + .onClick(sender -> client.setScreen(new GuiPonySettings(this))) .getStyle() .setIcon(new TextureSprite() .setPosition(2, 2) @@ -66,7 +66,7 @@ class GuiSkinsMineLP extends GuiSkins { MineLittlePony.logger.debug("Invalidating old local skin, checking updated local skin"); if (type == SkinType.SKIN) { - ponyManager.removePony(previewer.getLocal().getTextures().get(SkinType.SKIN).getId()); + previewer.getLocal().ifPresent(local -> ponyManager.removePony(local.getTextures().get(SkinType.SKIN).getId())); } } diff --git a/src/main/java/com/minelittlepony/client/hdskins/MineLPHDSkins.java b/src/main/java/com/minelittlepony/client/hdskins/MineLPHDSkins.java index e3790231..c6f73ff3 100644 --- a/src/main/java/com/minelittlepony/client/hdskins/MineLPHDSkins.java +++ b/src/main/java/com/minelittlepony/client/hdskins/MineLPHDSkins.java @@ -55,7 +55,7 @@ public class MineLPHDSkins extends SkinsProxy implements ClientModInitializer { @Override public void renderOption(Screen screen, @Nullable Screen parent, int row, int RIGHT, ScrollContainer content) { content.addButton(new Button(RIGHT, row += 20, 150, 20)) - .onClick(button -> MinecraftClient.getInstance().openScreen( + .onClick(button -> MinecraftClient.getInstance().setScreen( parent instanceof GuiSkins ? parent : GuiSkins.create(screen, HDSkins.getInstance().getSkinServerList()) )) .getStyle() diff --git a/src/main/java/com/minelittlepony/client/hdskins/PonyPreview.java b/src/main/java/com/minelittlepony/client/hdskins/PonyPreview.java index 55fd5719..6ad1f757 100644 --- a/src/main/java/com/minelittlepony/client/hdskins/PonyPreview.java +++ b/src/main/java/com/minelittlepony/client/hdskins/PonyPreview.java @@ -10,23 +10,25 @@ import com.minelittlepony.api.pony.TriggerPixelType; import com.minelittlepony.client.MineLittlePony; import com.minelittlepony.hdskins.client.dummy.DummyPlayer; import com.minelittlepony.hdskins.client.dummy.PlayerPreview; +import com.minelittlepony.hdskins.client.dummy.TextureProxy; import com.minelittlepony.hdskins.profile.SkinType; import java.util.List; +import java.util.Optional; import java.util.stream.Collectors; class PonyPreview extends PlayerPreview { - public static final Identifier NO_SKIN_STEVE_PONY = new Identifier("minelittlepony", "textures/mob/noskin.png"); public static final Identifier NO_SKIN_ALEX_PONY = new Identifier("minelittlepony", "textures/mob/noskin_alex.png"); public static final Identifier NO_SKIN_SEAPONY = new Identifier("minelittlepony", "textures/mob/noskin_seapony.png"); - private final DummyPony localPony = new DummyPony(localTextures); - private final DummyPony remotePony = new DummyPony(remoteTextures); + @Override + protected DummyPlayer createEntity(TextureProxy textures) { + return new DummyPony(textures); + } public void setWet(boolean isWet) { - localPony.setWet(isWet); - remotePony.setWet(isWet); + apply(p -> ((DummyPony)p).setWet(isWet));; } @Override @@ -54,26 +56,17 @@ class PonyPreview extends PlayerPreview { } @Override - public DummyPlayer getRemote() { - return remotePony; - } - - @Override - public DummyPlayer getLocal() { - return localPony; - } - - @Override - public void renderWorldAndPlayer(DummyPlayer thePlayer, + public void renderWorldAndPlayer(Optional thePlayer, int frameLeft, int frameRight, int frameBottom, int frameTop, float xPos, float yPos, int horizon, int mouseX, int mouseY, int ticks, float partialTick, float scale, MatrixStack matrices) { super.renderWorldAndPlayer(thePlayer, frameLeft, frameRight, frameBottom, frameTop, xPos, yPos, horizon, mouseX, mouseY, ticks, partialTick, scale, matrices); - - IPonyData data = MineLittlePony.getInstance().getManager().getPony(thePlayer).getMetadata(); - int[] index = new int[1]; - data.getTriggerPixels().forEach((key, value) -> { - drawLegendBlock(matrices, index[0]++, frameLeft, frameTop, mouseX, mouseY, key, value); + thePlayer.ifPresent(p -> { + IPonyData data = MineLittlePony.getInstance().getManager().getPony(p).getMetadata(); + int[] index = new int[1]; + data.getTriggerPixels().forEach((key, value) -> { + drawLegendBlock(matrices, index[0]++, frameLeft, frameTop, mouseX, mouseY, key, value); + }); }); } diff --git a/src/main/java/com/minelittlepony/client/mixin/MixinEntityRenderers.java b/src/main/java/com/minelittlepony/client/mixin/MixinEntityRenderers.java index a6399125..b364f411 100644 --- a/src/main/java/com/minelittlepony/client/mixin/MixinEntityRenderers.java +++ b/src/main/java/com/minelittlepony/client/mixin/MixinEntityRenderers.java @@ -10,7 +10,7 @@ import net.minecraft.entity.EntityType; @Mixin(EntityRenderers.class) public interface MixinEntityRenderers { - @Accessor + @Accessor("RENDERER_FACTORIES") public static Map, EntityRendererFactory> getRendererFactories() { return null; } diff --git a/src/main/java/com/minelittlepony/client/model/armour/DefaultArmourTextureResolver.java b/src/main/java/com/minelittlepony/client/model/armour/DefaultArmourTextureResolver.java index 310c45a2..cbd3558f 100644 --- a/src/main/java/com/minelittlepony/client/model/armour/DefaultArmourTextureResolver.java +++ b/src/main/java/com/minelittlepony/client/model/armour/DefaultArmourTextureResolver.java @@ -80,8 +80,8 @@ public class DefaultArmourTextureResolver implements IArmourTextureResolver { } private String getCustom(ItemStack stack) { - if (stack.hasTag() && stack.getTag().contains("CustomModelData", NbtElement.NUMBER_TYPE)) { - return "custom_" + stack.getTag().getInt("CustomModelData"); + if (stack.hasNbt() && stack.getNbt().contains("CustomModelData", NbtElement.NUMBER_TYPE)) { + return "custom_" + stack.getNbt().getInt("CustomModelData"); } return "none"; } diff --git a/src/main/java/com/minelittlepony/client/render/LevitatingItemRenderer.java b/src/main/java/com/minelittlepony/client/render/LevitatingItemRenderer.java index 06508b6c..ec06dc0d 100644 --- a/src/main/java/com/minelittlepony/client/render/LevitatingItemRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/LevitatingItemRenderer.java @@ -12,12 +12,12 @@ import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.item.ItemRenderer; import net.minecraft.client.render.model.json.ModelTransformation; -import net.minecraft.client.texture.SpriteAtlasTexture; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.math.Vec3f; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; +import net.minecraft.screen.PlayerScreenHandler; import net.minecraft.util.Arm; import net.minecraft.util.Identifier; import net.minecraft.util.UseAction; @@ -40,7 +40,7 @@ public class LevitatingItemRenderer { } public static RenderLayer getRenderLayer() { - return getRenderLayer(SpriteAtlasTexture.BLOCK_ATLAS_TEXTURE); + return getRenderLayer(PlayerScreenHandler.BLOCK_ATLAS_TEXTURE); } /** diff --git a/src/main/java/com/minelittlepony/client/render/entity/feature/SkullFeature.java b/src/main/java/com/minelittlepony/client/render/entity/feature/SkullFeature.java index 8baebeb6..812d5cb8 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/feature/SkullFeature.java +++ b/src/main/java/com/minelittlepony/client/render/entity/feature/SkullFeature.java @@ -89,8 +89,8 @@ public class SkullFeature & IPo GameProfile profile = null; - if (itemstack.hasTag()) { - NbtCompound nbt = itemstack.getTag(); + if (itemstack.hasNbt()) { + NbtCompound nbt = itemstack.getNbt(); if (nbt.contains("SkullOwner", 10)) { profile = NbtHelper.toGameProfile(nbt.getCompound("SkullOwner")); diff --git a/src/main/java/com/minelittlepony/client/util/render/NativeUtil.java b/src/main/java/com/minelittlepony/client/util/render/NativeUtil.java index efbec93a..fc1d0556 100644 --- a/src/main/java/com/minelittlepony/client/util/render/NativeUtil.java +++ b/src/main/java/com/minelittlepony/client/util/render/NativeUtil.java @@ -16,8 +16,8 @@ import static org.lwjgl.opengl.GL11.*; public class NativeUtil { enum InternalFormat { - RGB(NativeImage.Format.BGR), - RGBA(NativeImage.Format.ABGR), + RGB(NativeImage.Format.RGB), + RGBA(NativeImage.Format.RGBA), LUMINANCE_ALPHA(NativeImage.Format.LUMINANCE_ALPHA), LUMINANCE(NativeImage.Format.LUMINANCE), @@ -43,21 +43,21 @@ public class NativeUtil { INTENSITY12(GL_INTENSITY12, NativeImage.Format.LUMINANCE), INTENSITY16(GL_INTENSITY16, NativeImage.Format.LUMINANCE), - R3_G3_B2(GL_R3_G3_B2, NativeImage.Format.BGR), - RGB4(GL_RGB4, NativeImage.Format.BGR), - RGB5(GL_RGB5, NativeImage.Format.BGR), - RGB8(GL_RGB8, NativeImage.Format.BGR), - RGB10(GL_RGB10, NativeImage.Format.BGR), - RGB12(GL_RGB12, NativeImage.Format.BGR), - RGB16(GL_RGB16, NativeImage.Format.BGR), + R3_G3_B2(GL_R3_G3_B2, NativeImage.Format.RGB), + RGB4(GL_RGB4, NativeImage.Format.RGB), + RGB5(GL_RGB5, NativeImage.Format.RGB), + RGB8(GL_RGB8, NativeImage.Format.RGB), + RGB10(GL_RGB10, NativeImage.Format.RGB), + RGB12(GL_RGB12, NativeImage.Format.RGB), + RGB16(GL_RGB16, NativeImage.Format.RGB), - RGBA2(GL_RGBA2, NativeImage.Format.ABGR), - RGBA4(GL_RGBA4, NativeImage.Format.ABGR), - RGB5_A1(GL_RGB5_A1, NativeImage.Format.ABGR), - RGBA8(GL_RGBA8, NativeImage.Format.ABGR), - RGB10_A2(GL_RGB10_A2, NativeImage.Format.ABGR), - RGBA12(GL_RGBA12, NativeImage.Format.ABGR), - RGBA16(GL_RGBA16, NativeImage.Format.ABGR); + RGBA2(GL_RGBA2, NativeImage.Format.RGBA), + RGBA4(GL_RGBA4, NativeImage.Format.RGBA), + RGB5_A1(GL_RGB5_A1, NativeImage.Format.RGBA), + RGBA8(GL_RGBA8, NativeImage.Format.RGBA), + RGB10_A2(GL_RGB10_A2, NativeImage.Format.RGBA), + RGBA12(GL_RGBA12, NativeImage.Format.RGBA), + RGBA16(GL_RGBA16, NativeImage.Format.RGBA); private final NativeImage.Format formatClass; private final int glId; @@ -65,7 +65,7 @@ public class NativeUtil { public static Map LOOKUP = new HashMap<>(); private InternalFormat(NativeImage.Format formatClass) { - this(formatClass.getPixelDataFormat(), formatClass); + this(formatClass.toGl(), formatClass); } private InternalFormat(int glId, NativeImage.Format formatClass) {