Unknown 6 tahun lalu
induk
melakukan
620d77c53f

+ 1 - 1
build.gradle

@@ -6,7 +6,7 @@ sourceCompatibility = 1.8
 targetCompatibility = 1.8
 
 archivesBaseName = "RoughlyEnoughItems"
-version = "1.0-2"
+version = "1.1-3"
 
 minecraft {
 }

+ 8 - 3
src/main/java/me/shedaniel/ClientListener.java

@@ -6,6 +6,7 @@ import me.shedaniel.impl.REIRecipeManager;
 import me.shedaniel.library.KeyBindManager;
 import me.shedaniel.listenerdefinitions.DoneLoading;
 import me.shedaniel.listenerdefinitions.RecipeLoadListener;
+import net.fabricmc.api.ClientModInitializer;
 import net.minecraft.client.settings.KeyBinding;
 import net.minecraft.enchantment.Enchantment;
 import net.minecraft.enchantment.EnchantmentHelper;
@@ -22,7 +23,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-public class ClientListener implements DoneLoading, RecipeLoadListener {
+public class ClientListener implements DoneLoading, ClientModInitializer, RecipeLoadListener {
     public static KeyBinding recipeKeybind;
     public static KeyBinding hideKeybind;
     public static KeyBinding useKeybind;
@@ -35,11 +36,14 @@ public class ClientListener implements DoneLoading, RecipeLoadListener {
         plugins = new ArrayList<>();
         stackList = new ArrayList<>();
         
+        buildItemList();
+    }
+    
+    @Override
+    public void onInitializeClient() {
         recipeKeybind = KeyBindManager.createKeybinding("key.rei.recipe", KeyEvent.VK_R, "key.rei.category", REIRenderHelper::recipeKeybind);
         hideKeybind = KeyBindManager.createKeybinding("key.rei.hide", KeyEvent.VK_O, "key.rei.category", REIRenderHelper::hideKeybind);
         useKeybind = KeyBindManager.createKeybinding("key.rei.use", KeyEvent.VK_U, "key.rei.category", REIRenderHelper::useKeybind);
-        
-        buildItemList();
     }
     
     private void buildItemList() {
@@ -78,4 +82,5 @@ public class ClientListener implements DoneLoading, RecipeLoadListener {
     public void recipesLoaded(RecipeManager recipeManager) {
         REIRecipeManager.instance().RecipesLoaded(recipeManager);
     }
+    
 }

+ 8 - 4
src/main/java/me/shedaniel/Core.java

@@ -2,14 +2,20 @@ package me.shedaniel;
 
 import me.shedaniel.library.KeyBindManager;
 import me.shedaniel.listenerdefinitions.IEvent;
+import me.shedaniel.listenerdefinitions.KeybindHandler;
 import me.shedaniel.listenerdefinitions.PacketAdder;
 import me.shedaniel.listeners.DrawContainerListener;
 import me.shedaniel.listeners.ResizeListener;
 import me.shedaniel.network.CheatPacket;
 import me.shedaniel.network.DeletePacket;
 import me.shedaniel.plugin.VanillaPlugin;
+import net.fabricmc.api.ClientModInitializer;
 import net.fabricmc.api.ModInitializer;
+import net.fabricmc.fabric.events.client.SpriteEvent;
+import net.minecraft.client.MinecraftClient;
+import net.minecraft.client.settings.KeyBinding;
 import net.minecraft.network.NetworkSide;
+import org.apache.commons.lang3.ArrayUtils;
 
 import java.util.ArrayList;
 import java.util.LinkedList;
@@ -18,7 +24,7 @@ import java.util.List;
 /**
  * Created by James on 7/27/2018.
  */
-public class Core implements ModInitializer, PacketAdder {
+public class Core implements PacketAdder, ClientModInitializer {
     @Override
     public void registerHandshakingPackets(PacketRegistrationReceiver receiver) {
     }
@@ -42,14 +48,13 @@ public class Core implements ModInitializer, PacketAdder {
     private static List<IEvent> events = new LinkedList<>();
     
     @Override
-    public void onInitialize() {
+    public void onInitializeClient() {
         registerEvents();
     }
     
     private void registerEvents() {
         registerEvent(new DrawContainerListener());
         registerEvent(new ResizeListener());
-        registerEvent(new KeyBindManager());
         registerEvent(new VanillaPlugin());
         registerEvent(new ClientListener());
     }
@@ -66,5 +71,4 @@ public class Core implements ModInitializer, PacketAdder {
         });
         return list;
     }
-    
 }

+ 6 - 2
src/main/java/me/shedaniel/gui/widget/REISlot.java

@@ -138,12 +138,16 @@ public class REISlot extends Control {
         REIRenderHelper.getItemRender().renderItemAndGlowInGui(getStack(), x, y);
         assert gui != null;
         if (((IMixinContainerGui) gui).getDraggedStack().isEmpty())
-            REIRenderHelper.getItemRender().renderItemOverlaysInGUIWithText(MinecraftClient.getInstance().fontRenderer, getStack(), x, y - 0, "");
+            REIRenderHelper.getItemRender().renderItemOverlaysInGUIWithText(MinecraftClient.getInstance().fontRenderer, getStack(), x, y - 0, getTextOverlay(getStack()));
         else
-            REIRenderHelper.getItemRender().renderItemOverlaysInGUIWithText(MinecraftClient.getInstance().fontRenderer, getStack(), x, y - 8, "");
+            REIRenderHelper.getItemRender().renderItemOverlaysInGUIWithText(MinecraftClient.getInstance().fontRenderer, getStack(), x, y - 8, getTextOverlay(getStack()));
         REIRenderHelper.getItemRender().zOffset = 0.0F;
     }
     
+    public String getTextOverlay(ItemStack stack) {
+        return "";
+    }
+    
     public String getMod() {
         if (!getStack().isEmpty()) {
             Identifier location = Registry.ITEM.getId(getStack().getItem());

+ 5 - 33
src/main/java/me/shedaniel/library/KeyBindManager.java

@@ -1,52 +1,24 @@
 package me.shedaniel.library;
 
-import me.shedaniel.listenerdefinitions.KeybindHandler;
-import me.shedaniel.listenerdefinitions.PreLoadOptions;
-import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.settings.KeyBinding;
-import org.apache.commons.lang3.ArrayUtils;
 
-import java.util.*;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Optional;
 
 /**
  * Created by James on 8/7/2018.
  */
-public class KeyBindManager implements PreLoadOptions, KeybindHandler {
+public class KeyBindManager {
     
-    private static boolean optionsLoaded = false;
-    private static List<KeyBinding> bindingsToAdd = new ArrayList<>();
     private static Map<KeyBinding, Sink> bindingFunctions = new HashMap<>();
     
     public static KeyBinding createKeybinding(String bindingName, int key, String categoryName, Sink function) {
-        KeyBinding newBinding;
-        newBinding = new KeyBinding(bindingName, key, categoryName);
-        if (optionsLoaded) {
-            ArrayUtils.add(MinecraftClient.getInstance().options.keysAll, newBinding);
-        } else {
-            bindingsToAdd.add(newBinding);
-        }
+        KeyBinding newBinding = new KeyBinding(bindingName, key, categoryName);
         bindingFunctions.put(newBinding, function);
-        addCategoryIfMissing(categoryName);
         return newBinding;
     }
     
-    private static void addCategoryIfMissing(String categoryName) {
-        /*if (!KeyBinding.CATEGORY_ORDER.containsKey(categoryName)){
-            KeyBinding.CATEGORY_ORDER.put(categoryName,KeyBinding.CATEGORY_ORDER.size()+1);
-        }*/
-    }
-    
-    @Override
-    public List<KeyBinding> loadOptions() {
-        optionsLoaded = true;
-        return bindingsToAdd;
-    }
-    
-    @Override
-    public void processKeybinds() {
-        bindingFunctions.keySet().stream().filter(KeyBinding::method_1434).forEach(f -> bindingFunctions.get(f).Sink()); //isPressed
-    }
-    
     public static boolean processGuiKeybinds(int typedChar) {
         Optional<KeyBinding> binding = bindingFunctions.keySet().stream().filter(f -> f.getDefaultKeyCode().getKeyCode() == typedChar).findFirst();
         if (binding.isPresent()) {

+ 0 - 9
src/main/java/me/shedaniel/listenerdefinitions/PreLoadOptions.java

@@ -1,9 +0,0 @@
-package me.shedaniel.listenerdefinitions;
-
-import net.minecraft.client.settings.KeyBinding;
-
-import java.util.List;
-
-public interface PreLoadOptions extends IEvent {
-    public List<KeyBinding> loadOptions();
-}

+ 0 - 7
src/main/java/me/shedaniel/mixins/MixinMinecraftClient.java

@@ -30,11 +30,4 @@ public class MixinMinecraftClient {
         profiler.end();
     }
     
-    @Inject(method = "method_1508", at = @At("HEAD"))
-    public void onProcessKeyBinds(CallbackInfo ci) {
-        for (KeybindHandler keybindHandler : Core.getListeners(KeybindHandler.class)) {
-            keybindHandler.processKeybinds();
-        }
-    }
-    
 }

+ 0 - 42
src/main/java/me/shedaniel/mixins/SettingsMixin.java

@@ -1,42 +0,0 @@
-package me.shedaniel.mixins;
-
-import me.shedaniel.Core;
-import me.shedaniel.listenerdefinitions.PreLoadOptions;
-import net.minecraft.client.settings.GameOptions;
-import net.minecraft.client.settings.KeyBinding;
-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 java.util.ArrayList;
-import java.util.List;
-
-/**
- * Created by James on 8/7/2018.
- */
-
-@Mixin(GameOptions.class)
-public class SettingsMixin {
-    
-    @Shadow public KeyBinding[] keysAll;
-    
-    public SettingsMixin() {
-        System.out.println("loaded");
-    }
-    
-    @Inject(method = "load", at = @At("HEAD"))
-    public void beforeLoadOptions(CallbackInfo ci) {
-        Core.getListeners(PreLoadOptions.class).stream().forEach(f -> processNewBindings(f.loadOptions()));
-    }
-    
-    private void processNewBindings(List<KeyBinding> newBindings) {
-        List<KeyBinding> toAdd = new ArrayList<>();
-        toAdd.addAll(newBindings);
-        for(KeyBinding keyBinding : keysAll)
-            toAdd.add(keyBinding);
-        keysAll = (KeyBinding[]) toAdd.toArray(new KeyBinding[0]);
-    }
-    
-}

+ 7 - 4
src/main/java/me/shedaniel/plugin/blastfurnace/VanillaBlastFurnaceRecipe.java

@@ -2,13 +2,18 @@ package me.shedaniel.plugin.blastfurnace;
 
 import me.shedaniel.api.IRecipe;
 import net.minecraft.block.BlastFurnaceBlock;
+import net.minecraft.block.entity.BlastFurnaceBlockEntity;
+import net.minecraft.block.entity.FurnaceBlockEntity;
+import net.minecraft.item.Item;
 import net.minecraft.item.ItemStack;
 import net.minecraft.recipe.Ingredient;
 import net.minecraft.recipe.smelting.BlastingRecipe;
 import net.minecraft.recipe.smelting.SmokingRecipe;
 
+import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 public class VanillaBlastFurnaceRecipe implements IRecipe<ItemStack> {
     private final BlastingRecipe recipe;
@@ -33,12 +38,10 @@ public class VanillaBlastFurnaceRecipe implements IRecipe<ItemStack> {
     public List<List<ItemStack>> getInput() {
         List<List<ItemStack>> input = new LinkedList<>();
         for(Ingredient ingredient : recipe.getPreviewInputs()) {
-            List<ItemStack> ingredients = new LinkedList<>();
-            for(ItemStack matchingStack : ingredient.getStackArray()) {
-                ingredients.add(matchingStack);
-            }
+            List<ItemStack> ingredients = Arrays.asList(ingredient.getStackArray());
             input.add(ingredients);
         }
+        input.add(BlastFurnaceBlockEntity.getBurnTimeMap().keySet().stream().map(Item::getDefaultStack).collect(Collectors.toList()));
         return input;
     }
 }

+ 8 - 2
src/main/java/me/shedaniel/plugin/crafting/VanillaCraftingCategory.java

@@ -60,8 +60,14 @@ public class VanillaCraftingCategory implements IDisplayCategory<VanillaCrafting
             } else if (!input.get(i).isEmpty())
                 slots.get(i).setStackList(input.get(i));
         }
-        REISlot slot = new REISlot(130, 75 + 18 + number * 75);
-        
+        REISlot slot = new REISlot(130, 75 + 18 + number * 75) {
+            @Override
+            public String getTextOverlay(ItemStack stack) {
+                if (stack.getAmount() == 1)
+                    return "";
+                return stack.getAmount() + "";
+            }
+        };
         slot.setDrawBackground(true);
         slot.setStack(recipes.get(number).getOutput().get(0).copy());
         slots.add(slot);

+ 6 - 4
src/main/java/me/shedaniel/plugin/furnace/VanillaFurnaceRecipe.java

@@ -1,12 +1,16 @@
 package me.shedaniel.plugin.furnace;
 
 import me.shedaniel.api.IRecipe;
+import net.minecraft.block.entity.FurnaceBlockEntity;
+import net.minecraft.item.Item;
 import net.minecraft.item.ItemStack;
 import net.minecraft.recipe.Ingredient;
 import net.minecraft.recipe.smelting.SmeltingRecipe;
 
+import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 public class VanillaFurnaceRecipe implements IRecipe<ItemStack> {
     private final SmeltingRecipe recipe;
@@ -31,12 +35,10 @@ public class VanillaFurnaceRecipe implements IRecipe<ItemStack> {
     public List<List<ItemStack>> getInput() {
         List<List<ItemStack>> input = new LinkedList<>();
         for(Ingredient ingredient : recipe.getPreviewInputs()) {
-            List<ItemStack> ingredients = new LinkedList<>();
-            for(ItemStack matchingStack : ingredient.getStackArray()) {
-                ingredients.add(matchingStack);
-            }
+            List<ItemStack> ingredients = Arrays.asList(ingredient.getStackArray());
             input.add(ingredients);
         }
+        input.add(FurnaceBlockEntity.getBurnTimeMap().keySet().stream().map(Item::getDefaultStack).collect(Collectors.toList()));
         return input;
     }
 }

+ 6 - 5
src/main/java/me/shedaniel/plugin/smoker/VanillaSmokerRecipe.java

@@ -1,13 +1,16 @@
 package me.shedaniel.plugin.smoker;
 
 import me.shedaniel.api.IRecipe;
+import net.minecraft.block.entity.SmokerBlockEntity;
+import net.minecraft.item.Item;
 import net.minecraft.item.ItemStack;
 import net.minecraft.recipe.Ingredient;
-import net.minecraft.recipe.smelting.SmeltingRecipe;
 import net.minecraft.recipe.smelting.SmokingRecipe;
 
+import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 public class VanillaSmokerRecipe implements IRecipe<ItemStack> {
     private final SmokingRecipe recipe;
@@ -32,12 +35,10 @@ public class VanillaSmokerRecipe implements IRecipe<ItemStack> {
     public List<List<ItemStack>> getInput() {
         List<List<ItemStack>> input = new LinkedList<>();
         for(Ingredient ingredient : recipe.getPreviewInputs()) {
-            List<ItemStack> ingredients = new LinkedList<>();
-            for(ItemStack matchingStack : ingredient.getStackArray()) {
-                ingredients.add(matchingStack);
-            }
+            List<ItemStack> ingredients = Arrays.asList(ingredient.getStackArray());
             input.add(ingredients);
         }
+        input.add(SmokerBlockEntity.getBurnTimeMap().keySet().stream().map(Item::getDefaultStack).collect(Collectors.toList()));
         return input;
     }
 }

+ 3 - 2
src/main/resources/fabric.mod.json

@@ -2,13 +2,14 @@
   "id": "roughlyenoughitems",
   "name": "RoughlyEnoughItems",
   "description": "To allow players to view items and recipes.",
-  "version": "1.0-SNAPSHOT",
+  "version": "1.1-SNAPSHOT",
   "side": "client",
   "authors": [
     "Danielshe"
   ],
   "initializers": [
-    "me.shedaniel.Core"
+    "me.shedaniel.Core",
+    "me.shedaniel.ClientListener"
   ],
   "requires": {