diff options
Diffstat (limited to 'src/main')
6 files changed, 46 insertions, 20 deletions
diff --git a/src/main/java/me/shedaniel/rei/api/ConfigObject.java b/src/main/java/me/shedaniel/rei/api/ConfigObject.java index f60d6bc35..187e3b76e 100644 --- a/src/main/java/me/shedaniel/rei/api/ConfigObject.java +++ b/src/main/java/me/shedaniel/rei/api/ConfigObject.java @@ -10,6 +10,7 @@ import me.shedaniel.rei.gui.config.ItemListOrdering; import me.shedaniel.rei.gui.config.RecipeScreenType; import me.shedaniel.rei.gui.config.SearchFieldLocation; import me.zeroeightsix.fiber.tree.ConfigNode; +import me.zeroeightsix.fiber.tree.ConfigValue; public interface ConfigObject { diff --git a/src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java b/src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java index 2489baf0f..c7e85edb5 100644 --- a/src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java +++ b/src/main/java/me/shedaniel/rei/gui/VillagerRecipeViewingScreen.java @@ -33,10 +33,7 @@ import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.util.math.MathHelper; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; public class VillagerRecipeViewingScreen extends Screen { @@ -146,12 +143,27 @@ public class VillagerRecipeViewingScreen extends Screen { selectedRecipeIndex = finalIndex; VillagerRecipeViewingScreen.this.init(); } - + + @Override + public boolean isHovered(int mouseX, int mouseY) { + return (isMouseOver(mouseX, mouseY) && scrollListBounds.contains(mouseX, mouseY)) || focused; + } + @Override protected int getTextureId(boolean boolean_1) { enabled = selectedRecipeIndex != finalIndex; return super.getTextureId(boolean_1); } + + @Override + public boolean mouseClicked(double mouseX, double mouseY, int button) { + if ((isMouseOver(mouseX, mouseY) && scrollListBounds.contains(mouseX, mouseY)) && enabled && button == 0) { + minecraft.getSoundManager().play(PositionedSoundInstance.master(SoundEvents.UI_BUTTON_CLICK, 1.0F)); + onPressed(); + return true; + } + return false; + } }); index++; } diff --git a/src/main/java/me/shedaniel/rei/gui/renderers/FluidRenderer.java b/src/main/java/me/shedaniel/rei/gui/renderers/FluidRenderer.java index 1e6f6663f..db34ce0ac 100644 --- a/src/main/java/me/shedaniel/rei/gui/renderers/FluidRenderer.java +++ b/src/main/java/me/shedaniel/rei/gui/renderers/FluidRenderer.java @@ -23,6 +23,8 @@ import net.minecraft.client.texture.Sprite; import net.minecraft.client.texture.SpriteAtlasTexture; import net.minecraft.fluid.Fluid; import net.minecraft.util.Lazy; +import net.minecraft.util.Pair; +import net.minecraft.util.math.BlockPos; import net.minecraft.util.registry.Registry; import java.util.Collections; @@ -30,13 +32,16 @@ import java.util.List; public abstract class FluidRenderer extends Renderer { public boolean drawTooltip = false; - public Lazy<Sprite> sprite = new Lazy<>(() -> { + public Lazy<Pair<Sprite, Integer>> sprite = new Lazy<>(() -> { try { FluidRenderHandler fluidRenderHandler = FluidRenderHandlerRegistry.INSTANCE.get(getFluid()); if (fluidRenderHandler == null) return null; - Sprite[] sprites = fluidRenderHandler.getFluidSprites(null, null, getFluid().getDefaultState()); - return sprites[0]; + Sprite[] sprites = fluidRenderHandler.getFluidSprites(MinecraftClient.getInstance().world, MinecraftClient.getInstance().world == null ? null : BlockPos.ORIGIN, getFluid().getDefaultState()); + int color = -1; + if (MinecraftClient.getInstance().world != null) + color = fluidRenderHandler.getFluidColor(MinecraftClient.getInstance().world, BlockPos.ORIGIN, getFluid().getDefaultState()); + return new Pair<>(sprites[0], color); } catch (Exception e) { e.printStackTrace(); return null; @@ -47,17 +52,23 @@ public abstract class FluidRenderer extends Renderer { public void render(int x, int y, double mouseX, double mouseY, float delta) { x = x - 8; y = y - 6; - Sprite f = this.sprite.get(); - if (f != null) { + Pair<Sprite, Integer> pair = this.sprite.get(); + if (pair != null) { + Sprite sprite = pair.getLeft(); + Integer int_5 = pair.getRight(); + int a = 255; + int r = (int_5 >> 16 & 255); + int g = (int_5 >> 8 & 255); + int b = (int_5 & 255); MinecraftClient.getInstance().getTextureManager().bindTexture(SpriteAtlasTexture.BLOCK_ATLAS_TEX); GuiLighting.disable(); Tessellator tess = Tessellator.getInstance(); BufferBuilder bb = tess.getBufferBuilder(); bb.begin(7, VertexFormats.POSITION_UV_COLOR); - bb.vertex(x + 16, y, blitOffset).texture(f.getMaxU(), f.getMinV()).color(255, 255, 255, 255).next(); - bb.vertex(x, y, blitOffset).texture(f.getMinU(), f.getMinV()).color(255, 255, 255, 255).next(); - bb.vertex(x, y + 16, blitOffset).texture(f.getMinU(), f.getMaxV()).color(255, 255, 255, 255).next(); - bb.vertex(x + 16, y + 16, blitOffset).texture(f.getMaxU(), f.getMaxV()).color(255, 255, 255, 255).next(); + bb.vertex(x + 16, y, blitOffset).texture(sprite.getMaxU(), sprite.getMinV()).color(r, g, b, a).next(); + bb.vertex(x, y, blitOffset).texture(sprite.getMinU(), sprite.getMinV()).color(r, g, b, a).next(); + bb.vertex(x, y + 16, blitOffset).texture(sprite.getMinU(), sprite.getMaxV()).color(r, g, b, a).next(); + bb.vertex(x + 16, y + 16, blitOffset).texture(sprite.getMaxU(), sprite.getMaxV()).color(r, g, b, a).next(); tess.draw(); } this.blitOffset = 0; diff --git a/src/main/java/me/shedaniel/rei/gui/widget/SlotWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/SlotWidget.java index 9b20b0e90..b01cefd89 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/SlotWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/SlotWidget.java @@ -140,7 +140,7 @@ public class SlotWidget extends WidgetWithBounds { GlStateManager.disableLighting(); GlStateManager.disableDepthTest(); GlStateManager.colorMask(true, true, true, false); - int color = darkTheme ? 0xFF5E5E5E : -2130706433; + int color = darkTheme ? -1877929711 : -2130706433; blitOffset = 300; fillGradient(x, y, x + 16, y + 16, color, color); blitOffset = 0; diff --git a/src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingCategory.java b/src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingCategory.java index b89e0e7cb..3af55e096 100644 --- a/src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingCategory.java +++ b/src/main/java/me/shedaniel/rei/plugin/composting/DefaultCompostingCategory.java @@ -103,6 +103,7 @@ public class DefaultCompostingCategory implements RecipeCategory<DefaultComposti return 140; } + @SuppressWarnings("deprecation") @Override public int getFixedRecipesPerPage() { return 1; diff --git a/src/main/java/me/shedaniel/rei/utils/ClothScreenRegistry.java b/src/main/java/me/shedaniel/rei/utils/ClothScreenRegistry.java index df4cb4c0c..a759a62e1 100644 --- a/src/main/java/me/shedaniel/rei/utils/ClothScreenRegistry.java +++ b/src/main/java/me/shedaniel/rei/utils/ClothScreenRegistry.java @@ -34,7 +34,7 @@ public class ClothScreenRegistry { } catch (IOException | FiberException e) { e.printStackTrace(); } - }).registerConfigEntryFunction(ItemListOrderingConfig.class, o -> { + }).registerNodeEntryFunction(ItemListOrderingConfig.class, o -> { ConfigValue<ItemListOrderingConfig> configValue = (ConfigValue<ItemListOrderingConfig>) o; return configEntryBuilder.startEnumSelector("config.roughlyenoughitems." + configValue.getName(), ItemListOrderingConfig.class, configValue.getValue()) .setDefaultValue(configValue.getDefaultValue()) @@ -42,7 +42,7 @@ public class ClothScreenRegistry { .setSaveConsumer(var -> configValue.setValue((ItemListOrderingConfig) var)) .setErrorSupplier(var -> error((List) configValue.getConstraints(), var, ItemListOrderingConfig.class)) .build(); - }).registerConfigEntryFunction(RecipeScreenType.class, o -> { + }).registerNodeEntryFunction(RecipeScreenType.class, o -> { ConfigValue<RecipeScreenType> configValue = (ConfigValue<RecipeScreenType>) o; return configEntryBuilder.startEnumSelector("config.roughlyenoughitems." + configValue.getName(), RecipeScreenType.class, configValue.getValue()) .setDefaultValue(configValue.getDefaultValue()) @@ -50,7 +50,7 @@ public class ClothScreenRegistry { .setSaveConsumer(var -> configValue.setValue((RecipeScreenType) var)) .setErrorSupplier(var -> error((List) configValue.getConstraints(), var, RecipeScreenType.class)) .build(); - }).registerConfigEntryFunction(ItemCheatingMode.class, o -> { + }).registerNodeEntryFunction(ItemCheatingMode.class, o -> { ConfigValue<ItemCheatingMode> configValue = (ConfigValue<ItemCheatingMode>) o; return configEntryBuilder.startEnumSelector("config.roughlyenoughitems." + configValue.getName(), ItemCheatingMode.class, configValue.getValue()) .setDefaultValue(configValue.getDefaultValue()) @@ -58,7 +58,7 @@ public class ClothScreenRegistry { .setSaveConsumer(var -> configValue.setValue((ItemCheatingMode) var)) .setErrorSupplier(var -> error((List) configValue.getConstraints(), var, ItemCheatingMode.class)) .build(); - }).registerConfigEntryFunction(SearchFieldLocation.class, o -> { + }).registerNodeEntryFunction(SearchFieldLocation.class, o -> { ConfigValue<SearchFieldLocation> configValue = (ConfigValue<SearchFieldLocation>) o; return configEntryBuilder.startEnumSelector("config.roughlyenoughitems." + configValue.getName(), SearchFieldLocation.class, configValue.getValue()) .setDefaultValue(configValue.getDefaultValue()) @@ -66,7 +66,8 @@ public class ClothScreenRegistry { .setSaveConsumer(var -> configValue.setValue((SearchFieldLocation) var)) .setErrorSupplier(var -> error((List) configValue.getConstraints(), var, SearchFieldLocation.class)) .build(); - }).build().getScreen(); + }) + .build().getScreen(); } } |
