Unknown 6 жил өмнө
parent
commit
be9a1980ac

+ 2 - 0
CHANGELOG.md

@@ -1,3 +1,5 @@
+# v2.5.0.72
+- Updated to 19w12b
 # v2.5.0.71
 - Removed mouseScrolled Override in mixins
 - Added spectator mode in gamemode switcher

+ 5 - 5
gradle.properties

@@ -1,9 +1,9 @@
-mod_version=2.5.0.71
-minecraft_version=19w12a
-yarn_version=19w12a.2
-fabric_version=0.2.4.113
+mod_version=2.5.0.72
+minecraft_version=19w12b
+yarn_version=19w12b.1
+fabric_version=0.2.5.114
 fabricloader_version=0.3.7.109
 pluginloader_version=1.14-1.0.6-8
 developermode_version=1.0.3
 jankson_version=1.1.0
-cloth_version=0.1.2.11
+cloth_version=0.1.3.12

+ 1 - 1
src/main/java/me/shedaniel/rei/client/ClientHelper.java

@@ -112,7 +112,7 @@ public class ClientHelper implements ClientModInitializer {
         List<DefaultedList<ItemStack>> field_7543 = ImmutableList.of(MinecraftClient.getInstance().player.inventory.main, MinecraftClient.getInstance().player.inventory.armor, MinecraftClient.getInstance().player.inventory.offHand);
         List<ItemStack> inventoryStacks = new ArrayList<>();
         field_7543.forEach(itemStacks -> itemStacks.forEach(itemStack -> {
-            if (!itemStack.getItem().equals(Items.AIR))
+            if (!itemStack.isEmpty())
                 inventoryStacks.add(itemStack);
         }));
         return inventoryStacks;

+ 14 - 14
src/main/java/me/shedaniel/rei/client/ConfigManager.java

@@ -131,21 +131,21 @@ public class ConfigManager implements me.shedaniel.rei.api.ConfigManager {
     @Override
     public void openConfigScreen(Screen parent) {
         ClothConfigScreen.Builder builder = new ClothConfigScreen.Builder(parent, I18n.translate("text.rei.config.title"), null);
-        builder.addCategory(I18n.translate("text.rei.config.general")).addOption(new BooleanListEntry("text.rei.config.cheating", config.cheating, bool -> config.cheating = bool));
-        ConfigScreenBuilder.CategoryBuilder appearance = builder.addCategory(I18n.translate("text.rei.config.appearance"));
-        appearance.addOption(new BooleanListEntry("text.rei.config.side_search_box", config.sideSearchField, bool -> config.sideSearchField = bool));
+        builder.addCategory("text.rei.config.general").addOption(new BooleanListEntry("text.rei.config.cheating", config.cheating, "text.cloth.reset_value", () -> false, bool -> config.cheating = bool));
+        ConfigScreenBuilder.CategoryBuilder appearance = builder.addCategory("text.rei.config.appearance");
+        appearance.addOption(new BooleanListEntry("text.rei.config.side_search_box", config.sideSearchField, "text.cloth.reset_value", () -> false, bool -> config.sideSearchField = bool));
         appearance.addOption(new ItemListOrderingEntry("text.rei.config.list_ordering", new Pair<>(config.itemListOrdering, config.isAscending)));
-        appearance.addOption(new BooleanListEntry("text.rei.config.mirror_rei", config.mirrorItemPanel, bool -> config.mirrorItemPanel = bool));
-        appearance.addOption(new IntegerListEntry("text.rei.config.max_recipes_per_page", config.maxRecipePerPage, i -> config.maxRecipePerPage = i).setMinimum(2).setMaximum(99));
-        ConfigScreenBuilder.CategoryBuilder modules = builder.addCategory(I18n.translate("text.rei.config.modules"));
-        modules.addOption(new BooleanListEntry("text.rei.config.enable_craftable_only", config.enableCraftableOnlyButton, bool -> config.enableCraftableOnlyButton = bool));
-        modules.addOption(new BooleanListEntry("text.rei.config.enable_util_buttons", config.showUtilsButtons, bool -> config.showUtilsButtons = bool));
-        modules.addOption(new BooleanListEntry("text.rei.config.disable_recipe_book", config.disableRecipeBook, bool -> config.disableRecipeBook = bool));
-        ConfigScreenBuilder.CategoryBuilder advanced = builder.addCategory(I18n.translate("text.rei.config.advanced"));
-        advanced.addOption(new StringListEntry("text.rei.give_command", config.giveCommand, s -> config.giveCommand = s));
-        advanced.addOption(new StringListEntry("text.rei.gamemode_command", config.gamemodeCommand, s -> config.gamemodeCommand = s));
-        advanced.addOption(new StringListEntry("text.rei.weather_command", config.weatherCommand, s -> config.weatherCommand = s));
-        advanced.addOption(new BooleanListEntry("text.rei.config.prefer_visible_recipes", config.preferVisibleRecipes, bool -> config.preferVisibleRecipes = bool));
+        appearance.addOption(new BooleanListEntry("text.rei.config.mirror_rei", config.mirrorItemPanel, "text.cloth.reset_value", () -> false, bool -> config.mirrorItemPanel = bool));
+        appearance.addOption(new IntegerListEntry("text.rei.config.max_recipes_per_page", config.maxRecipePerPage, "text.cloth.reset_value", () -> 3, i -> config.maxRecipePerPage = i).setMinimum(2).setMaximum(99));
+        ConfigScreenBuilder.CategoryBuilder modules = builder.addCategory("text.rei.config.modules");
+        modules.addOption(new BooleanListEntry("text.rei.config.enable_craftable_only", config.enableCraftableOnlyButton, "text.cloth.reset_value", () -> true, bool -> config.enableCraftableOnlyButton = bool));
+        modules.addOption(new BooleanListEntry("text.rei.config.enable_util_buttons", config.showUtilsButtons, "text.cloth.reset_value", () -> false, bool -> config.showUtilsButtons = bool));
+        modules.addOption(new BooleanListEntry("text.rei.config.disable_recipe_book", config.disableRecipeBook, "text.cloth.reset_value", () -> false, bool -> config.disableRecipeBook = bool));
+        ConfigScreenBuilder.CategoryBuilder advanced = builder.addCategory("text.rei.config.advanced");
+        advanced.addOption(new StringListEntry("text.rei.give_command", config.giveCommand, "text.cloth.reset_value", () -> "/give {player_name} {item_identifier}{nbt} {count}", s -> config.giveCommand = s));
+        advanced.addOption(new StringListEntry("text.rei.gamemode_command", config.gamemodeCommand, "text.cloth.reset_value", () -> "/gamemode {gamemode}", s -> config.gamemodeCommand = s));
+        advanced.addOption(new StringListEntry("text.rei.weather_command", config.weatherCommand, "text.cloth.reset_value", () -> "/weather {weather}", s -> config.weatherCommand = s));
+        advanced.addOption(new BooleanListEntry("text.rei.config.prefer_visible_recipes", config.preferVisibleRecipes, "text.cloth.reset_value", () -> false, bool -> config.preferVisibleRecipes = bool));
         builder.setOnSave(savedConfig -> {
             try {
                 ConfigManager.this.saveConfig();

+ 1 - 1
src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java

@@ -197,7 +197,7 @@ public class ContainerScreenOverlay extends ScreenComponent {
             
             @Override
             public void onLabelClicked() {
-                MinecraftClient.getInstance().getSoundLoader().play(PositionedSoundInstance.master(SoundEvents.UI_BUTTON_CLICK, 1.0F));
+                MinecraftClient.getInstance().getSoundManager().play(PositionedSoundInstance.master(SoundEvents.UI_BUTTON_CLICK, 1.0F));
                 page = 0;
                 itemListOverlay.updateList(getItemListArea(), page, searchTerm);
             }

+ 5 - 3
src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java

@@ -17,6 +17,7 @@ import net.minecraft.client.render.GuiLighting;
 import net.minecraft.client.resource.language.I18n;
 import net.minecraft.client.util.Window;
 import net.minecraft.sound.SoundEvents;
+import net.minecraft.text.StringTextComponent;
 import net.minecraft.text.TranslatableTextComponent;
 import net.minecraft.util.Identifier;
 import net.minecraft.util.math.MathHelper;
@@ -49,6 +50,7 @@ public class RecipeViewingScreen extends Screen {
     private ButtonWidget recipeBack, recipeNext, categoryBack, categoryNext;
     
     public RecipeViewingScreen(Window window, Map<RecipeCategory, List<RecipeDisplay>> categoriesMap) {
+        super(new StringTextComponent(""));
         this.categoryPages = 0;
         this.window = window;
         this.widgets = Lists.newArrayList();
@@ -148,7 +150,7 @@ public class RecipeViewingScreen extends Screen {
             
             @Override
             public void onLabelClicked() {
-                MinecraftClient.getInstance().getSoundLoader().play(PositionedSoundInstance.master(SoundEvents.UI_BUTTON_CLICK, 1.0F));
+                MinecraftClient.getInstance().getSoundManager().play(PositionedSoundInstance.master(SoundEvents.UI_BUTTON_CLICK, 1.0F));
                 ClientHelper.executeViewAllRecipesKeyBind();
             }
         });
@@ -200,7 +202,7 @@ public class RecipeViewingScreen extends Screen {
             
             @Override
             public void onLabelClicked() {
-                MinecraftClient.getInstance().getSoundLoader().play(PositionedSoundInstance.master(SoundEvents.UI_BUTTON_CLICK, 1.0F));
+                MinecraftClient.getInstance().getSoundManager().play(PositionedSoundInstance.master(SoundEvents.UI_BUTTON_CLICK, 1.0F));
                 RecipeViewingScreen.this.choosePageActivated = true;
                 RecipeViewingScreen.this.onInitialized();
             }
@@ -231,7 +233,7 @@ public class RecipeViewingScreen extends Screen {
                     @Override
                     public boolean mouseClicked(double mouseX, double mouseY, int button) {
                         if (getBounds().contains(mouseX, mouseY)) {
-                            MinecraftClient.getInstance().getSoundLoader().play(PositionedSoundInstance.master(SoundEvents.UI_BUTTON_CLICK, 1.0F));
+                            MinecraftClient.getInstance().getSoundManager().play(PositionedSoundInstance.master(SoundEvents.UI_BUTTON_CLICK, 1.0F));
                             if (getId() + categoryPages * 6 == categories.indexOf(selectedCategory))
                                 return false;
                             selectedCategory = categories.get(getId() + categoryPages * 6);

+ 37 - 18
src/main/java/me/shedaniel/rei/gui/config/ItemListOrderingEntry.java

@@ -1,5 +1,6 @@
 package me.shedaniel.rei.gui.config;
 
+import com.google.common.collect.Lists;
 import javafx.util.Pair;
 import me.shedaniel.cloth.api.ClientUtils;
 import me.shedaniel.cloth.gui.ClothConfigScreen.ListEntry;
@@ -14,49 +15,65 @@ import net.minecraft.client.util.Window;
 
 import java.awt.*;
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.List;
+import java.util.Optional;
 import java.util.concurrent.atomic.AtomicReference;
 
 public class ItemListOrderingEntry extends ListEntry {
     private AtomicReference<Pair<ItemListOrdering, Boolean>> value;
     private ButtonWidget buttonWidget;
+    private ButtonWidget resetButton;
+    private List<InputListener> widgets;
     
     public ItemListOrderingEntry(String fieldName, Pair<ItemListOrdering, Boolean> val) {
         super(fieldName);
         this.value = new AtomicReference(val);
-        this.buttonWidget = new ButtonWidget(0, 0, 150, 20, "") {
-            public void onPressed() {
-                int index = Arrays.asList(ItemListOrdering.values()).indexOf(value.get().getKey()) + 1;
-                boolean currentAscending = value.get().getValue();
-                if (index >= ItemListOrdering.values().length) {
-                    index = 0;
-                    currentAscending = !currentAscending;
-                }
-                ItemListOrderingEntry.this.value.set(new Pair<>(ItemListOrdering.values()[index], currentAscending));
-                ((ListWidget) ItemListOrderingEntry.this.getParent()).getScreen().setEdited(true);
+        this.buttonWidget = new ButtonWidget(0, 0, 150, 20, "", widget -> {
+            int index = Arrays.asList(ItemListOrdering.values()).indexOf(value.get().getKey()) + 1;
+            boolean currentAscending = value.get().getValue();
+            if (index >= ItemListOrdering.values().length) {
+                index = 0;
+                currentAscending = !currentAscending;
             }
-        };
+            ItemListOrderingEntry.this.value.set(new Pair<>(ItemListOrdering.values()[index], currentAscending));
+            ((ListWidget) ItemListOrderingEntry.this.getParent()).getScreen().setEdited(true);
+        });
+        this.resetButton = new ButtonWidget(0, 0, MinecraftClient.getInstance().textRenderer.getStringWidth(I18n.translate("text.cloth.reset_value")) + 6, 20, I18n.translate("text.cloth.reset_value"), (widget) -> {
+            this.value.set((Pair) getDefaultValue().get());
+            ((ListWidget) this.getParent()).getScreen().setEdited(true);
+        });
+        this.widgets = Lists.newArrayList(this.buttonWidget, this.resetButton);
     }
     
     public Object getObject() {
         return this.value.get();
     }
     
+    @Override
+    public Optional<Object> getDefaultValue() {
+        return Optional.of(new Pair<>(ItemListOrdering.registry, true));
+    }
+    
     public void draw(int entryWidth, int height, int i3, int i4, boolean isSelected, float delta) {
         Window window = MinecraftClient.getInstance().window;
         Point mouse = ClientUtils.getMouseLocation();
+        this.resetButton.active = this.getDefaultValue().isPresent() && (((Pair<ItemListOrdering, Boolean>) this.getDefaultValue().get()).getKey() != this.value.get().getKey() || ((Pair<ItemListOrdering, Boolean>) this.getDefaultValue().get()).getValue().booleanValue() != this.value.get().getValue().booleanValue());
+        this.resetButton.y = this.getY();
         this.buttonWidget.y = this.getY();
         this.buttonWidget.setMessage(I18n.translate("text.rei.config.list_ordering_button", I18n.translate(value.get().getKey().getNameTranslationKey()), I18n.translate(value.get().getValue() ? "ordering.rei.ascending" : "ordering.rei.descending")));
         if (MinecraftClient.getInstance().textRenderer.isRightToLeft()) {
             MinecraftClient.getInstance().textRenderer.drawWithShadow(I18n.translate(this.getFieldName(), new Object[0]), (float) (window.getScaledWidth() - this.getX() - MinecraftClient.getInstance().textRenderer.getStringWidth(I18n.translate(this.getFieldName(), new Object[0]))), (float) (this.getY() + 5), 16777215);
-            this.buttonWidget.x = this.getX();
+            this.resetButton.x = this.getX();
+            this.buttonWidget.x = this.getX() + this.resetButton.getWidth() + 2;
+            this.buttonWidget.setWidth(150 - this.resetButton.getWidth() - 2);
         } else {
             MinecraftClient.getInstance().textRenderer.drawWithShadow(I18n.translate(this.getFieldName(), new Object[0]), (float) this.getX(), (float) (this.getY() + 5), 16777215);
-            this.buttonWidget.x = window.getScaledWidth() - this.getX() - this.buttonWidget.getWidth();
+            this.resetButton.x = window.getScaledWidth() - this.getX() - this.resetButton.getWidth();
+            this.buttonWidget.x = window.getScaledWidth() - this.getX() - 150;
+            this.buttonWidget.setWidth(150 - this.resetButton.getWidth() - 2);
         }
-        
         this.buttonWidget.render(mouse.x, mouse.y, delta);
+        this.resetButton.render(mouse.x, mouse.y, delta);
     }
     
     public String getYesNoText(boolean bool) {
@@ -65,11 +82,11 @@ public class ItemListOrderingEntry extends ListEntry {
     
     @Override
     public List<? extends InputListener> getInputListeners() {
-        return Collections.singletonList(buttonWidget);
+        return widgets;
     }
     
     public boolean isActive() {
-        return this.buttonWidget.isHovered();
+        return this.buttonWidget.isHovered() || this.resetButton.isHovered();
     }
     
     public void setActive(boolean b) {
@@ -83,7 +100,9 @@ public class ItemListOrderingEntry extends ListEntry {
     }
     
     public boolean mouseClicked(double double_1, double double_2, int int_1) {
-        return this.buttonWidget.mouseClicked(double_1, double_2, int_1);
+        if (this.buttonWidget.mouseClicked(double_1, double_2, int_1))
+            return true;
+        return this.resetButton.mouseClicked(double_1, double_2, int_1);
     }
     
     @Override

+ 4 - 2
src/main/java/me/shedaniel/rei/gui/credits/CreditsScreen.java

@@ -1,18 +1,20 @@
 package me.shedaniel.rei.gui.credits;
 
 import me.shedaniel.rei.client.ScreenHelper;
+import me.shedaniel.rei.gui.widget.ButtonWidget;
 import net.minecraft.client.gui.ContainerScreen;
 import net.minecraft.client.gui.Screen;
-import net.minecraft.client.gui.widget.ButtonWidget;
 import net.minecraft.client.resource.language.I18n;
 import net.minecraft.text.StringTextComponent;
 
 public class CreditsScreen extends Screen {
     
     private Screen parent;
+    private ButtonWidget buttonDone;
     private CreditsEntryListWidget entryListWidget;
     
     public CreditsScreen(Screen parent) {
+        super(new StringTextComponent(""));
         this.parent = parent;
     }
     
@@ -34,7 +36,7 @@ public class CreditsScreen extends Screen {
         for(String line : I18n.translate("text.rei.credit.text").split("\n"))
             entryListWidget.creditsAddEntry(new CreditsEntry(new StringTextComponent(line)));
         entryListWidget.creditsAddEntry(new CreditsEntry(new StringTextComponent("")));
-        addButton(new ButtonWidget(screenWidth / 2 - 100, screenHeight - 26, I18n.translate("gui.done")) {
+        listeners.add(buttonDone = new ButtonWidget(screenWidth / 2 - 100, screenHeight - 26, 200, 20, I18n.translate("gui.done")) {
             @Override
             public void onPressed() {
                 CreditsScreen.this.client.openScreen(parent);

+ 2 - 2
src/main/java/me/shedaniel/rei/gui/widget/ButtonWidget.java

@@ -124,7 +124,7 @@ public abstract class ButtonWidget extends HighlightableWidget {
     @Override
     public boolean mouseClicked(double mouseX, double mouseY, int button) {
         if (bounds.contains(mouseX, mouseY) && enabled && button == 0) {
-            MinecraftClient.getInstance().getSoundLoader().play(PositionedSoundInstance.master(SoundEvents.UI_BUTTON_CLICK, 1.0F));
+            MinecraftClient.getInstance().getSoundManager().play(PositionedSoundInstance.master(SoundEvents.UI_BUTTON_CLICK, 1.0F));
             onPressed();
             return true;
         }
@@ -137,7 +137,7 @@ public abstract class ButtonWidget extends HighlightableWidget {
             if (int_1 != 257 && int_1 != 32 && int_1 != 335) {
                 return false;
             } else {
-                MinecraftClient.getInstance().getSoundLoader().play(PositionedSoundInstance.master(SoundEvents.UI_BUTTON_CLICK, 1.0F));
+                MinecraftClient.getInstance().getSoundManager().play(PositionedSoundInstance.master(SoundEvents.UI_BUTTON_CLICK, 1.0F));
                 this.onPressed();
                 return true;
             }

+ 5 - 0
src/main/java/me/shedaniel/rei/mixin/MixinContainerScreen.java

@@ -9,6 +9,7 @@ import net.minecraft.client.gui.Screen;
 import net.minecraft.client.gui.ingame.CreativePlayerInventoryScreen;
 import net.minecraft.container.Slot;
 import net.minecraft.item.ItemGroup;
+import net.minecraft.text.TextComponent;
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;
 import org.spongepowered.asm.mixin.injection.At;
@@ -29,6 +30,10 @@ public class MixinContainerScreen extends Screen implements ContainerScreenHooks
     @Shadow
     protected Slot focusedSlot;
     
+    protected MixinContainerScreen(TextComponent textComponent_1) {
+        super(textComponent_1);
+    }
+    
     @Override
     public int rei_getContainerLeft() {
         return left;