aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/main/java/me/shedaniel/ClientListener.java11
-rwxr-xr-xsrc/main/java/me/shedaniel/Core.java12
-rwxr-xr-xsrc/main/java/me/shedaniel/gui/widget/REISlot.java8
-rwxr-xr-xsrc/main/java/me/shedaniel/library/KeyBindManager.java38
-rwxr-xr-xsrc/main/java/me/shedaniel/listenerdefinitions/PreLoadOptions.java9
-rw-r--r--src/main/java/me/shedaniel/mixins/MixinMinecraftClient.java7
-rwxr-xr-xsrc/main/java/me/shedaniel/mixins/SettingsMixin.java42
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/blastfurnace/VanillaBlastFurnaceRecipe.java11
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/crafting/VanillaCraftingCategory.java10
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/furnace/VanillaFurnaceRecipe.java10
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/smoker/VanillaSmokerRecipe.java11
-rwxr-xr-xsrc/main/resources/fabric.mod.json5
12 files changed, 57 insertions, 117 deletions
diff --git a/src/main/java/me/shedaniel/ClientListener.java b/src/main/java/me/shedaniel/ClientListener.java
index 7d7d2f65b..54629ae55 100755
--- a/src/main/java/me/shedaniel/ClientListener.java
+++ b/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);
}
+
}
diff --git a/src/main/java/me/shedaniel/Core.java b/src/main/java/me/shedaniel/Core.java
index b5c28f61b..f2f5c5541 100755
--- a/src/main/java/me/shedaniel/Core.java
+++ b/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;
}
-
}
diff --git a/src/main/java/me/shedaniel/gui/widget/REISlot.java b/src/main/java/me/shedaniel/gui/widget/REISlot.java
index 5ed1fe0aa..bf6159e2c 100755
--- a/src/main/java/me/shedaniel/gui/widget/REISlot.java
+++ b/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());
diff --git a/src/main/java/me/shedaniel/library/KeyBindManager.java b/src/main/java/me/shedaniel/library/KeyBindManager.java
index 8eb0bad20..bbce1b3f6 100755
--- a/src/main/java/me/shedaniel/library/KeyBindManager.java
+++ b/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()) {
diff --git a/src/main/java/me/shedaniel/listenerdefinitions/PreLoadOptions.java b/src/main/java/me/shedaniel/listenerdefinitions/PreLoadOptions.java
deleted file mode 100755
index e00f618db..000000000
--- a/src/main/java/me/shedaniel/listenerdefinitions/PreLoadOptions.java
+++ /dev/null
@@ -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();
-}
diff --git a/src/main/java/me/shedaniel/mixins/MixinMinecraftClient.java b/src/main/java/me/shedaniel/mixins/MixinMinecraftClient.java
index 5b0b20961..110ff5beb 100644
--- a/src/main/java/me/shedaniel/mixins/MixinMinecraftClient.java
+++ b/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();
- }
- }
-
}
diff --git a/src/main/java/me/shedaniel/mixins/SettingsMixin.java b/src/main/java/me/shedaniel/mixins/SettingsMixin.java
deleted file mode 100755
index 5182f5ccd..000000000
--- a/src/main/java/me/shedaniel/mixins/SettingsMixin.java
+++ /dev/null
@@ -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]);
- }
-
-}
diff --git a/src/main/java/me/shedaniel/plugin/blastfurnace/VanillaBlastFurnaceRecipe.java b/src/main/java/me/shedaniel/plugin/blastfurnace/VanillaBlastFurnaceRecipe.java
index 3032c2401..3eabdca66 100755
--- a/src/main/java/me/shedaniel/plugin/blastfurnace/VanillaBlastFurnaceRecipe.java
+++ b/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;
}
}
diff --git a/src/main/java/me/shedaniel/plugin/crafting/VanillaCraftingCategory.java b/src/main/java/me/shedaniel/plugin/crafting/VanillaCraftingCategory.java
index dec94db05..30c6a0726 100755
--- a/src/main/java/me/shedaniel/plugin/crafting/VanillaCraftingCategory.java
+++ b/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);
diff --git a/src/main/java/me/shedaniel/plugin/furnace/VanillaFurnaceRecipe.java b/src/main/java/me/shedaniel/plugin/furnace/VanillaFurnaceRecipe.java
index 97c6b5460..8023741b4 100755
--- a/src/main/java/me/shedaniel/plugin/furnace/VanillaFurnaceRecipe.java
+++ b/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;
}
}
diff --git a/src/main/java/me/shedaniel/plugin/smoker/VanillaSmokerRecipe.java b/src/main/java/me/shedaniel/plugin/smoker/VanillaSmokerRecipe.java
index 7a6d0fe95..f05a01fc7 100755
--- a/src/main/java/me/shedaniel/plugin/smoker/VanillaSmokerRecipe.java
+++ b/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;
}
}
diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json
index 6feb0ba7e..196b2f610 100755
--- a/src/main/resources/fabric.mod.json
+++ b/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": {