From fe747833a7276f87757becc872ac59db026c9afc Mon Sep 17 00:00:00 2001 From: warjort Date: Thu, 27 May 2021 11:05:53 +0100 Subject: [PATCH 1/4] Add vanilla dusts to dustRegular --- .../gregtech/api/items/materialitem/MaterialMetaItem.java | 2 +- src/main/java/gregtech/api/unification/ore/OrePrefix.java | 2 ++ src/main/java/gregtech/loaders/OreDictionaryLoader.java | 6 ++++++ 3 files changed, 9 insertions(+), 1 deletion(-) mode change 100644 => 100755 src/main/java/gregtech/api/items/materialitem/MaterialMetaItem.java mode change 100644 => 100755 src/main/java/gregtech/api/unification/ore/OrePrefix.java mode change 100644 => 100755 src/main/java/gregtech/loaders/OreDictionaryLoader.java diff --git a/src/main/java/gregtech/api/items/materialitem/MaterialMetaItem.java b/src/main/java/gregtech/api/items/materialitem/MaterialMetaItem.java old mode 100644 new mode 100755 index ab4ce2fac5..43e5d2c214 --- a/src/main/java/gregtech/api/items/materialitem/MaterialMetaItem.java +++ b/src/main/java/gregtech/api/items/materialitem/MaterialMetaItem.java @@ -57,7 +57,7 @@ public void registerOreDict() { ItemStack item = new ItemStack(this, 1, metaItem); OreDictUnifier.registerOre(item, prefix, material); if(prefix.name().equals("dust")) - OreDictUnifier.registerOre(item, "dustRegular", material); + OreDictUnifier.registerOre(item, OrePrefix.DUST_REGULAR, material); items.add(item); } diff --git a/src/main/java/gregtech/api/unification/ore/OrePrefix.java b/src/main/java/gregtech/api/unification/ore/OrePrefix.java old mode 100644 new mode 100755 index 22ff51ae64..b330c01c6a --- a/src/main/java/gregtech/api/unification/ore/OrePrefix.java +++ b/src/main/java/gregtech/api/unification/ore/OrePrefix.java @@ -161,6 +161,8 @@ public enum OrePrefix { circuit("Circuits", -1, null, null, ENABLE_UNIFICATION | DISALLOW_RECYCLING, null), // Introduced by Calclavia chipset("Chipsets", -1, null, null, ENABLE_UNIFICATION | DISALLOW_RECYCLING, null); // Introduced by Buildcraft + public static final String DUST_REGULAR = "dustRegular"; + public static class Flags { public static final long ENABLE_UNIFICATION = GTUtility.createFlag(0); public static final long SELF_REFERENCING = GTUtility.createFlag(1); diff --git a/src/main/java/gregtech/loaders/OreDictionaryLoader.java b/src/main/java/gregtech/loaders/OreDictionaryLoader.java old mode 100644 new mode 100755 index e2e00bf306..02e46c8e5a --- a/src/main/java/gregtech/loaders/OreDictionaryLoader.java +++ b/src/main/java/gregtech/loaders/OreDictionaryLoader.java @@ -67,13 +67,19 @@ public static void init() { OreDictUnifier.registerOre(new ItemStack(Items.IRON_INGOT), OrePrefix.ingot, Materials.Iron); OreDictUnifier.registerOre(new ItemStack(Items.PAPER), OrePrefix.plate, Materials.Paper); OreDictUnifier.registerOre(new ItemStack(Items.SUGAR), OrePrefix.dust, Materials.Sugar); + OreDictUnifier.registerOre(new ItemStack(Items.SUGAR), OrePrefix.DUST_REGULAR, Materials.Sugar); OreDictUnifier.registerOre(new ItemStack(Items.STICK), OrePrefix.stick, Materials.Wood); OreDictUnifier.registerOre(new ItemStack(Items.REDSTONE), OrePrefix.dust, Materials.Redstone); + OreDictUnifier.registerOre(new ItemStack(Items.REDSTONE), OrePrefix.DUST_REGULAR, Materials.Redstone); OreDictUnifier.registerOre(new ItemStack(Items.GUNPOWDER), OrePrefix.dust, Materials.Gunpowder); + OreDictUnifier.registerOre(new ItemStack(Items.GUNPOWDER), OrePrefix.DUST_REGULAR, Materials.Gunpowder); OreDictUnifier.registerOre(new ItemStack(Items.GLOWSTONE_DUST), OrePrefix.dust, Materials.Glowstone); + OreDictUnifier.registerOre(new ItemStack(Items.GLOWSTONE_DUST), OrePrefix.DUST_REGULAR, Materials.Glowstone); OreDictUnifier.registerOre(new ItemStack(Items.DYE, 1, 15), OrePrefix.dust, Materials.Bone); + OreDictUnifier.registerOre(new ItemStack(Items.DYE, 1, 15), OrePrefix.DUST_REGULAR, Materials.Bone); OreDictUnifier.registerOre(new ItemStack(Items.BONE), OrePrefix.stick, Materials.Bone); OreDictUnifier.registerOre(new ItemStack(Items.BLAZE_POWDER), OrePrefix.dust, Materials.Blaze); + OreDictUnifier.registerOre(new ItemStack(Items.BLAZE_POWDER), OrePrefix.DUST_REGULAR, Materials.Blaze); OreDictUnifier.registerOre(new ItemStack(Items.BLAZE_ROD), OrePrefix.stick, Materials.Blaze); OreDictUnifier.registerOre(new ItemStack(Blocks.IRON_BLOCK), OrePrefix.block, Materials.Iron); OreDictUnifier.registerOre(new ItemStack(Blocks.GOLD_BLOCK), OrePrefix.block, Materials.Gold); From ad872d2229959dc229b57ffe4c0c5e4bccba8373 Mon Sep 17 00:00:00 2001 From: warjort Date: Thu, 27 May 2021 11:10:14 +0100 Subject: [PATCH 2/4] Revert "Add vanilla dusts to dustRegular" This reverts commit fe747833a7276f87757becc872ac59db026c9afc. --- .../gregtech/api/items/materialitem/MaterialMetaItem.java | 2 +- src/main/java/gregtech/api/unification/ore/OrePrefix.java | 2 -- src/main/java/gregtech/loaders/OreDictionaryLoader.java | 6 ------ 3 files changed, 1 insertion(+), 9 deletions(-) mode change 100755 => 100644 src/main/java/gregtech/api/items/materialitem/MaterialMetaItem.java mode change 100755 => 100644 src/main/java/gregtech/api/unification/ore/OrePrefix.java mode change 100755 => 100644 src/main/java/gregtech/loaders/OreDictionaryLoader.java diff --git a/src/main/java/gregtech/api/items/materialitem/MaterialMetaItem.java b/src/main/java/gregtech/api/items/materialitem/MaterialMetaItem.java old mode 100755 new mode 100644 index 43e5d2c214..ab4ce2fac5 --- a/src/main/java/gregtech/api/items/materialitem/MaterialMetaItem.java +++ b/src/main/java/gregtech/api/items/materialitem/MaterialMetaItem.java @@ -57,7 +57,7 @@ public void registerOreDict() { ItemStack item = new ItemStack(this, 1, metaItem); OreDictUnifier.registerOre(item, prefix, material); if(prefix.name().equals("dust")) - OreDictUnifier.registerOre(item, OrePrefix.DUST_REGULAR, material); + OreDictUnifier.registerOre(item, "dustRegular", material); items.add(item); } diff --git a/src/main/java/gregtech/api/unification/ore/OrePrefix.java b/src/main/java/gregtech/api/unification/ore/OrePrefix.java old mode 100755 new mode 100644 index b330c01c6a..22ff51ae64 --- a/src/main/java/gregtech/api/unification/ore/OrePrefix.java +++ b/src/main/java/gregtech/api/unification/ore/OrePrefix.java @@ -161,8 +161,6 @@ public enum OrePrefix { circuit("Circuits", -1, null, null, ENABLE_UNIFICATION | DISALLOW_RECYCLING, null), // Introduced by Calclavia chipset("Chipsets", -1, null, null, ENABLE_UNIFICATION | DISALLOW_RECYCLING, null); // Introduced by Buildcraft - public static final String DUST_REGULAR = "dustRegular"; - public static class Flags { public static final long ENABLE_UNIFICATION = GTUtility.createFlag(0); public static final long SELF_REFERENCING = GTUtility.createFlag(1); diff --git a/src/main/java/gregtech/loaders/OreDictionaryLoader.java b/src/main/java/gregtech/loaders/OreDictionaryLoader.java old mode 100755 new mode 100644 index 02e46c8e5a..e2e00bf306 --- a/src/main/java/gregtech/loaders/OreDictionaryLoader.java +++ b/src/main/java/gregtech/loaders/OreDictionaryLoader.java @@ -67,19 +67,13 @@ public static void init() { OreDictUnifier.registerOre(new ItemStack(Items.IRON_INGOT), OrePrefix.ingot, Materials.Iron); OreDictUnifier.registerOre(new ItemStack(Items.PAPER), OrePrefix.plate, Materials.Paper); OreDictUnifier.registerOre(new ItemStack(Items.SUGAR), OrePrefix.dust, Materials.Sugar); - OreDictUnifier.registerOre(new ItemStack(Items.SUGAR), OrePrefix.DUST_REGULAR, Materials.Sugar); OreDictUnifier.registerOre(new ItemStack(Items.STICK), OrePrefix.stick, Materials.Wood); OreDictUnifier.registerOre(new ItemStack(Items.REDSTONE), OrePrefix.dust, Materials.Redstone); - OreDictUnifier.registerOre(new ItemStack(Items.REDSTONE), OrePrefix.DUST_REGULAR, Materials.Redstone); OreDictUnifier.registerOre(new ItemStack(Items.GUNPOWDER), OrePrefix.dust, Materials.Gunpowder); - OreDictUnifier.registerOre(new ItemStack(Items.GUNPOWDER), OrePrefix.DUST_REGULAR, Materials.Gunpowder); OreDictUnifier.registerOre(new ItemStack(Items.GLOWSTONE_DUST), OrePrefix.dust, Materials.Glowstone); - OreDictUnifier.registerOre(new ItemStack(Items.GLOWSTONE_DUST), OrePrefix.DUST_REGULAR, Materials.Glowstone); OreDictUnifier.registerOre(new ItemStack(Items.DYE, 1, 15), OrePrefix.dust, Materials.Bone); - OreDictUnifier.registerOre(new ItemStack(Items.DYE, 1, 15), OrePrefix.DUST_REGULAR, Materials.Bone); OreDictUnifier.registerOre(new ItemStack(Items.BONE), OrePrefix.stick, Materials.Bone); OreDictUnifier.registerOre(new ItemStack(Items.BLAZE_POWDER), OrePrefix.dust, Materials.Blaze); - OreDictUnifier.registerOre(new ItemStack(Items.BLAZE_POWDER), OrePrefix.DUST_REGULAR, Materials.Blaze); OreDictUnifier.registerOre(new ItemStack(Items.BLAZE_ROD), OrePrefix.stick, Materials.Blaze); OreDictUnifier.registerOre(new ItemStack(Blocks.IRON_BLOCK), OrePrefix.block, Materials.Iron); OreDictUnifier.registerOre(new ItemStack(Blocks.GOLD_BLOCK), OrePrefix.block, Materials.Gold); From 43a22838922b48fccff186ea2815f03fc204f7d1 Mon Sep 17 00:00:00 2001 From: warjort Date: Fri, 28 May 2021 15:55:46 +0100 Subject: [PATCH 3/4] A widget should be clickable if any of its corners are in the scrollable list widget scissor --- .../api/gui/widgets/ScrollableListWidget.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/gregtech/api/gui/widgets/ScrollableListWidget.java b/src/main/java/gregtech/api/gui/widgets/ScrollableListWidget.java index 480a43a4ac..c554af55da 100644 --- a/src/main/java/gregtech/api/gui/widgets/ScrollableListWidget.java +++ b/src/main/java/gregtech/api/gui/widgets/ScrollableListWidget.java @@ -107,17 +107,31 @@ public void drawInBackground(int mouseX, int mouseY, IRenderContext context) { super.drawInBackground(finalMouseX, finalMouseY, context)); } + @Override public boolean isWidgetClickable(final Widget widget) { if (!super.isWidgetClickable(widget)) { return false; } - return isBoxInsideScissor(widget.toRectangleBox()); + return isWidgetOverlapsScissor(widget); } private boolean isPositionInsideScissor(int mouseX, int mouseY) { return isMouseOverElement(mouseX, mouseY) && !isOnScrollPane(mouseX, mouseY); } + private boolean isWidgetOverlapsScissor(Widget widget) { + final Position position = widget.getPosition(); + final Size size = widget.getSize(); + final int x0 = position.x; + final int y0 = position.y; + final int x1 = position.x + size.width; + final int y1 = position.y + size.height; + return isPositionInsideScissor(x0, y0) || + isPositionInsideScissor(x0, y1) || + isPositionInsideScissor(x1, y0) || + isPositionInsideScissor(x1, y1); + } + private boolean isBoxInsideScissor(Rectangle rectangle) { return isPositionInsideScissor(rectangle.x, rectangle.y) && isPositionInsideScissor(rectangle.x + rectangle.width, rectangle.y + rectangle.height); From 54aaa3b7b70f66cf6c0d5bea4d189e94b24f4ccf Mon Sep 17 00:00:00 2001 From: warjort Date: Fri, 28 May 2021 19:08:08 +0100 Subject: [PATCH 4/4] Fix bottom and right coords for scissor checking --- .../java/gregtech/api/gui/widgets/ScrollableListWidget.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/gregtech/api/gui/widgets/ScrollableListWidget.java b/src/main/java/gregtech/api/gui/widgets/ScrollableListWidget.java index c554af55da..e9dbf81d5d 100644 --- a/src/main/java/gregtech/api/gui/widgets/ScrollableListWidget.java +++ b/src/main/java/gregtech/api/gui/widgets/ScrollableListWidget.java @@ -124,8 +124,8 @@ private boolean isWidgetOverlapsScissor(Widget widget) { final Size size = widget.getSize(); final int x0 = position.x; final int y0 = position.y; - final int x1 = position.x + size.width; - final int y1 = position.y + size.height; + final int x1 = position.x + size.width - 1; + final int y1 = position.y + size.height - 1; return isPositionInsideScissor(x0, y0) || isPositionInsideScissor(x0, y1) || isPositionInsideScissor(x1, y0) || @@ -134,7 +134,7 @@ private boolean isWidgetOverlapsScissor(Widget widget) { private boolean isBoxInsideScissor(Rectangle rectangle) { return isPositionInsideScissor(rectangle.x, rectangle.y) && - isPositionInsideScissor(rectangle.x + rectangle.width, rectangle.y + rectangle.height); + isPositionInsideScissor(rectangle.x + rectangle.width - 1, rectangle.y + rectangle.height - 1); } @Override