From a5b7bd1e8296ac82841713a9cf0b84650ad2b34b Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Tue, 27 Oct 2020 15:36:52 +0100 Subject: [PATCH] added high priority modules Closes #48 --- .../java/de/ellpeck/prettypipes/Registry.java | 19 ++++++----- .../pipe/modules/HighPriorityModuleItem.java | 31 ++++++++++++++++++ .../pipe/modules/LowPriorityModuleItem.java | 2 +- .../assets/prettypipes/lang/en_us.json | 6 +++- .../item/high_high_priority_module.json | 6 ++++ .../models/item/low_high_priority_module.json | 6 ++++ .../item/medium_high_priority_module.json | 6 ++++ .../item/high_high_priority_module.png | Bin 0 -> 361 bytes .../item/low_high_priority_module.png | Bin 0 -> 357 bytes .../item/medium_high_priority_module.png | Bin 0 -> 343 bytes .../recipes/high_high_priority_module.json | 19 +++++++++++ .../recipes/low_high_priority_module.json | 22 +++++++++++++ .../recipes/medium_high_priority_module.json | 19 +++++++++++ 13 files changed, 126 insertions(+), 10 deletions(-) create mode 100644 src/main/java/de/ellpeck/prettypipes/pipe/modules/HighPriorityModuleItem.java create mode 100644 src/main/resources/assets/prettypipes/models/item/high_high_priority_module.json create mode 100644 src/main/resources/assets/prettypipes/models/item/low_high_priority_module.json create mode 100644 src/main/resources/assets/prettypipes/models/item/medium_high_priority_module.json create mode 100644 src/main/resources/assets/prettypipes/textures/item/high_high_priority_module.png create mode 100644 src/main/resources/assets/prettypipes/textures/item/low_high_priority_module.png create mode 100644 src/main/resources/assets/prettypipes/textures/item/medium_high_priority_module.png create mode 100644 src/main/resources/data/prettypipes/recipes/high_high_priority_module.json create mode 100644 src/main/resources/data/prettypipes/recipes/low_high_priority_module.json create mode 100644 src/main/resources/data/prettypipes/recipes/medium_high_priority_module.json diff --git a/src/main/java/de/ellpeck/prettypipes/Registry.java b/src/main/java/de/ellpeck/prettypipes/Registry.java index 277b4f6..cb60a9f 100644 --- a/src/main/java/de/ellpeck/prettypipes/Registry.java +++ b/src/main/java/de/ellpeck/prettypipes/Registry.java @@ -4,20 +4,22 @@ import de.ellpeck.prettypipes.entities.PipeFrameEntity; import de.ellpeck.prettypipes.entities.PipeFrameRenderer; import de.ellpeck.prettypipes.items.*; import de.ellpeck.prettypipes.misc.ItemEqualityType; -import de.ellpeck.prettypipes.pipe.modules.FilterModifierModuleItem; -import de.ellpeck.prettypipes.pipe.modules.LowPriorityModuleItem; -import de.ellpeck.prettypipes.pipe.modules.RedstoneModuleItem; -import de.ellpeck.prettypipes.pipe.modules.SpeedModuleItem; +import de.ellpeck.prettypipes.network.PipeNetwork; +import de.ellpeck.prettypipes.packets.PacketHandler; +import de.ellpeck.prettypipes.pipe.IPipeConnectable; +import de.ellpeck.prettypipes.pipe.PipeBlock; +import de.ellpeck.prettypipes.pipe.PipeRenderer; +import de.ellpeck.prettypipes.pipe.PipeTileEntity; +import de.ellpeck.prettypipes.pipe.containers.AbstractPipeContainer; +import de.ellpeck.prettypipes.pipe.containers.MainPipeContainer; +import de.ellpeck.prettypipes.pipe.containers.MainPipeGui; +import de.ellpeck.prettypipes.pipe.modules.*; import de.ellpeck.prettypipes.pipe.modules.craft.CraftingModuleContainer; import de.ellpeck.prettypipes.pipe.modules.craft.CraftingModuleGui; import de.ellpeck.prettypipes.pipe.modules.craft.CraftingModuleItem; import de.ellpeck.prettypipes.pipe.modules.extraction.ExtractionModuleContainer; import de.ellpeck.prettypipes.pipe.modules.extraction.ExtractionModuleGui; import de.ellpeck.prettypipes.pipe.modules.extraction.ExtractionModuleItem; -import de.ellpeck.prettypipes.network.PipeNetwork; -import de.ellpeck.prettypipes.packets.PacketHandler; -import de.ellpeck.prettypipes.pipe.*; -import de.ellpeck.prettypipes.pipe.containers.*; import de.ellpeck.prettypipes.pipe.modules.filter.FilterIncreaseModuleContainer; import de.ellpeck.prettypipes.pipe.modules.filter.FilterIncreaseModuleGui; import de.ellpeck.prettypipes.pipe.modules.filter.FilterIncreaseModuleItem; @@ -143,6 +145,7 @@ public final class Registry { registry.registerAll(createTieredModule("filter_module", FilterModuleItem::new)); registry.registerAll(createTieredModule("speed_module", SpeedModuleItem::new)); registry.registerAll(createTieredModule("low_priority_module", LowPriorityModuleItem::new)); + registry.registerAll(createTieredModule("high_priority_module", HighPriorityModuleItem::new)); registry.registerAll(createTieredModule("retrieval_module", RetrievalModuleItem::new)); registry.register(new StackSizeModuleItem("stack_size_module")); registry.registerAll(Arrays.stream(ItemEqualityType.values()).map(t -> new FilterModifierModuleItem(t.name().toLowerCase(Locale.ROOT) + "_filter_modifier", t)).toArray(Item[]::new)); diff --git a/src/main/java/de/ellpeck/prettypipes/pipe/modules/HighPriorityModuleItem.java b/src/main/java/de/ellpeck/prettypipes/pipe/modules/HighPriorityModuleItem.java new file mode 100644 index 0000000..6e4eb86 --- /dev/null +++ b/src/main/java/de/ellpeck/prettypipes/pipe/modules/HighPriorityModuleItem.java @@ -0,0 +1,31 @@ +package de.ellpeck.prettypipes.pipe.modules; + +import de.ellpeck.prettypipes.items.IModule; +import de.ellpeck.prettypipes.items.ModuleItem; +import de.ellpeck.prettypipes.items.ModuleTier; +import de.ellpeck.prettypipes.pipe.PipeTileEntity; +import net.minecraft.item.ItemStack; + +public class HighPriorityModuleItem extends ModuleItem { + private final int priority; + + public HighPriorityModuleItem(String name, ModuleTier tier) { + super(name); + this.priority = tier.forTier(50, 100, 200); + } + + @Override + public int getPriority(ItemStack module, PipeTileEntity tile) { + return this.priority; + } + + @Override + public boolean isCompatible(ItemStack module, PipeTileEntity tile, IModule other) { + return !(other instanceof HighPriorityModuleItem) && !(other instanceof LowPriorityModuleItem); + } + + @Override + public boolean hasContainer(ItemStack module, PipeTileEntity tile) { + return false; + } +} diff --git a/src/main/java/de/ellpeck/prettypipes/pipe/modules/LowPriorityModuleItem.java b/src/main/java/de/ellpeck/prettypipes/pipe/modules/LowPriorityModuleItem.java index e058ec7..0e54939 100644 --- a/src/main/java/de/ellpeck/prettypipes/pipe/modules/LowPriorityModuleItem.java +++ b/src/main/java/de/ellpeck/prettypipes/pipe/modules/LowPriorityModuleItem.java @@ -21,7 +21,7 @@ public class LowPriorityModuleItem extends ModuleItem { @Override public boolean isCompatible(ItemStack module, PipeTileEntity tile, IModule other) { - return !(other instanceof LowPriorityModuleItem); + return !(other instanceof LowPriorityModuleItem) && !(other instanceof HighPriorityModuleItem); } @Override diff --git a/src/main/resources/assets/prettypipes/lang/en_us.json b/src/main/resources/assets/prettypipes/lang/en_us.json index 49b769f..ef6e031 100644 --- a/src/main/resources/assets/prettypipes/lang/en_us.json +++ b/src/main/resources/assets/prettypipes/lang/en_us.json @@ -19,6 +19,9 @@ "item.prettypipes.low_low_priority_module": "Low Priority Module", "item.prettypipes.medium_low_priority_module": "Lower Priority Module", "item.prettypipes.high_low_priority_module": "Lowest Priority Module", + "item.prettypipes.low_high_priority_module": "High Priority Module", + "item.prettypipes.medium_high_priority_module": "Higher Priority Module", + "item.prettypipes.high_high_priority_module": "Highest Priority Module", "item.prettypipes.low_retrieval_module": "Low Retrieval Module", "item.prettypipes.medium_retrieval_module": "Medium Retrieval Module", "item.prettypipes.high_retrieval_module": "High Retrieval Module", @@ -32,7 +35,8 @@ "info.prettypipes.extraction_module": "Pulls items from adjacent inventories\nFilters and pull rates vary by tier\nHigh tiers prevent over-sending", "info.prettypipes.filter_module": "Restricts flow from pipes into adjacent inventories\nFilter amount varies by tier", "info.prettypipes.speed_module": "Increases speed of items exiting adjacent inventories\nSpeed varies by tier", - "info.prettypipes.low_priority_module": "Decreases the reception priority of adjacent inventories\nLower priority means items will prefer other inventories", + "info.prettypipes.low_priority_module": "Decreases the reception priority of adjacent inventories\nLower priority means items will prefer other inventories, regardless of distance", + "info.prettypipes.high_priority_module": "Increases the reception priority of adjacent inventories\nHigher priority means items will prefer this inventory, regardless of distance", "info.prettypipes.retrieval_module": "Pulls items from other inventories in the network\nFilters and pull rates vary by tier\nHigh tiers prevent over-sending", "info.prettypipes.stack_size_module": "Limits the amount of items that can enter adjacent inventories\nAutomatically prevents over-sending", "info.prettypipes.damage_filter_modifier": "Causes any filter slots to filter by item damage", diff --git a/src/main/resources/assets/prettypipes/models/item/high_high_priority_module.json b/src/main/resources/assets/prettypipes/models/item/high_high_priority_module.json new file mode 100644 index 0000000..3fd323c --- /dev/null +++ b/src/main/resources/assets/prettypipes/models/item/high_high_priority_module.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "prettypipes:item/high_high_priority_module" + } +} diff --git a/src/main/resources/assets/prettypipes/models/item/low_high_priority_module.json b/src/main/resources/assets/prettypipes/models/item/low_high_priority_module.json new file mode 100644 index 0000000..5722fed --- /dev/null +++ b/src/main/resources/assets/prettypipes/models/item/low_high_priority_module.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "prettypipes:item/low_high_priority_module" + } +} diff --git a/src/main/resources/assets/prettypipes/models/item/medium_high_priority_module.json b/src/main/resources/assets/prettypipes/models/item/medium_high_priority_module.json new file mode 100644 index 0000000..459bc06 --- /dev/null +++ b/src/main/resources/assets/prettypipes/models/item/medium_high_priority_module.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "prettypipes:item/medium_high_priority_module" + } +} diff --git a/src/main/resources/assets/prettypipes/textures/item/high_high_priority_module.png b/src/main/resources/assets/prettypipes/textures/item/high_high_priority_module.png new file mode 100644 index 0000000000000000000000000000000000000000..0849eb517d4ee0c9eb184b1dd9630fdef0cb4633 GIT binary patch literal 361 zcmV-v0ha!WP)Px$BS}O-R5*>LlQB!fKpe$?Nt2Qf;ow&gG87kQ#lcP7`U#31x-}ZoLW?b=2<~p; z)}he32u=mRfY`+;B+#*V2XXO2V=gA(n;wt-Lo9le z6BY;<9Fn-bJ?BTi-pm5E{=~+UDr=-{Yndb@B_t#w5@yBkt?Ukc_?v&eMBV?NXAhh@ zbn3(J^Z9Hb5GEGZ*0yWbe_mhR9-SK|Q*AR^HgmtfVgLePR&Pnz+Q4}%AvLk}@|pY@ z5;N{QESYfg2E!dzgXe}I1ra6(bKh^wNc!>jxp|jOn7G1jrZk0JXHR^J;BC1131~;# z%D=KaM(vT3Y9;26OYFMD6U+{nh~N6()cyT?xq--(YeL_cHW~ls-()!FIY;^n`x9-C zteWB)Ghywo9t#Obfq>$yNiQFjp1^2Ge`#=PzvkF9QrW22WQ%mvv4FO#r9Gl>7hy literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/prettypipes/textures/item/medium_high_priority_module.png b/src/main/resources/assets/prettypipes/textures/item/medium_high_priority_module.png new file mode 100644 index 0000000000000000000000000000000000000000..ddd356f242eb5ff650abe327bebedc6d84d73c91 GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D%z1wCCHLo9le z6BY;<9Fn-bJ?961vih8p$q@-gos8o18yg!BURH0I2&5ZXm;Jmtd%Fe~$4BW`S^vyU zwi;|w;GSliapaWSvvSQVi#rxe9Qf1L2~zrS{Rw*u>AB}u9Xj>l_xb!cY+oWw3=M!l zXWE3`YOu4=BV`OB+#@!FT&%e*JMrRGrTeYn`!n2|KQPIAcJ-3)+3dSX;uFn&DuW8JmmSye)GXP<%|RG?e{^2dmeBwJ literal 0 HcmV?d00001 diff --git a/src/main/resources/data/prettypipes/recipes/high_high_priority_module.json b/src/main/resources/data/prettypipes/recipes/high_high_priority_module.json new file mode 100644 index 0000000..f78168c --- /dev/null +++ b/src/main/resources/data/prettypipes/recipes/high_high_priority_module.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "CCC", + "CMC", + "CCC" + ], + "key": { + "C": { + "item": "minecraft:paper" + }, + "M": { + "item": "prettypipes:medium_high_priority_module" + } + }, + "result": { + "item": "prettypipes:high_high_priority_module" + } +} \ No newline at end of file diff --git a/src/main/resources/data/prettypipes/recipes/low_high_priority_module.json b/src/main/resources/data/prettypipes/recipes/low_high_priority_module.json new file mode 100644 index 0000000..7778085 --- /dev/null +++ b/src/main/resources/data/prettypipes/recipes/low_high_priority_module.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " C ", + "RMR", + " R " + ], + "key": { + "R": { + "item": "minecraft:redstone" + }, + "C": { + "item": "minecraft:paper" + }, + "M": { + "item": "prettypipes:blank_module" + } + }, + "result": { + "item": "prettypipes:low_high_priority_module" + } +} \ No newline at end of file diff --git a/src/main/resources/data/prettypipes/recipes/medium_high_priority_module.json b/src/main/resources/data/prettypipes/recipes/medium_high_priority_module.json new file mode 100644 index 0000000..f3be962 --- /dev/null +++ b/src/main/resources/data/prettypipes/recipes/medium_high_priority_module.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " C ", + "CMC", + " C " + ], + "key": { + "C": { + "item": "minecraft:paper" + }, + "M": { + "item": "prettypipes:low_high_priority_module" + } + }, + "result": { + "item": "prettypipes:medium_high_priority_module" + } +} \ No newline at end of file