diff options
Diffstat (limited to 'src')
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": { |
