From 48d66c7e5575d11b13c0a08cb524669a51bb4c5f Mon Sep 17 00:00:00 2001 From: Snownee Date: Sun, 13 Dec 2020 08:19:28 +0800 Subject: [PATCH 1/3] Slightly improve redstone link performance --- .../logistics/RedstoneLinkNetworkHandler.java | 44 +++++++++++-------- .../behaviour/linked/LinkBehaviour.java | 12 ++--- 2 files changed, 32 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/logistics/RedstoneLinkNetworkHandler.java b/src/main/java/com/simibubi/create/content/logistics/RedstoneLinkNetworkHandler.java index 17fa4c15e..a2e2fdfef 100644 --- a/src/main/java/com/simibubi/create/content/logistics/RedstoneLinkNetworkHandler.java +++ b/src/main/java/com/simibubi/create/content/logistics/RedstoneLinkNetworkHandler.java @@ -1,8 +1,9 @@ package com.simibubi.create.content.logistics; import java.util.HashMap; -import java.util.HashSet; +import java.util.IdentityHashMap; import java.util.Iterator; +import java.util.LinkedHashSet; import java.util.Map; import java.util.Set; @@ -20,14 +21,24 @@ import net.minecraft.world.World; public class RedstoneLinkNetworkHandler { - static Map, Set>> connections = new HashMap<>(); + static final Map, Set>> connections = new IdentityHashMap<>(); public static class Frequency { + public static final Frequency EMPTY = new Frequency(ItemStack.EMPTY); + private static final Map simpleFrequencies = new IdentityHashMap<>(); private ItemStack stack; private Item item; private int color; - public Frequency(ItemStack stack) { + public static Frequency of(ItemStack stack) { + if (stack.isEmpty()) + return EMPTY; + if (!stack.hasTag()) + return simpleFrequencies.computeIfAbsent(stack.getItem(), $ -> new Frequency(stack)); + return new Frequency(stack); + } + + private Frequency(ItemStack stack) { this.stack = stack; item = stack.getItem(); CompoundNBT displayTag = stack.getChildTag("display"); @@ -35,7 +46,7 @@ public class RedstoneLinkNetworkHandler { } public ItemStack getStack() { - return stack.copy(); + return stack; } @Override @@ -45,6 +56,8 @@ public class RedstoneLinkNetworkHandler { @Override public boolean equals(Object obj) { + if (this == obj) + return true; return obj instanceof Frequency ? ((Frequency) obj).item == item && ((Frequency) obj).color == color : false; } @@ -65,7 +78,7 @@ public class RedstoneLinkNetworkHandler { Map, Set> networksInWorld = networksIn(actor.getWorld()); Pair key = actor.getNetworkKey(); if (!networksInWorld.containsKey(key)) - networksInWorld.put(key, new HashSet<>()); + networksInWorld.put(key, new LinkedHashSet<>()); return networksInWorld.get(key); } @@ -105,31 +118,26 @@ public class RedstoneLinkNetworkHandler { } if (!withinRange(actor, other)) continue; - power = Math.max(other.getTransmittedStrength(), power); - if (power == 15) - break; + + if (power < 15) + power = Math.max(other.getTransmittedStrength(), power); } // fix one-to-one loading order problem - if(actor.isListening()){ + if (actor.isListening()) { actor.newPosition = true; actor.updateReceiver(power); } - for (Iterator iterator = network.iterator(); iterator.hasNext();) { - LinkBehaviour other = iterator.next(); - if (other.tileEntity.isRemoved()) { - iterator.remove(); - continue; - } - if (!withinRange(actor, other)) - continue; - if (other.isListening()) + for (LinkBehaviour other : network) { + if (other != actor && other.isListening() && withinRange(actor, other)) other.updateReceiver(power); } } public static boolean withinRange(LinkBehaviour from, LinkBehaviour to) { + if (from == to) + return true; return from.getPos().withinDistance(to.getPos(), AllConfigs.SERVER.logistics.linkRange.get()); } diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/linked/LinkBehaviour.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/linked/LinkBehaviour.java index 871c126ce..6246d20ea 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/linked/LinkBehaviour.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/linked/LinkBehaviour.java @@ -39,8 +39,8 @@ public class LinkBehaviour extends TileEntityBehaviour { protected LinkBehaviour(SmartTileEntity te, Pair slots) { super(te); - frequencyFirst = new Frequency(ItemStack.EMPTY); - frequencyLast = new Frequency(ItemStack.EMPTY); + frequencyFirst = Frequency.EMPTY; + frequencyLast = Frequency.EMPTY; firstSlot = slots.getLeft(); secondSlot = slots.getRight(); textShift = Vec3d.ZERO; @@ -133,8 +133,8 @@ public class LinkBehaviour extends TileEntityBehaviour { newPosition = positionInTag != positionKey; super.read(nbt, clientPacket); - frequencyFirst = new Frequency(ItemStack.read(nbt.getCompound("FrequencyFirst"))); - frequencyLast = new Frequency(ItemStack.read(nbt.getCompound("FrequencyLast"))); + frequencyFirst = Frequency.of(ItemStack.read(nbt.getCompound("FrequencyFirst"))); + frequencyLast = Frequency.of(ItemStack.read(nbt.getCompound("FrequencyLast"))); } public void setFrequency(boolean first, ItemStack stack) { @@ -148,9 +148,9 @@ public class LinkBehaviour extends TileEntityBehaviour { getHandler().removeFromNetwork(this); if (first) - frequencyFirst = new Frequency(stack); + frequencyFirst = Frequency.of(stack); else - frequencyLast = new Frequency(stack); + frequencyLast = Frequency.of(stack); if (!changed) return; From a845a70885b13eaa9855bf34c033f5c13d4d30e2 Mon Sep 17 00:00:00 2001 From: Snownee Date: Sun, 13 Dec 2020 19:56:49 +0800 Subject: [PATCH 2/3] Material checklist I18n --- src/generated/resources/.cache/cache | 24 ++--- .../resources/assets/create/lang/en_us.json | 3 + .../assets/create/lang/unfinished/de_de.json | 5 +- .../assets/create/lang/unfinished/fr_fr.json | 5 +- .../assets/create/lang/unfinished/it_it.json | 5 +- .../assets/create/lang/unfinished/ja_jp.json | 5 +- .../assets/create/lang/unfinished/ko_kr.json | 5 +- .../assets/create/lang/unfinished/nl_nl.json | 5 +- .../assets/create/lang/unfinished/pt_br.json | 5 +- .../assets/create/lang/unfinished/ru_ru.json | 5 +- .../assets/create/lang/unfinished/zh_cn.json | 5 +- .../content/schematics/MaterialChecklist.java | 102 +++++++++--------- .../create/foundation/data/LangMerger.java | 8 +- .../assets/create/lang/default/messages.json | 5 +- .../resources/assets/create/lang/zh_cn.json | 4 +- 15 files changed, 112 insertions(+), 79 deletions(-) diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 6427baf4f..5205e3074 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -140,7 +140,7 @@ de8a40b7daf1497d5aecee47a43b3e0b1d030b00 assets/create/blockstates/fancy_scoria_ fc9ac0a7e7191b93516719455a17177fa6524ecc assets/create/blockstates/fancy_weathered_limestone_bricks_slab.json b2a7c321b1795f20e7433f81a55ce4683de081b8 assets/create/blockstates/fancy_weathered_limestone_bricks_stairs.json 6372fe02ba0065acb0758121c45a15a1a8fdc5de assets/create/blockstates/fancy_weathered_limestone_bricks_wall.json -499aade14db59f62b46e8a266998feb41e1922a1 assets/create/blockstates/fluid_pipe.json +ddf31e35edba4572e4b916e654794c2fc9355c76 assets/create/blockstates/fluid_pipe.json f0eaab18e16c4f3f65ebf3b55b08f0dc445720fe assets/create/blockstates/fluid_tank.json 5408d92ab02af86539ac42971d4033545970bb3a assets/create/blockstates/fluid_valve.json e9da1794b6ece7f9aa8bcb43d42c23a55446133b assets/create/blockstates/flywheel.json @@ -335,7 +335,7 @@ e8b0a401c10d1ba67ed71ba31bd5f9bc28571b65 assets/create/blockstates/powered_toggl d06cd9a1101b18d306a786320aab12018b1325d6 assets/create/blockstates/purple_sail.json 92957119abd5fbcca36a113b2a80255fd70fc303 assets/create/blockstates/purple_seat.json 61035f8afe75ff7bbd291da5d8690bcbebe679eb assets/create/blockstates/purple_valve_handle.json -9e7ea57c58889fa0021e3c4f19da3f763108399f assets/create/blockstates/radial_chassis.json +100eedce1711b9eea00a4540ebef8a19e834df3a assets/create/blockstates/radial_chassis.json 45877c4d90a7185c2f304edbd67379d800920439 assets/create/blockstates/red_sail.json da1b08387af7afa0855ee8d040f620c01f20660a assets/create/blockstates/red_seat.json 722fc77bbf387af8a4016e42cbf9501d2b968881 assets/create/blockstates/red_valve_handle.json @@ -398,16 +398,16 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json efb6e419a2b1181541032daefc9420a1b0426ba3 assets/create/lang/en_ud.json -36140c5c0a5f593dc6470d659e8b809f7bf90513 assets/create/lang/en_us.json -c3fd899caa2854d0bd8f01042b5161a68e2fb11d assets/create/lang/unfinished/de_de.json -97367216e3c29a93ba41e5e68b3ef1e62eb7bed0 assets/create/lang/unfinished/fr_fr.json -e2b3409d52c793eb15329a2fa191437a04314f25 assets/create/lang/unfinished/it_it.json -b6893bae7bb205eab270596891dfe20cc114037c assets/create/lang/unfinished/ja_jp.json -82537573c3af93df36afff886260fb68d2bc288b assets/create/lang/unfinished/ko_kr.json -ea6569036e30d262da26560123817cf3182d7e62 assets/create/lang/unfinished/nl_nl.json -0ee15746838cb6ea83054d28e598c7f89e44b136 assets/create/lang/unfinished/pt_br.json -0f9d3389ff1598a74ea9739c51b1a309274f46f5 assets/create/lang/unfinished/ru_ru.json -149450cea09a1cf7757a880b1238cbbdea74aee9 assets/create/lang/unfinished/zh_cn.json +d5345200a404fbc824d92656f6b1a543bfaf635d assets/create/lang/en_us.json +b43244225f07231c9fb8b71bbd3b945bd30a5ab8 assets/create/lang/unfinished/de_de.json +3472564e14b7728ee96df813eb49ad3b11a092c3 assets/create/lang/unfinished/fr_fr.json +9074e0c4d47f2e97c112f6897b74c202f2c734c6 assets/create/lang/unfinished/it_it.json +c369058cdfacd8f437d0caea277925db6f8ed6f8 assets/create/lang/unfinished/ja_jp.json +338ea41c2550c80ac304a03713e368d34c737b5c assets/create/lang/unfinished/ko_kr.json +95fbf8d08213878f113ea9875d2d62d712d524f7 assets/create/lang/unfinished/nl_nl.json +d6ab20d3494560ef09708f5ef9b72ee4a9e2c5a0 assets/create/lang/unfinished/pt_br.json +249d647fcf8f5ad45161a992620eebd81821eccc assets/create/lang/unfinished/ru_ru.json +2ac7dee1d72427a557c30d2cab6054ff877ae27e assets/create/lang/unfinished/zh_cn.json 846200eb548d3bfa2e77b41039de159b4b6cfb45 assets/create/models/block/acacia_window.json 1930fa3a3c98d53dd19e4ee7f55bc27fd47aa281 assets/create/models/block/acacia_window_pane_noside.json 1763ea2c9b981d187f5031ba608f3d5d3be3986a assets/create/models/block/acacia_window_pane_noside_alt.json diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index 9f1884e78..03541c42d 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -875,6 +875,9 @@ "create.schematicannon.status.schematicNotPlaced": "Schematic Not Deployed", "create.schematicannon.status.schematicExpired": "Schematic File Expired", + "create.materialChecklist": "Material Checklist", + "create.materialChecklist.blocksNotLoaded": "* Disclaimer *\n\nMaterial List may be inaccurate due to relevant chunks not being loaded.", + "create.gui.filter.deny_list": "Deny-List", "create.gui.filter.deny_list.description": "Items pass if they do NOT match any of the above. An empty Deny-List accepts everything.", "create.gui.filter.allow_list": "Allow-List", diff --git a/src/generated/resources/assets/create/lang/unfinished/de_de.json b/src/generated/resources/assets/create/lang/unfinished/de_de.json index 6c30d1157..c6751ac14 100644 --- a/src/generated/resources/assets/create/lang/unfinished/de_de.json +++ b/src/generated/resources/assets/create/lang/unfinished/de_de.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1128", + "_": "Missing Localizations: 1130", "_": "->------------------------] Game Elements [------------------------<-", @@ -876,6 +876,9 @@ "create.schematicannon.status.schematicNotPlaced": "Bauplan nicht positioniert", "create.schematicannon.status.schematicExpired": "Bauplandatei abgelaufen", + "create.materialChecklist": "UNLOCALIZED: Material Checklist", + "create.materialChecklist.blocksNotLoaded": "UNLOCALIZED: * Disclaimer *\n\nMaterial List may be inaccurate due to relevant chunks not being loaded.", + "create.gui.filter.deny_list": "UNLOCALIZED: Deny-List", "create.gui.filter.deny_list.description": "UNLOCALIZED: Items pass if they do NOT match any of the above. An empty Deny-List accepts everything.", "create.gui.filter.allow_list": "UNLOCALIZED: Allow-List", diff --git a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json index 713ea2a26..34599dbd9 100644 --- a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json +++ b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 779", + "_": "Missing Localizations: 781", "_": "->------------------------] Game Elements [------------------------<-", @@ -876,6 +876,9 @@ "create.schematicannon.status.schematicNotPlaced": "Schéma non déployé", "create.schematicannon.status.schematicExpired": "Fichier de schéma arrivé à expiration", + "create.materialChecklist": "UNLOCALIZED: Material Checklist", + "create.materialChecklist.blocksNotLoaded": "UNLOCALIZED: * Disclaimer *\n\nMaterial List may be inaccurate due to relevant chunks not being loaded.", + "create.gui.filter.deny_list": "Liste noire", "create.gui.filter.deny_list.description": "Les articles réussissent s'ils ne correspondent à AUCUN des éléments ci-dessus. Une liste noire vide accepte tout.", "create.gui.filter.allow_list": "Liste blanche", diff --git a/src/generated/resources/assets/create/lang/unfinished/it_it.json b/src/generated/resources/assets/create/lang/unfinished/it_it.json index 021d7d5b3..5a60bbbca 100644 --- a/src/generated/resources/assets/create/lang/unfinished/it_it.json +++ b/src/generated/resources/assets/create/lang/unfinished/it_it.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 763", + "_": "Missing Localizations: 765", "_": "->------------------------] Game Elements [------------------------<-", @@ -876,6 +876,9 @@ "create.schematicannon.status.schematicNotPlaced": "Schematica Non Implementata", "create.schematicannon.status.schematicExpired": "File Schematica Scaduto", + "create.materialChecklist": "UNLOCALIZED: Material Checklist", + "create.materialChecklist.blocksNotLoaded": "UNLOCALIZED: * Disclaimer *\n\nMaterial List may be inaccurate due to relevant chunks not being loaded.", + "create.gui.filter.deny_list": "Lista Nera", "create.gui.filter.deny_list.description": "Gli oggetti passano se NON corrispondono a nessuno dei precedenti. Una Lista Nera vuota accetta tutto.", "create.gui.filter.allow_list": "Lista Bianca", diff --git a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json index d4d4e3a59..7704492d4 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json +++ b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 762", + "_": "Missing Localizations: 764", "_": "->------------------------] Game Elements [------------------------<-", @@ -876,6 +876,9 @@ "create.schematicannon.status.schematicNotPlaced": "配置されていない概略図です", "create.schematicannon.status.schematicExpired": "概略図ファイルが期限切れです", + "create.materialChecklist": "UNLOCALIZED: Material Checklist", + "create.materialChecklist.blocksNotLoaded": "UNLOCALIZED: * Disclaimer *\n\nMaterial List may be inaccurate due to relevant chunks not being loaded.", + "create.gui.filter.deny_list": "ブラックリスト", "create.gui.filter.deny_list.description": "上記のいずれにも一致しない場合、アイテムは通り抜けます。 空のブラックリストはすべてを受け入れます。", "create.gui.filter.allow_list": "ホワイトリスト", diff --git a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json index 489c8d42e..b99b22da6 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json +++ b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 763", + "_": "Missing Localizations: 765", "_": "->------------------------] Game Elements [------------------------<-", @@ -876,6 +876,9 @@ "create.schematicannon.status.schematicNotPlaced": "청사진이 전개되지 않음", "create.schematicannon.status.schematicExpired": "청사진 파일이 제거됨", + "create.materialChecklist": "UNLOCALIZED: Material Checklist", + "create.materialChecklist.blocksNotLoaded": "UNLOCALIZED: * Disclaimer *\n\nMaterial List may be inaccurate due to relevant chunks not being loaded.", + "create.gui.filter.deny_list": "블랙리스트", "create.gui.filter.deny_list.description": "위 목록에 맞지않는 아이템이면 통과합니다. 빈 블랙리스트는 모두 통과시킵니다.", "create.gui.filter.allow_list": "화이트리스트", diff --git a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json index 3b530a015..2321c8f21 100644 --- a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json +++ b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1069", + "_": "Missing Localizations: 1071", "_": "->------------------------] Game Elements [------------------------<-", @@ -876,6 +876,9 @@ "create.schematicannon.status.schematicNotPlaced": "Bouwtekening niet geplaatst", "create.schematicannon.status.schematicExpired": "Bouwtekening verlopen", + "create.materialChecklist": "UNLOCALIZED: Material Checklist", + "create.materialChecklist.blocksNotLoaded": "UNLOCALIZED: * Disclaimer *\n\nMaterial List may be inaccurate due to relevant chunks not being loaded.", + "create.gui.filter.deny_list": "UNLOCALIZED: Deny-List", "create.gui.filter.deny_list.description": "UNLOCALIZED: Items pass if they do NOT match any of the above. An empty Deny-List accepts everything.", "create.gui.filter.allow_list": "UNLOCALIZED: Allow-List", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_br.json b/src/generated/resources/assets/create/lang/unfinished/pt_br.json index 88d062670..b0c1b4760 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_br.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_br.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1135", + "_": "Missing Localizations: 1137", "_": "->------------------------] Game Elements [------------------------<-", @@ -876,6 +876,9 @@ "create.schematicannon.status.schematicNotPlaced": "Esquema não Colocado", "create.schematicannon.status.schematicExpired": "Arquivo de Esquema Expirado", + "create.materialChecklist": "UNLOCALIZED: Material Checklist", + "create.materialChecklist.blocksNotLoaded": "UNLOCALIZED: * Disclaimer *\n\nMaterial List may be inaccurate due to relevant chunks not being loaded.", + "create.gui.filter.deny_list": "UNLOCALIZED: Deny-List", "create.gui.filter.deny_list.description": "UNLOCALIZED: Items pass if they do NOT match any of the above. An empty Deny-List accepts everything.", "create.gui.filter.allow_list": "UNLOCALIZED: Allow-List", diff --git a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json index 12bd17cae..9de28cf96 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json +++ b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 436", + "_": "Missing Localizations: 438", "_": "->------------------------] Game Elements [------------------------<-", @@ -876,6 +876,9 @@ "create.schematicannon.status.schematicNotPlaced": "Схема не загружена", "create.schematicannon.status.schematicExpired": "Срок действия файла схемы истек", + "create.materialChecklist": "UNLOCALIZED: Material Checklist", + "create.materialChecklist.blocksNotLoaded": "UNLOCALIZED: * Disclaimer *\n\nMaterial List may be inaccurate due to relevant chunks not being loaded.", + "create.gui.filter.deny_list": "Чёрный список", "create.gui.filter.deny_list.description": "Предметы проходят, если они не соответствуют ни одному из вышеперечисленных. Пустой черный список принимает все.", "create.gui.filter.allow_list": "Белый список", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json index 20d002e2d..83b22e799 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 445", + "_": "Missing Localizations: 446", "_": "->------------------------] Game Elements [------------------------<-", @@ -876,6 +876,9 @@ "create.schematicannon.status.schematicNotPlaced": "蓝图未部署", "create.schematicannon.status.schematicExpired": "蓝图文件已过期", + "create.materialChecklist": "材料清单", + "create.materialChecklist.blocksNotLoaded": "UNLOCALIZED: * Disclaimer *\n\nMaterial List may be inaccurate due to relevant chunks not being loaded.", + "create.gui.filter.deny_list": "黑名单", "create.gui.filter.deny_list.description": "只通过不在黑名单中的物品,如果黑名单为空,所有物品都可以通过", "create.gui.filter.allow_list": "白名单", diff --git a/src/main/java/com/simibubi/create/content/schematics/MaterialChecklist.java b/src/main/java/com/simibubi/create/content/schematics/MaterialChecklist.java index 704320f78..97dc67317 100644 --- a/src/main/java/com/simibubi/create/content/schematics/MaterialChecklist.java +++ b/src/main/java/com/simibubi/create/content/schematics/MaterialChecklist.java @@ -2,14 +2,13 @@ package com.simibubi.create.content.schematics; import java.util.ArrayList; import java.util.Collections; -import java.util.HashMap; import java.util.List; -import java.util.Locale; -import java.util.Map; - import com.google.common.collect.Sets; import com.simibubi.create.content.schematics.ItemRequirement.ItemUseType; +import com.simibubi.create.foundation.utility.Lang; +import it.unimi.dsi.fastutil.objects.Object2IntArrayMap; +import it.unimi.dsi.fastutil.objects.Object2IntMap; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; @@ -17,6 +16,8 @@ import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.ListNBT; import net.minecraft.nbt.StringNBT; import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.StringTextComponent; +import net.minecraft.util.text.Style; import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.TranslationTextComponent; @@ -24,17 +25,11 @@ public class MaterialChecklist { public static final int MAX_ENTRIES_PER_PAGE = 5; - public Map gathered; - public Map required; - public Map damageRequired; + public Object2IntMap gathered = new Object2IntArrayMap<>(); + public Object2IntMap required = new Object2IntArrayMap<>(); + public Object2IntMap damageRequired = new Object2IntArrayMap<>(); public boolean blocksNotLoaded; - public MaterialChecklist() { - required = new HashMap<>(); - damageRequired = new HashMap<>(); - gathered = new HashMap<>(); - } - public void warnBlockNotLoaded() { blocksNotLoaded = true; } @@ -53,12 +48,12 @@ public class MaterialChecklist { } } - private void putOrIncrement(Map map, ItemStack stack) { + private void putOrIncrement(Object2IntMap map, ItemStack stack) { Item item = stack.getItem(); if (item == Items.AIR) return; if (map.containsKey(item)) - map.put(item, map.get(item) + stack.getCount()); + map.put(item, map.getInt(item) + stack.getCount()); else map.put(item, stack.getCount()); } @@ -67,7 +62,7 @@ public class MaterialChecklist { Item item = stack.getItem(); if (required.containsKey(item) || damageRequired.containsKey(item)) if (gathered.containsKey(item)) - gathered.put(item, gathered.get(item) + stack.getCount()); + gathered.put(item, gathered.getInt(item) + stack.getCount()); else gathered.put(item, stack.getCount()); } @@ -79,31 +74,30 @@ public class MaterialChecklist { ListNBT pages = new ListNBT(); int itemsWritten = 0; - StringBuilder string = new StringBuilder("{\"text\":\""); + ITextComponent textComponent; if (blocksNotLoaded) { - string.append("\n" + TextFormatting.RED + "* Disclaimer *\n\n"); - string.append("Material List may be inaccurate due to relevant chunks not being loaded."); - string.append("\"}"); - pages.add(StringNBT.of(string.toString())); - string = new StringBuilder("{\"text\":\""); + textComponent = new StringTextComponent("\n" + TextFormatting.RED); + textComponent = textComponent + .appendSibling(Lang.createTranslationTextComponent( + "materialChecklist.blocksNotLoaded")); + pages.add(StringNBT + .of(ITextComponent.Serializer.toJson(textComponent))); } List keys = new ArrayList<>(Sets.union(required.keySet(), damageRequired.keySet())); Collections.sort(keys, (item1, item2) -> { - Locale locale = Locale.ENGLISH; - String name1 = - new TranslationTextComponent(((Item) item1).getTranslationKey()).getFormattedText().toLowerCase(locale); - String name2 = - new TranslationTextComponent(((Item) item2).getTranslationKey()).getFormattedText().toLowerCase(locale); + String name1 = item1.getRegistryName().getPath(); + String name2 = item2.getRegistryName().getPath(); return name1.compareTo(name2); }); + textComponent = new StringTextComponent(""); List completed = new ArrayList<>(); for (Item item : keys) { int amount = getRequiredAmount(item); if (gathered.containsKey(item)) - amount -= gathered.get(item); + amount -= gathered.getInt(item); if (amount <= 0) { completed.add(item); @@ -112,59 +106,63 @@ public class MaterialChecklist { if (itemsWritten == MAX_ENTRIES_PER_PAGE) { itemsWritten = 0; - string.append("\"}"); - pages.add(StringNBT.of(string.toString())); - string = new StringBuilder("{\"text\":\""); + pages.add(StringNBT + .of(ITextComponent.Serializer.toJson(textComponent))); + textComponent = new StringTextComponent(""); } itemsWritten++; - string.append(unfinishedEntry(new ItemStack(item), amount)); + textComponent + .appendSibling(entry(new ItemStack(item), amount, true)); } for (Item item : completed) { if (itemsWritten == MAX_ENTRIES_PER_PAGE) { itemsWritten = 0; - string.append("\"}"); - pages.add(StringNBT.of(string.toString())); - string = new StringBuilder("{\"text\":\""); + pages.add(StringNBT + .of(ITextComponent.Serializer.toJson(textComponent))); + textComponent = new StringTextComponent(""); } itemsWritten++; - string.append(gatheredEntry(new ItemStack(item), getRequiredAmount(item))); + textComponent.appendSibling( + entry(new ItemStack(item), getRequiredAmount(item), false)); } - string.append("\"}"); - pages.add(StringNBT.of(string.toString())); + pages.add( + StringNBT.of(ITextComponent.Serializer.toJson(textComponent))); tag.put("pages", pages); tag.putString("author", "Schematicannon"); tag.putString("title", TextFormatting.BLUE + "Material Checklist"); + textComponent = Lang.createTranslationTextComponent("materialChecklist") + .setStyle(new Style().setColor(TextFormatting.BLUE) + .setItalic(Boolean.FALSE)); + book.getOrCreateChildTag("display").putString("Name", + ITextComponent.Serializer.toJson(textComponent)); book.setTag(tag); return book; } - public Integer getRequiredAmount(Item item) { + public int getRequiredAmount(Item item) { int amount = required.getOrDefault(item, 0); if (damageRequired.containsKey(item)) - amount += Math.ceil(damageRequired.get(item) / (float) new ItemStack(item).getMaxDamage()); + amount += Math.ceil(damageRequired.getInt(item) / (float) new ItemStack(item).getMaxDamage()); return amount; } - private String gatheredEntry(ItemStack item, int amount) { + private ITextComponent entry(ItemStack item, int amount, boolean unfinished) { int stacks = amount / 64; int remainder = amount % 64; - ITextComponent tc = new TranslationTextComponent(item.getTranslationKey()); - return TextFormatting.DARK_GREEN + tc.getFormattedText() + " \\u2714\n x" + amount + TextFormatting.GRAY + " | " - + stacks + "\\u25A4 +" + remainder + "\n"; - } - - private String unfinishedEntry(ItemStack item, int amount) { - int stacks = amount / 64; - int remainder = amount % 64; - ITextComponent tc = new TranslationTextComponent(item.getTranslationKey()); - return TextFormatting.BLUE + tc.getFormattedText() + "\n x" + amount + TextFormatting.GRAY + " | " + stacks - + "\\u25A4 +" + remainder + "\n"; + ITextComponent tc = new TranslationTextComponent( + item.getTranslationKey()); + if (!unfinished) + tc.appendText(" \u2714"); + tc.applyTextStyle( + unfinished ? TextFormatting.BLUE : TextFormatting.DARK_GREEN); + return tc.appendText("\n" + TextFormatting.BLACK + " x" + amount + + TextFormatting.GRAY + " | " + stacks + "\u25A4 +" + remainder + "\n"); } } diff --git a/src/main/java/com/simibubi/create/foundation/data/LangMerger.java b/src/main/java/com/simibubi/create/foundation/data/LangMerger.java index 6c672ee18..d51631052 100644 --- a/src/main/java/com/simibubi/create/foundation/data/LangMerger.java +++ b/src/main/java/com/simibubi/create/foundation/data/LangMerger.java @@ -162,8 +162,8 @@ public class LangMerger implements IDataProvider { if (key.endsWith(".tooltip")) return true; - key = new String(key).replaceFirst("\\.", ""); - previousKey = new String(previousKey).replaceFirst("\\.", ""); + key = key.replaceFirst("\\.", ""); + previousKey = previousKey.replaceFirst("\\.", ""); String[] split = key.split("\\."); String[] split2 = previousKey.split("\\."); @@ -243,7 +243,7 @@ public class LangMerger implements IDataProvider { } private class LangEntry { - static final String ENTRY_FORMAT = "\t\"%s\": \"%s\",\n"; + static final String ENTRY_FORMAT = "\t\"%s\": %s,\n"; private String key; private String value; @@ -255,7 +255,7 @@ public class LangMerger implements IDataProvider { @Override public String toString() { - return String.format(ENTRY_FORMAT, key, value); + return String.format(ENTRY_FORMAT, key, GSON.toJson(value, String.class)); } } diff --git a/src/main/resources/assets/create/lang/default/messages.json b/src/main/resources/assets/create/lang/default/messages.json index badd48a55..175a66baa 100644 --- a/src/main/resources/assets/create/lang/default/messages.json +++ b/src/main/resources/assets/create/lang/default/messages.json @@ -314,7 +314,10 @@ "create.schematicannon.status.schematicInvalid": "Schematic Invalid", "create.schematicannon.status.schematicNotPlaced": "Schematic Not Deployed", "create.schematicannon.status.schematicExpired": "Schematic File Expired", - + + "create.materialChecklist": "Material Checklist", + "create.materialChecklist.blocksNotLoaded": "* Disclaimer *\n\nMaterial List may be inaccurate due to relevant chunks not being loaded.", + "create.gui.filter.deny_list": "Deny-List", "create.gui.filter.deny_list.description": "Items pass if they do NOT match any of the above. An empty Deny-List accepts everything.", "create.gui.filter.allow_list": "Allow-List", diff --git a/src/main/resources/assets/create/lang/zh_cn.json b/src/main/resources/assets/create/lang/zh_cn.json index 4ce4d52c1..93395e84f 100644 --- a/src/main/resources/assets/create/lang/zh_cn.json +++ b/src/main/resources/assets/create/lang/zh_cn.json @@ -743,7 +743,9 @@ "create.schematicannon.status.schematicInvalid": "蓝图无效", "create.schematicannon.status.schematicNotPlaced": "蓝图未部署", "create.schematicannon.status.schematicExpired": "蓝图文件已过期", - + + "create.materialChecklist": "材料清单", + "create.gui.filter.deny_list": "黑名单", "create.gui.filter.deny_list.description": "只通过不在黑名单中的物品,如果黑名单为空,所有物品都可以通过", "create.gui.filter.allow_list": "白名单", From d68d702b3a135e7bd7172d10d9033ad2ee1d2963 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Sun, 13 Dec 2020 15:17:31 +0100 Subject: [PATCH 3/3] Fun with Recipes - Added a couple of recipes involving fluids and things --- src/generated/resources/.cache/cache | 46 +++++++++------ .../resources/assets/create/lang/en_ud.json | 1 + .../resources/assets/create/lang/en_us.json | 1 + .../assets/create/lang/unfinished/de_de.json | 3 +- .../assets/create/lang/unfinished/fr_fr.json | 3 +- .../assets/create/lang/unfinished/it_it.json | 3 +- .../assets/create/lang/unfinished/ja_jp.json | 3 +- .../assets/create/lang/unfinished/ko_kr.json | 3 +- .../assets/create/lang/unfinished/nl_nl.json | 3 +- .../assets/create/lang/unfinished/pt_br.json | 3 +- .../assets/create/lang/unfinished/ru_ru.json | 3 +- .../assets/create/lang/unfinished/zh_cn.json | 3 +- .../create/models/item/blaze_cake_base.json | 6 ++ .../compacting/andesite_from_flint.json | 24 ++++++++ .../create/recipes/compacting/blaze_cake.json | 6 +- .../compacting/diorite_from_flint.json | 24 ++++++++ .../compacting/granite_from_flint.json | 24 ++++++++ .../kinetics/encased_chain_drive.json | 15 +++-- .../blaze_cake.json} | 10 ++-- .../create/recipes/filling/glowstone.json | 21 +++++++ .../create/recipes/filling/grass_block.json | 18 ++++++ .../create/recipes/filling/gunpowder.json | 21 +++++++ .../data/create/recipes/filling/redstone.json | 21 +++++++ .../data/create/recipes/mixing/gunpowder.json | 21 ------- .../{temp_lava.json => lava_from_cobble.json} | 2 +- .../data/create/recipes/pressing/path.json | 21 +++++++ .../create/tags/items/upright_on_belt.json | 2 + .../java/com/simibubi/create/AllItems.java | 30 ++++++---- .../simibubi/create/compat/jei/CreateJEI.java | 9 ++- .../fluids/actors/FillingBySpout.java | 13 ++--- .../fluids/potion/PotionFluidHandler.java | 7 +++ .../content/schematics/MaterialChecklist.java | 54 +++++++++--------- .../data/recipe/CompactingRecipeGen.java | 36 +++++++++--- .../data/recipe/FillingRecipeGen.java | 41 ++++++++++--- .../data/recipe/MixingRecipeGen.java | 19 ++---- .../data/recipe/PressingRecipeGen.java | 4 ++ .../data/recipe/StandardRecipeGen.java | 13 +++-- .../foundation/item/HiddenIngredientItem.java | 21 +++++++ .../create/textures/item/blaze_cake_base.png | Bin 0 -> 276 bytes 39 files changed, 400 insertions(+), 158 deletions(-) create mode 100644 src/generated/resources/assets/create/models/item/blaze_cake_base.json create mode 100644 src/generated/resources/data/create/recipes/compacting/andesite_from_flint.json create mode 100644 src/generated/resources/data/create/recipes/compacting/diorite_from_flint.json create mode 100644 src/generated/resources/data/create/recipes/compacting/granite_from_flint.json rename src/generated/resources/data/create/recipes/{mixing/temp_cobble.json => filling/blaze_cake.json} (53%) create mode 100644 src/generated/resources/data/create/recipes/filling/glowstone.json create mode 100644 src/generated/resources/data/create/recipes/filling/grass_block.json create mode 100644 src/generated/resources/data/create/recipes/filling/gunpowder.json create mode 100644 src/generated/resources/data/create/recipes/filling/redstone.json delete mode 100644 src/generated/resources/data/create/recipes/mixing/gunpowder.json rename src/generated/resources/data/create/recipes/mixing/{temp_lava.json => lava_from_cobble.json} (91%) create mode 100644 src/generated/resources/data/create/recipes/pressing/path.json create mode 100644 src/main/java/com/simibubi/create/foundation/item/HiddenIngredientItem.java create mode 100644 src/main/resources/assets/create/textures/item/blaze_cake_base.png diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 5205e3074..839533950 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -140,7 +140,7 @@ de8a40b7daf1497d5aecee47a43b3e0b1d030b00 assets/create/blockstates/fancy_scoria_ fc9ac0a7e7191b93516719455a17177fa6524ecc assets/create/blockstates/fancy_weathered_limestone_bricks_slab.json b2a7c321b1795f20e7433f81a55ce4683de081b8 assets/create/blockstates/fancy_weathered_limestone_bricks_stairs.json 6372fe02ba0065acb0758121c45a15a1a8fdc5de assets/create/blockstates/fancy_weathered_limestone_bricks_wall.json -ddf31e35edba4572e4b916e654794c2fc9355c76 assets/create/blockstates/fluid_pipe.json +499aade14db59f62b46e8a266998feb41e1922a1 assets/create/blockstates/fluid_pipe.json f0eaab18e16c4f3f65ebf3b55b08f0dc445720fe assets/create/blockstates/fluid_tank.json 5408d92ab02af86539ac42971d4033545970bb3a assets/create/blockstates/fluid_valve.json e9da1794b6ece7f9aa8bcb43d42c23a55446133b assets/create/blockstates/flywheel.json @@ -335,7 +335,7 @@ e8b0a401c10d1ba67ed71ba31bd5f9bc28571b65 assets/create/blockstates/powered_toggl d06cd9a1101b18d306a786320aab12018b1325d6 assets/create/blockstates/purple_sail.json 92957119abd5fbcca36a113b2a80255fd70fc303 assets/create/blockstates/purple_seat.json 61035f8afe75ff7bbd291da5d8690bcbebe679eb assets/create/blockstates/purple_valve_handle.json -100eedce1711b9eea00a4540ebef8a19e834df3a assets/create/blockstates/radial_chassis.json +9e7ea57c58889fa0021e3c4f19da3f763108399f assets/create/blockstates/radial_chassis.json 45877c4d90a7185c2f304edbd67379d800920439 assets/create/blockstates/red_sail.json da1b08387af7afa0855ee8d040f620c01f20660a assets/create/blockstates/red_seat.json 722fc77bbf387af8a4016e42cbf9501d2b968881 assets/create/blockstates/red_valve_handle.json @@ -397,17 +397,17 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j 6801fa1f466f172700e573e5b8ee8ee5f9ca4583 assets/create/blockstates/yellow_valve_handle.json 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json -efb6e419a2b1181541032daefc9420a1b0426ba3 assets/create/lang/en_ud.json -d5345200a404fbc824d92656f6b1a543bfaf635d assets/create/lang/en_us.json -b43244225f07231c9fb8b71bbd3b945bd30a5ab8 assets/create/lang/unfinished/de_de.json -3472564e14b7728ee96df813eb49ad3b11a092c3 assets/create/lang/unfinished/fr_fr.json -9074e0c4d47f2e97c112f6897b74c202f2c734c6 assets/create/lang/unfinished/it_it.json -c369058cdfacd8f437d0caea277925db6f8ed6f8 assets/create/lang/unfinished/ja_jp.json -338ea41c2550c80ac304a03713e368d34c737b5c assets/create/lang/unfinished/ko_kr.json -95fbf8d08213878f113ea9875d2d62d712d524f7 assets/create/lang/unfinished/nl_nl.json -d6ab20d3494560ef09708f5ef9b72ee4a9e2c5a0 assets/create/lang/unfinished/pt_br.json -249d647fcf8f5ad45161a992620eebd81821eccc assets/create/lang/unfinished/ru_ru.json -2ac7dee1d72427a557c30d2cab6054ff877ae27e assets/create/lang/unfinished/zh_cn.json +a1a3d65289fe343efdd96b0c2a67e07798309a85 assets/create/lang/en_ud.json +413ca8ff40e5cfa29d659e17e00efee64b20429d assets/create/lang/en_us.json +f1c94b7a3f2da88f8d6c211afcb8f9501da62943 assets/create/lang/unfinished/de_de.json +1f2f1bf5123e9fa022dea2f6d8b4f5defc08de97 assets/create/lang/unfinished/fr_fr.json +bbbe8fbd0286f7368131fb5717e31a924a8c7b99 assets/create/lang/unfinished/it_it.json +8f1d9a677900d9f8b8f6d9e2c99556d1cdce780b assets/create/lang/unfinished/ja_jp.json +a5124a2434ede7e1b89b1b8e7755d91e52eb856c assets/create/lang/unfinished/ko_kr.json +57a8858cc5e7e59ff07ecee0baf7e1ccafef82bb assets/create/lang/unfinished/nl_nl.json +00380f4de1f30b070b9c7f90ef4c07f669db26de assets/create/lang/unfinished/pt_br.json +7e175f9c44c1359faf35bd632ce5110929978fb2 assets/create/lang/unfinished/ru_ru.json +5b4ef6d4a82aedb8b6cfaaca65bbca9df6ab6b4f assets/create/lang/unfinished/zh_cn.json 846200eb548d3bfa2e77b41039de159b4b6cfb45 assets/create/models/block/acacia_window.json 1930fa3a3c98d53dd19e4ee7f55bc27fd47aa281 assets/create/models/block/acacia_window_pane_noside.json 1763ea2c9b981d187f5031ba608f3d5d3be3986a assets/create/models/block/acacia_window_pane_noside_alt.json @@ -1137,6 +1137,7 @@ c0e35daccfb398947532e9499d6bda963387cd9c assets/create/models/item/andesite_tunn 56a6baedc608792cd6ab72a1c4fd53046cbda070 assets/create/models/item/black_valve_handle.json 80a6e8b00709fe0521aca5b789ae17485ed9c56d assets/create/models/item/blaze_burner.json c20627feba667b063893b128ee195c1abdb0f88d assets/create/models/item/blaze_cake.json +bb70b42b28a46b58c763053a07bc4e51c76a8550 assets/create/models/item/blaze_cake_base.json 0e1977585128fc0ecef640f72e5fc5e9fb47ef92 assets/create/models/item/blue_seat.json bec96ebf3369d3cffa9bb1b8bf9f2a5cd5d0ef96 assets/create/models/item/blue_valve_handle.json 17d340c3678bd24cb085ba49490b2b4cb341a9e7 assets/create/models/item/brass_block.json @@ -2662,7 +2663,10 @@ dd44cf0e09b1b34b4d2c254ab3d10d05a02717aa data/create/recipes/blasting/tin_ingot_ c323b106e88b7de77fea71ff12494abdbb818d15 data/create/recipes/chiseled_limestone_from_limestone_stonecutting.json da9a919b476954c1de34826aa7706bf6056a8f12 data/create/recipes/chiseled_scoria_from_scoria_stonecutting.json 09faa4ddcf9f3907dcdb3ab3e8b68c1deb2486e5 data/create/recipes/chiseled_weathered_limestone_from_weathered_limestone_stonecutting.json -eec156ec99d323dbc187f07e67d4449934c3e3e1 data/create/recipes/compacting/blaze_cake.json +ca137d5bce3b5f10069041657fdf630529d06bda data/create/recipes/compacting/andesite_from_flint.json +f7879d404d7a848d818278b4e788f285a9087e63 data/create/recipes/compacting/blaze_cake.json +7b2ef15dd28d1d8a450ea49a82dfb361d1adde4c data/create/recipes/compacting/diorite_from_flint.json +7657603e95ccf83dd0d4b104635db66e531d092a data/create/recipes/compacting/granite_from_flint.json 19526da3a59fc136654ff1bc93c0251581f397a9 data/create/recipes/crafting/appliances/dough.json 7b5f863dda3d05a79cb85943a178eba0bd8a7dc7 data/create/recipes/crafting/appliances/slime_ball.json b159ba84428eee6ef6e23df1766f2a18f2c8a63e data/create/recipes/crafting/appliances/tree_fertilizer.json @@ -2701,7 +2705,7 @@ dc62d932f6a3723e050cb043fea233efd685f775 data/create/recipes/crafting/kinetics/c ad1c3ce1e98b8483512bdd754f2e5930c7b3ae85 data/create/recipes/crafting/kinetics/deployer.json be86df1c4d7af14bc5dcfe044d07c03b6c6d2a75 data/create/recipes/crafting/kinetics/depot.json 9c5d30f25a130d591b924c50e5c83e3b787c2758 data/create/recipes/crafting/kinetics/empty_blaze_burner.json -b23bb0141d2890a971481a9aaea057abf4387341 data/create/recipes/crafting/kinetics/encased_chain_drive.json +f5386d34e6d041f637575d461df6ca5d43b4f464 data/create/recipes/crafting/kinetics/encased_chain_drive.json b07496e4ba5bc56a2c5a395b612c68ba21328867 data/create/recipes/crafting/kinetics/encased_fan.json 0dd0cc11eaa6789fc612af3231ed247893852178 data/create/recipes/crafting/kinetics/filter.json 30ae02825e54c0cc07be8f4decf9d432e7d61ba2 data/create/recipes/crafting/kinetics/fluid_pipe.json @@ -3016,8 +3020,13 @@ bd355332d17adcb0460b1d43146ca288efb78395 data/create/recipes/fancy_weathered_lim d2ab9ce73636773165564506580f2ec13bd1fc50 data/create/recipes/fancy_weathered_limestone_bricks_stairs_from_fancy_weathered_limestone_bricks_stonecutting.json 36947f27d2b2e57b00440fd5acd06a7554e5a387 data/create/recipes/fancy_weathered_limestone_bricks_wall.json 1d0e41ca98e48073c72adf4077610c96e592f9a5 data/create/recipes/fancy_weathered_limestone_bricks_wall_from_fancy_weathered_limestone_bricks_stonecutting.json +133e79f78a7f2c2f63ac7695d2be57d56e8955f4 data/create/recipes/filling/blaze_cake.json +790a63246268173350530d61ac824eff093724b2 data/create/recipes/filling/glowstone.json +5eb6227ccb6fa940b662d3ec029c3bd61fe61c8d data/create/recipes/filling/grass_block.json +244f27eadefefbc966ac384ac087c57d19484321 data/create/recipes/filling/gunpowder.json c8ca74a6cd071308a1750a2ad1153e79422598a0 data/create/recipes/filling/honey_bottle.json c83e77a9799b6ca34dd73aa76b56159f2103c48c data/create/recipes/filling/milk_bucket.json +08ce1420d1551ecfef5988977436c087123851a6 data/create/recipes/filling/redstone.json 5b8bbde7f8b270ab75fac18d6858f2fadbc0efa3 data/create/recipes/framed_glass_from_glass_colorless_stonecutting.json d697de0c9b706ca4e18da7a2d769e7e5fe8d769d data/create/recipes/framed_glass_pane.json a0dae50faaa1b7142bb4309675e3084c68daa547 data/create/recipes/gabbro_bricks_from_gabbro_stonecutting.json @@ -3148,10 +3157,8 @@ ce9dc7dacb85cb23a7187c19a115b40e597ad36b data/create/recipes/mixing/andesite_all ab602a53a5d8d057aad910dd1c5529cde2d587ab data/create/recipes/mixing/chocolate.json 0e29b4ce13750aab5a60ae54cbec8776569b35e0 data/create/recipes/mixing/chromatic_compound.json d9a3dff1288d675ab812eef1eb73cb27dcc71bd2 data/create/recipes/mixing/crushed_brass.json -00b165ea38d834c7955440e87062004a8182c3f8 data/create/recipes/mixing/gunpowder.json +cd9a78454bce20cf3557f5c44febae77ebd43e54 data/create/recipes/mixing/lava_from_cobble.json 0f89b3f2d81585591513619b8d1e8694eb874316 data/create/recipes/mixing/tea.json -3279bd1a34217a19bc9992a2ad87629390dd003f data/create/recipes/mixing/temp_cobble.json -3295a2195707f952a83deb3bed10b43570b215e5 data/create/recipes/mixing/temp_lava.json 1998c6f84f871d6da58ec29d729401d18f8f1aa1 data/create/recipes/mossy_andesite_from_andesite_stonecutting.json 89929d9cb11b5c589b2ecfa821c61add1ef7b62b data/create/recipes/mossy_dark_scoria_from_dark_scoria_stonecutting.json 4b8b1191dd3a21294293dc5ad237af89b849df28 data/create/recipes/mossy_diorite_from_diorite_stonecutting.json @@ -3290,6 +3297,7 @@ eae06580a0a5f486cde35426716d50fcb3ba5bb3 data/create/recipes/polished_weathered_ 0fa8386648398724f6fd373178b706c6b11ddefc data/create/recipes/pressing/gold_ingot.json a104ef6eb8872a40ea7b2ef67ae54cec943162f0 data/create/recipes/pressing/iron_ingot.json 7f9e72ec02a9926656744a95066f8aa304514565 data/create/recipes/pressing/lapis_block.json +654e274b07af172c22838d47e0974367c20101d4 data/create/recipes/pressing/path.json bd57ccc8eb4357b4a5af021db7b806b514cd2558 data/create/recipes/pressing/sugar_cane.json 141173778757d87e7f2e9466bdab6ff1263c8e98 data/create/recipes/sandpaper_polishing/rose_quartz.json d59c68621c78ff5d2c51be4440dea603480efed8 data/create/recipes/scoria_bricks_from_scoria_stonecutting.json @@ -3439,7 +3447,7 @@ eac71740fb12bdb38b5dfaa2268613d7ba82b809 data/create/tags/blocks/windmill_sails. 081f5aa35602fc27af2ca01ea9f2fd5e7eb284dc data/create/tags/items/create_ingots.json 94c62bf22678ef55b2b8a5398a7960e5b00682dc data/create/tags/items/crushed_ores.json 6cdeeac1689f7b5bfd9bc40b462143d8eaf3ad0b data/create/tags/items/seats.json -abbe5d7cc9d1705509257888154ed7ca23292586 data/create/tags/items/upright_on_belt.json +3d5cdbbf58f23e9aa0bf15c200905254b93a14ed data/create/tags/items/upright_on_belt.json 50936b211d94167a35ec78c89954082a336b6269 data/create/tags/items/valve_handles.json 16bcb8fcbe9170c2c11f1ca8d99d8b36cd812bbd data/forge/tags/blocks/glass/colorless.json 81ced867d24ec814942909965dd4576eff1db685 data/forge/tags/blocks/glass_panes.json diff --git a/src/generated/resources/assets/create/lang/en_ud.json b/src/generated/resources/assets/create/lang/en_ud.json index 014ddfa79..bcbf5eca8 100644 --- a/src/generated/resources/assets/create/lang/en_ud.json +++ b/src/generated/resources/assets/create/lang/en_ud.json @@ -411,6 +411,7 @@ "item.create.attribute_filter": "\u0279\u01DD\u0287\u05DF\u0131\u2132 \u01DD\u0287nq\u0131\u0279\u0287\u0287\u2C6F", "item.create.belt_connector": "\u0287\u05DF\u01DD\u15FA \u05DF\u0250\u0254\u0131u\u0250\u0265\u0254\u01DDW", "item.create.blaze_cake": "\u01DD\u029E\u0250\u0186 \u01DDz\u0250\u05DF\u15FA", + "item.create.blaze_cake_base": "\u01DDs\u0250\u15FA \u01DD\u029E\u0250\u0186 \u01DDz\u0250\u05DF\u15FA", "item.create.brass_hand": "pu\u0250H ss\u0250\u0279\u15FA", "item.create.brass_ingot": "\u0287obuI ss\u0250\u0279\u15FA", "item.create.brass_nugget": "\u0287\u01DDbbnN ss\u0250\u0279\u15FA", diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index 03541c42d..aad83d9b3 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -417,6 +417,7 @@ "item.create.attribute_filter": "Attribute Filter", "item.create.belt_connector": "Mechanical Belt", "item.create.blaze_cake": "Blaze Cake", + "item.create.blaze_cake_base": "Blaze Cake Base", "item.create.brass_hand": "Brass Hand", "item.create.brass_ingot": "Brass Ingot", "item.create.brass_nugget": "Brass Nugget", diff --git a/src/generated/resources/assets/create/lang/unfinished/de_de.json b/src/generated/resources/assets/create/lang/unfinished/de_de.json index c6751ac14..b97472414 100644 --- a/src/generated/resources/assets/create/lang/unfinished/de_de.json +++ b/src/generated/resources/assets/create/lang/unfinished/de_de.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1130", + "_": "Missing Localizations: 1131", "_": "->------------------------] Game Elements [------------------------<-", @@ -418,6 +418,7 @@ "item.create.attribute_filter": "UNLOCALIZED: Attribute Filter", "item.create.belt_connector": "Mechanischer Riemen", "item.create.blaze_cake": "UNLOCALIZED: Blaze Cake", + "item.create.blaze_cake_base": "UNLOCALIZED: Blaze Cake Base", "item.create.brass_hand": "UNLOCALIZED: Brass Hand", "item.create.brass_ingot": "UNLOCALIZED: Brass Ingot", "item.create.brass_nugget": "UNLOCALIZED: Brass Nugget", diff --git a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json index 34599dbd9..2ced8407e 100644 --- a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json +++ b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 781", + "_": "Missing Localizations: 782", "_": "->------------------------] Game Elements [------------------------<-", @@ -418,6 +418,7 @@ "item.create.attribute_filter": "Filtre d'attribut", "item.create.belt_connector": "Tapis roulant", "item.create.blaze_cake": "UNLOCALIZED: Blaze Cake", + "item.create.blaze_cake_base": "UNLOCALIZED: Blaze Cake Base", "item.create.brass_hand": "Main", "item.create.brass_ingot": "Lingot de laiton", "item.create.brass_nugget": "Pépite de laiton", diff --git a/src/generated/resources/assets/create/lang/unfinished/it_it.json b/src/generated/resources/assets/create/lang/unfinished/it_it.json index 5a60bbbca..20f04df55 100644 --- a/src/generated/resources/assets/create/lang/unfinished/it_it.json +++ b/src/generated/resources/assets/create/lang/unfinished/it_it.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 765", + "_": "Missing Localizations: 766", "_": "->------------------------] Game Elements [------------------------<-", @@ -418,6 +418,7 @@ "item.create.attribute_filter": "Filtro Attributi", "item.create.belt_connector": "Nastro Meccanico", "item.create.blaze_cake": "UNLOCALIZED: Blaze Cake", + "item.create.blaze_cake_base": "UNLOCALIZED: Blaze Cake Base", "item.create.brass_hand": "Mano", "item.create.brass_ingot": "Lingotto di Ottone", "item.create.brass_nugget": "Pepita di Ottone", diff --git a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json index 7704492d4..cd199d6dc 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json +++ b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 764", + "_": "Missing Localizations: 765", "_": "->------------------------] Game Elements [------------------------<-", @@ -418,6 +418,7 @@ "item.create.attribute_filter": "属性フィルター", "item.create.belt_connector": "メカニカルベルト", "item.create.blaze_cake": "UNLOCALIZED: Blaze Cake", + "item.create.blaze_cake_base": "UNLOCALIZED: Blaze Cake Base", "item.create.brass_hand": "手", "item.create.brass_ingot": "真鍮インゴット", "item.create.brass_nugget": "真鍮ナゲット", diff --git a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json index b99b22da6..820a36893 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json +++ b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 765", + "_": "Missing Localizations: 766", "_": "->------------------------] Game Elements [------------------------<-", @@ -418,6 +418,7 @@ "item.create.attribute_filter": "속성 필터 틀", "item.create.belt_connector": "기계식 벨트", "item.create.blaze_cake": "UNLOCALIZED: Blaze Cake", + "item.create.blaze_cake_base": "UNLOCALIZED: Blaze Cake Base", "item.create.brass_hand": "황동 손", "item.create.brass_ingot": "황동 주괴", "item.create.brass_nugget": "황동 조각", diff --git a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json index 2321c8f21..e937eb7d6 100644 --- a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json +++ b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1071", + "_": "Missing Localizations: 1072", "_": "->------------------------] Game Elements [------------------------<-", @@ -418,6 +418,7 @@ "item.create.attribute_filter": "UNLOCALIZED: Attribute Filter", "item.create.belt_connector": "Mechanische Transportband", "item.create.blaze_cake": "UNLOCALIZED: Blaze Cake", + "item.create.blaze_cake_base": "UNLOCALIZED: Blaze Cake Base", "item.create.brass_hand": "UNLOCALIZED: Brass Hand", "item.create.brass_ingot": "UNLOCALIZED: Brass Ingot", "item.create.brass_nugget": "Brons klompje", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_br.json b/src/generated/resources/assets/create/lang/unfinished/pt_br.json index b0c1b4760..73e415157 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_br.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_br.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1137", + "_": "Missing Localizations: 1138", "_": "->------------------------] Game Elements [------------------------<-", @@ -418,6 +418,7 @@ "item.create.attribute_filter": "UNLOCALIZED: Attribute Filter", "item.create.belt_connector": "Esteira Mecânica", "item.create.blaze_cake": "UNLOCALIZED: Blaze Cake", + "item.create.blaze_cake_base": "UNLOCALIZED: Blaze Cake Base", "item.create.brass_hand": "UNLOCALIZED: Brass Hand", "item.create.brass_ingot": "UNLOCALIZED: Brass Ingot", "item.create.brass_nugget": "UNLOCALIZED: Brass Nugget", diff --git a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json index 9de28cf96..812c68639 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json +++ b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 438", + "_": "Missing Localizations: 439", "_": "->------------------------] Game Elements [------------------------<-", @@ -418,6 +418,7 @@ "item.create.attribute_filter": "Фильтр атрибутов", "item.create.belt_connector": "Механический ремень", "item.create.blaze_cake": "UNLOCALIZED: Blaze Cake", + "item.create.blaze_cake_base": "UNLOCALIZED: Blaze Cake Base", "item.create.brass_hand": "Латунная рука", "item.create.brass_ingot": "Латунный слиток", "item.create.brass_nugget": "Кусочек латуни", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json index 83b22e799..e432afdbc 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 446", + "_": "Missing Localizations: 447", "_": "->------------------------] Game Elements [------------------------<-", @@ -418,6 +418,7 @@ "item.create.attribute_filter": "属性过滤器", "item.create.belt_connector": "传送带", "item.create.blaze_cake": "UNLOCALIZED: Blaze Cake", + "item.create.blaze_cake_base": "UNLOCALIZED: Blaze Cake Base", "item.create.brass_hand": "黄铜手部零件", "item.create.brass_ingot": "黄铜锭", "item.create.brass_nugget": "黄铜粒", diff --git a/src/generated/resources/assets/create/models/item/blaze_cake_base.json b/src/generated/resources/assets/create/models/item/blaze_cake_base.json new file mode 100644 index 000000000..ad6909823 --- /dev/null +++ b/src/generated/resources/assets/create/models/item/blaze_cake_base.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "create:item/blaze_cake_base" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/compacting/andesite_from_flint.json b/src/generated/resources/data/create/recipes/compacting/andesite_from_flint.json new file mode 100644 index 000000000..6018bf3e6 --- /dev/null +++ b/src/generated/resources/data/create/recipes/compacting/andesite_from_flint.json @@ -0,0 +1,24 @@ +{ + "type": "create:compacting", + "ingredients": [ + { + "item": "minecraft:flint" + }, + { + "item": "minecraft:flint" + }, + { + "item": "minecraft:gravel" + }, + { + "fluid": "minecraft:lava", + "nbt": {}, + "amount": 100 + } + ], + "results": [ + { + "item": "minecraft:andesite" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/compacting/blaze_cake.json b/src/generated/resources/data/create/recipes/compacting/blaze_cake.json index e4008758a..985ae27d0 100644 --- a/src/generated/resources/data/create/recipes/compacting/blaze_cake.json +++ b/src/generated/resources/data/create/recipes/compacting/blaze_cake.json @@ -9,15 +9,11 @@ }, { "item": "create:cinder_flour" - }, - { - "fluidTag": "minecraft:lava", - "amount": 125 } ], "results": [ { - "item": "create:blaze_cake" + "item": "create:blaze_cake_base" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/compacting/diorite_from_flint.json b/src/generated/resources/data/create/recipes/compacting/diorite_from_flint.json new file mode 100644 index 000000000..522b8faf0 --- /dev/null +++ b/src/generated/resources/data/create/recipes/compacting/diorite_from_flint.json @@ -0,0 +1,24 @@ +{ + "type": "create:compacting", + "ingredients": [ + { + "item": "minecraft:flint" + }, + { + "item": "minecraft:flint" + }, + { + "item": "create:limesand" + }, + { + "fluid": "minecraft:lava", + "nbt": {}, + "amount": 100 + } + ], + "results": [ + { + "item": "minecraft:diorite" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/compacting/granite_from_flint.json b/src/generated/resources/data/create/recipes/compacting/granite_from_flint.json new file mode 100644 index 000000000..a591cff44 --- /dev/null +++ b/src/generated/resources/data/create/recipes/compacting/granite_from_flint.json @@ -0,0 +1,24 @@ +{ + "type": "create:compacting", + "ingredients": [ + { + "item": "minecraft:flint" + }, + { + "item": "minecraft:flint" + }, + { + "item": "minecraft:red_sand" + }, + { + "fluid": "minecraft:lava", + "nbt": {}, + "amount": 100 + } + ], + "results": [ + { + "item": "minecraft:granite" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crafting/kinetics/encased_chain_drive.json b/src/generated/resources/data/create/recipes/crafting/kinetics/encased_chain_drive.json index d44ed9c67..1b8564a0a 100644 --- a/src/generated/resources/data/create/recipes/crafting/kinetics/encased_chain_drive.json +++ b/src/generated/resources/data/create/recipes/crafting/kinetics/encased_chain_drive.json @@ -1,16 +1,19 @@ { "type": "minecraft:crafting_shaped", "pattern": [ - " C ", - "CBC", - " C " + " B ", + "SCS", + " B " ], "key": { - "C": { - "item": "create:andesite_casing" + "S": { + "item": "create:shaft" }, "B": { - "item": "minecraft:dried_kelp" + "tag": "forge:nuggets/iron" + }, + "C": { + "item": "create:andesite_casing" } }, "result": { diff --git a/src/generated/resources/data/create/recipes/mixing/temp_cobble.json b/src/generated/resources/data/create/recipes/filling/blaze_cake.json similarity index 53% rename from src/generated/resources/data/create/recipes/mixing/temp_cobble.json rename to src/generated/resources/data/create/recipes/filling/blaze_cake.json index 79e364c1d..179843453 100644 --- a/src/generated/resources/data/create/recipes/mixing/temp_cobble.json +++ b/src/generated/resources/data/create/recipes/filling/blaze_cake.json @@ -1,20 +1,18 @@ { - "type": "create:mixing", + "type": "create:filling", "ingredients": [ { - "fluid": "minecraft:water", - "nbt": {}, - "amount": 250 + "item": "create:blaze_cake_base" }, { "fluid": "minecraft:lava", "nbt": {}, - "amount": 25 + "amount": 250 } ], "results": [ { - "item": "minecraft:cobblestone" + "item": "create:blaze_cake" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/filling/glowstone.json b/src/generated/resources/data/create/recipes/filling/glowstone.json new file mode 100644 index 000000000..21202f6d5 --- /dev/null +++ b/src/generated/resources/data/create/recipes/filling/glowstone.json @@ -0,0 +1,21 @@ +{ + "type": "create:filling", + "ingredients": [ + { + "item": "create:cinder_flour" + }, + { + "fluid": "create:potion", + "nbt": { + "Bottle": "REGULAR", + "Potion": "minecraft:fire_resistance" + }, + "amount": 25 + } + ], + "results": [ + { + "item": "minecraft:glowstone_dust" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/filling/grass_block.json b/src/generated/resources/data/create/recipes/filling/grass_block.json new file mode 100644 index 000000000..00d1b8b86 --- /dev/null +++ b/src/generated/resources/data/create/recipes/filling/grass_block.json @@ -0,0 +1,18 @@ +{ + "type": "create:filling", + "ingredients": [ + { + "item": "minecraft:dirt" + }, + { + "fluid": "minecraft:water", + "nbt": {}, + "amount": 500 + } + ], + "results": [ + { + "item": "minecraft:grass_block" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/filling/gunpowder.json b/src/generated/resources/data/create/recipes/filling/gunpowder.json new file mode 100644 index 000000000..ffcfeb78f --- /dev/null +++ b/src/generated/resources/data/create/recipes/filling/gunpowder.json @@ -0,0 +1,21 @@ +{ + "type": "create:filling", + "ingredients": [ + { + "item": "create:cinder_flour" + }, + { + "fluid": "create:potion", + "nbt": { + "Bottle": "REGULAR", + "Potion": "minecraft:harming" + }, + "amount": 25 + } + ], + "results": [ + { + "item": "minecraft:gunpowder" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/filling/redstone.json b/src/generated/resources/data/create/recipes/filling/redstone.json new file mode 100644 index 000000000..5923deeb4 --- /dev/null +++ b/src/generated/resources/data/create/recipes/filling/redstone.json @@ -0,0 +1,21 @@ +{ + "type": "create:filling", + "ingredients": [ + { + "item": "create:cinder_flour" + }, + { + "fluid": "create:potion", + "nbt": { + "Bottle": "REGULAR", + "Potion": "minecraft:strength" + }, + "amount": 25 + } + ], + "results": [ + { + "item": "minecraft:redstone" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/mixing/gunpowder.json b/src/generated/resources/data/create/recipes/mixing/gunpowder.json deleted file mode 100644 index f098f05fb..000000000 --- a/src/generated/resources/data/create/recipes/mixing/gunpowder.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "create:mixing", - "ingredients": [ - { - "tag": "minecraft:coals" - }, - { - "item": "create:crushed_zinc_ore" - }, - { - "item": "minecraft:gunpowder" - } - ], - "results": [ - { - "item": "minecraft:gunpowder", - "count": 2 - } - ], - "heatRequirement": "heated" -} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/mixing/temp_lava.json b/src/generated/resources/data/create/recipes/mixing/lava_from_cobble.json similarity index 91% rename from src/generated/resources/data/create/recipes/mixing/temp_lava.json rename to src/generated/resources/data/create/recipes/mixing/lava_from_cobble.json index efee970a9..3f9f2a070 100644 --- a/src/generated/resources/data/create/recipes/mixing/temp_lava.json +++ b/src/generated/resources/data/create/recipes/mixing/lava_from_cobble.json @@ -8,7 +8,7 @@ "results": [ { "fluid": "minecraft:lava", - "amount": 25 + "amount": 50 } ], "heatRequirement": "superheated" diff --git a/src/generated/resources/data/create/recipes/pressing/path.json b/src/generated/resources/data/create/recipes/pressing/path.json new file mode 100644 index 000000000..b9a17c39f --- /dev/null +++ b/src/generated/resources/data/create/recipes/pressing/path.json @@ -0,0 +1,21 @@ +{ + "type": "create:pressing", + "ingredients": [ + [ + { + "item": "minecraft:grass_block" + }, + { + "item": "minecraft:dirt" + }, + { + "item": "minecraft:podzol" + } + ] + ], + "results": [ + { + "item": "minecraft:grass_path" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/tags/items/upright_on_belt.json b/src/generated/resources/data/create/tags/items/upright_on_belt.json index 4db8308e8..3cea45167 100644 --- a/src/generated/resources/data/create/tags/items/upright_on_belt.json +++ b/src/generated/resources/data/create/tags/items/upright_on_belt.json @@ -1,6 +1,8 @@ { "replace": false, "values": [ + "create:blaze_cake_base", + "create:blaze_cake", "minecraft:glass_bottle", "minecraft:potion", "minecraft:splash_potion", diff --git a/src/main/java/com/simibubi/create/AllItems.java b/src/main/java/com/simibubi/create/AllItems.java index d27f62926..fd831e1fd 100644 --- a/src/main/java/com/simibubi/create/AllItems.java +++ b/src/main/java/com/simibubi/create/AllItems.java @@ -44,6 +44,7 @@ import com.simibubi.create.content.schematics.item.SchematicAndQuillItem; import com.simibubi.create.content.schematics.item.SchematicItem; import com.simibubi.create.foundation.data.AssetLookup; import com.simibubi.create.foundation.data.CreateRegistrate; +import com.simibubi.create.foundation.item.HiddenIngredientItem; import com.simibubi.create.foundation.item.TagDependentIngredientItem; import com.simibubi.create.foundation.item.TooltipHelper; import com.tterrag.registrate.util.entry.ItemEntry; @@ -81,19 +82,13 @@ public class AllItems { CRUSHED_ZINC = taggedIngredient("crushed_zinc_ore", CRUSHED_ORES.tag), CRUSHED_BRASS = taggedIngredient("crushed_brass", CRUSHED_ORES.tag); - public static final ItemEntry - CRUSHED_OSMIUM = compatCrushedOre("osmium"), - CRUSHED_PLATINUM = compatCrushedOre("platinum"), - CRUSHED_SILVER = compatCrushedOre("silver"), - CRUSHED_TIN = compatCrushedOre("tin"), - CRUSHED_LEAD = compatCrushedOre("lead"), - CRUSHED_QUICKSILVER = compatCrushedOre("quicksilver"), - CRUSHED_BAUXITE = compatCrushedOre("aluminum"), - CRUSHED_URANIUM = compatCrushedOre("uranium"), - CRUSHED_NICKEL = compatCrushedOre("nickel"); + public static final ItemEntry CRUSHED_OSMIUM = compatCrushedOre("osmium"), + CRUSHED_PLATINUM = compatCrushedOre("platinum"), CRUSHED_SILVER = compatCrushedOre("silver"), + CRUSHED_TIN = compatCrushedOre("tin"), CRUSHED_LEAD = compatCrushedOre("lead"), + CRUSHED_QUICKSILVER = compatCrushedOre("quicksilver"), CRUSHED_BAUXITE = compatCrushedOre("aluminum"), + CRUSHED_URANIUM = compatCrushedOre("uranium"), CRUSHED_NICKEL = compatCrushedOre("nickel"); - public static final ItemEntry - ANDESITE_ALLOY = ingredient("andesite_alloy"), + public static final ItemEntry ANDESITE_ALLOY = ingredient("andesite_alloy"), COPPER_INGOT = taggedIngredient("copper_ingot", forgeItemTag("ingots/copper"), CREATE_INGOTS.tag), ZINC_INGOT = taggedIngredient("zinc_ingot", forgeItemTag("ingots/zinc"), CREATE_INGOTS.tag), BRASS_INGOT = taggedIngredient("brass_ingot", forgeItemTag("ingots/brass"), CREATE_INGOTS.tag), @@ -104,7 +99,13 @@ public class AllItems { WHISK = ingredient("whisk"), BRASS_HAND = ingredient("brass_hand"), CRAFTER_SLOT_COVER = ingredient("crafter_slot_cover"); + public static final ItemEntry BLAZE_CAKE_BASE = + REGISTRATE.item("blaze_cake_base", HiddenIngredientItem::new) + .tag(AllItemTags.UPRIGHT_ON_BELT.tag) + .register(); + public static final ItemEntry BLAZE_CAKE = REGISTRATE.item("blaze_cake", CombustibleItem::new) + .tag(AllItemTags.UPRIGHT_ON_BELT.tag) .register(); public static final ItemEntry CHROMATIC_COMPOUND = @@ -266,6 +267,11 @@ public class AllItems { .register(); } + private static ItemEntry hiddenIngredient(String name) { + return REGISTRATE.item(name, HiddenIngredientItem::new) + .register(); + } + @SafeVarargs private static ItemEntry taggedIngredient(String name, Tag... tags) { return REGISTRATE.item(name, Item::new) diff --git a/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java b/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java index ac6ba9397..12c5f4e90 100644 --- a/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java +++ b/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java @@ -159,11 +159,10 @@ public class CreateJEI implements IModPlugin { .recipeList(MysteriousItemConversionCategory::getRecipes) .build(), - spoutFilling = - register("spout_filling", SpoutCategory::new).recipeList(() -> SpoutCategory.getRecipes(ingredientManager)) - .recipes(AllRecipeTypes.FILLING) - .catalyst(AllBlocks.SPOUT::get) - .build(), + spoutFilling = register("spout_filling", SpoutCategory::new).recipes(AllRecipeTypes.FILLING) + .recipeList(() -> SpoutCategory.getRecipes(ingredientManager)) + .catalyst(AllBlocks.SPOUT::get) + .build(), draining = register("draining", ItemDrainCategory::new) .recipeList(() -> ItemDrainCategory.getRecipes(ingredientManager)) diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FillingBySpout.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FillingBySpout.java index 799fef49f..8823fb2c3 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FillingBySpout.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FillingBySpout.java @@ -1,7 +1,6 @@ package com.simibubi.create.content.contraptions.fluids.actors; import java.util.List; -import java.util.Optional; import com.simibubi.create.AllRecipeTypes; import com.simibubi.create.foundation.fluid.FluidIngredient; @@ -27,9 +26,9 @@ public class FillingBySpout { public static int getRequiredAmountForItem(World world, ItemStack stack, FluidStack availableFluid) { wrapper.setInventorySlotContents(0, stack); - Optional> recipe = AllRecipeTypes.FILLING.find(wrapper, world); - if (recipe.isPresent()) { - FillingRecipe fillingRecipe = (FillingRecipe) recipe.get(); + for (IRecipe recipe : world.getRecipeManager() + .getRecipes(AllRecipeTypes.FILLING.getType(), wrapper, world)) { + FillingRecipe fillingRecipe = (FillingRecipe) recipe; FluidIngredient requiredFluid = fillingRecipe.getRequiredFluid(); if (requiredFluid.test(availableFluid)) return requiredFluid.getRequiredAmount(); @@ -42,9 +41,9 @@ public class FillingBySpout { toFill.setAmount(requiredAmount); wrapper.setInventorySlotContents(0, stack); - Optional> recipe = AllRecipeTypes.FILLING.find(wrapper, world); - if (recipe.isPresent()) { - FillingRecipe fillingRecipe = (FillingRecipe) recipe.get(); + for (IRecipe recipe : world.getRecipeManager() + .getRecipes(AllRecipeTypes.FILLING.getType(), wrapper, world)) { + FillingRecipe fillingRecipe = (FillingRecipe) recipe; FluidIngredient requiredFluid = fillingRecipe.getRequiredFluid(); if (requiredFluid.test(toFill)) { List results = fillingRecipe.rollResults(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/potion/PotionFluidHandler.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/potion/PotionFluidHandler.java index aea7da59d..3d7987e7f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/potion/PotionFluidHandler.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/potion/PotionFluidHandler.java @@ -6,6 +6,8 @@ import java.util.Map.Entry; import com.google.common.collect.Lists; import com.simibubi.create.content.contraptions.fluids.potion.PotionFluid.BottleType; +import com.simibubi.create.foundation.fluid.FluidHelper; +import com.simibubi.create.foundation.fluid.FluidIngredient; import com.simibubi.create.foundation.utility.NBTHelper; import com.simibubi.create.foundation.utility.Pair; @@ -41,6 +43,11 @@ public class PotionFluidHandler { return Pair.of(fluid, new ItemStack(Items.GLASS_BOTTLE)); } + public static FluidIngredient potionIngredient(Potion potion, int amount) { + return FluidIngredient.fromFluidStack(FluidHelper.copyStackWithAmount(PotionFluidHandler + .getFluidFromPotionItem(PotionUtils.addPotionToItemStack(new ItemStack(Items.POTION), potion)), amount)); + } + public static FluidStack getFluidFromPotionItem(ItemStack stack) { Potion potion = PotionUtils.getPotionFromItem(stack); List list = PotionUtils.getFullEffectsFromItem(stack); diff --git a/src/main/java/com/simibubi/create/content/schematics/MaterialChecklist.java b/src/main/java/com/simibubi/create/content/schematics/MaterialChecklist.java index 97dc67317..ff102c971 100644 --- a/src/main/java/com/simibubi/create/content/schematics/MaterialChecklist.java +++ b/src/main/java/com/simibubi/create/content/schematics/MaterialChecklist.java @@ -3,6 +3,7 @@ package com.simibubi.create.content.schematics; import java.util.ArrayList; import java.util.Collections; import java.util.List; + import com.google.common.collect.Sets; import com.simibubi.create.content.schematics.ItemRequirement.ItemUseType; import com.simibubi.create.foundation.utility.Lang; @@ -22,7 +23,7 @@ import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.TranslationTextComponent; public class MaterialChecklist { - + public static final int MAX_ENTRIES_PER_PAGE = 5; public Object2IntMap gathered = new Object2IntArrayMap<>(); @@ -78,17 +79,17 @@ public class MaterialChecklist { if (blocksNotLoaded) { textComponent = new StringTextComponent("\n" + TextFormatting.RED); - textComponent = textComponent - .appendSibling(Lang.createTranslationTextComponent( - "materialChecklist.blocksNotLoaded")); - pages.add(StringNBT - .of(ITextComponent.Serializer.toJson(textComponent))); + textComponent = + textComponent.appendSibling(Lang.createTranslationTextComponent("materialChecklist.blocksNotLoaded")); + pages.add(StringNBT.of(ITextComponent.Serializer.toJson(textComponent))); } List keys = new ArrayList<>(Sets.union(required.keySet(), damageRequired.keySet())); Collections.sort(keys, (item1, item2) -> { - String name1 = item1.getRegistryName().getPath(); - String name2 = item2.getRegistryName().getPath(); + String name1 = item1.getRegistryName() + .getPath(); + String name2 = item2.getRegistryName() + .getPath(); return name1.compareTo(name2); }); @@ -106,40 +107,39 @@ public class MaterialChecklist { if (itemsWritten == MAX_ENTRIES_PER_PAGE) { itemsWritten = 0; - pages.add(StringNBT - .of(ITextComponent.Serializer.toJson(textComponent))); + textComponent = + textComponent.appendSibling(new StringTextComponent("\n >>>").applyTextStyle(TextFormatting.BLUE)); + pages.add(StringNBT.of(ITextComponent.Serializer.toJson(textComponent))); textComponent = new StringTextComponent(""); } itemsWritten++; - textComponent - .appendSibling(entry(new ItemStack(item), amount, true)); + textComponent.appendSibling(entry(new ItemStack(item), amount, true)); } for (Item item : completed) { if (itemsWritten == MAX_ENTRIES_PER_PAGE) { itemsWritten = 0; - pages.add(StringNBT - .of(ITextComponent.Serializer.toJson(textComponent))); + textComponent = + textComponent.appendSibling(new StringTextComponent("\n >>>").applyTextStyle(TextFormatting.DARK_GREEN)); + pages.add(StringNBT.of(ITextComponent.Serializer.toJson(textComponent))); textComponent = new StringTextComponent(""); } itemsWritten++; - textComponent.appendSibling( - entry(new ItemStack(item), getRequiredAmount(item), false)); + textComponent.appendSibling(entry(new ItemStack(item), getRequiredAmount(item), false)); } - pages.add( - StringNBT.of(ITextComponent.Serializer.toJson(textComponent))); + pages.add(StringNBT.of(ITextComponent.Serializer.toJson(textComponent))); tag.put("pages", pages); tag.putString("author", "Schematicannon"); tag.putString("title", TextFormatting.BLUE + "Material Checklist"); textComponent = Lang.createTranslationTextComponent("materialChecklist") - .setStyle(new Style().setColor(TextFormatting.BLUE) - .setItalic(Boolean.FALSE)); - book.getOrCreateChildTag("display").putString("Name", - ITextComponent.Serializer.toJson(textComponent)); + .setStyle(new Style().setColor(TextFormatting.BLUE) + .setItalic(Boolean.FALSE)); + book.getOrCreateChildTag("display") + .putString("Name", ITextComponent.Serializer.toJson(textComponent)); book.setTag(tag); return book; @@ -155,14 +155,12 @@ public class MaterialChecklist { private ITextComponent entry(ItemStack item, int amount, boolean unfinished) { int stacks = amount / 64; int remainder = amount % 64; - ITextComponent tc = new TranslationTextComponent( - item.getTranslationKey()); + ITextComponent tc = new TranslationTextComponent(item.getTranslationKey()); if (!unfinished) tc.appendText(" \u2714"); - tc.applyTextStyle( - unfinished ? TextFormatting.BLUE : TextFormatting.DARK_GREEN); - return tc.appendText("\n" + TextFormatting.BLACK + " x" + amount - + TextFormatting.GRAY + " | " + stacks + "\u25A4 +" + remainder + "\n"); + tc.applyTextStyle(unfinished ? TextFormatting.BLUE : TextFormatting.DARK_GREEN); + return tc.appendText("\n" + TextFormatting.BLACK + " x" + amount + TextFormatting.GRAY + " | " + stacks + + "\u25A4 +" + remainder + "\n"); } } diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/CompactingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/CompactingRecipeGen.java index eacaed7c8..56df8ab3b 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/CompactingRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/CompactingRecipeGen.java @@ -2,23 +2,41 @@ package com.simibubi.create.foundation.data.recipe; import com.simibubi.create.AllItems; import com.simibubi.create.AllRecipeTypes; +import com.simibubi.create.content.palettes.AllPaletteBlocks; +import net.minecraft.block.Blocks; import net.minecraft.data.DataGenerator; +import net.minecraft.fluid.Fluids; import net.minecraft.item.Items; -import net.minecraft.tags.FluidTags; import net.minecraftforge.common.Tags; public class CompactingRecipeGen extends ProcessingRecipeGen { GeneratedRecipe - - BLAZE_CAKE = create("blaze_cake", b -> b - .require(Tags.Items.EGGS) - .require(Items.SUGAR) - .require(AllItems.CINDER_FLOUR.get()) - .require(FluidTags.LAVA, 125) - .output(AllItems.BLAZE_CAKE.get(), 1)) - + + GRANITE = create("granite_from_flint", b -> b.require(Items.FLINT) + .require(Items.FLINT) + .require(Fluids.LAVA, 100) + .require(Items.RED_SAND) + .output(Blocks.GRANITE, 1)), + + DIORITE = create("diorite_from_flint", b -> b.require(Items.FLINT) + .require(Items.FLINT) + .require(Fluids.LAVA, 100) + .require(AllPaletteBlocks.LIMESAND.get()) + .output(Blocks.DIORITE, 1)), + + ANDESITE = create("andesite_from_flint", b -> b.require(Items.FLINT) + .require(Items.FLINT) + .require(Fluids.LAVA, 100) + .require(Items.GRAVEL) + .output(Blocks.ANDESITE, 1)), + + BLAZE_CAKE = create("blaze_cake", b -> b.require(Tags.Items.EGGS) + .require(Items.SUGAR) + .require(AllItems.CINDER_FLOUR.get()) + .output(AllItems.BLAZE_CAKE_BASE.get(), 1)) + ; public CompactingRecipeGen(DataGenerator p_i48262_1_) { diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/FillingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/FillingRecipeGen.java index 5aefc579a..e97fc7695 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/FillingRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/FillingRecipeGen.java @@ -1,24 +1,47 @@ package com.simibubi.create.foundation.data.recipe; +import com.simibubi.create.AllItems; import com.simibubi.create.AllRecipeTypes; import com.simibubi.create.AllTags; +import com.simibubi.create.content.contraptions.fluids.potion.PotionFluidHandler; import net.minecraft.data.DataGenerator; +import net.minecraft.fluid.Fluids; import net.minecraft.item.Items; +import net.minecraft.potion.Potions; public class FillingRecipeGen extends ProcessingRecipeGen { - GeneratedRecipe - - HONEY_BOTTLE = create("honey_bottle", b -> b - .require(AllTags.forgeFluidTag("honey"), 250) + GeneratedRecipe + + HONEY_BOTTLE = create("honey_bottle", b -> b.require(AllTags.forgeFluidTag("honey"), 250) .require(Items.GLASS_BOTTLE) .output(Items.field_226638_pX_)), - - MILK_BUCKET = create("milk_bucket", b -> b - .require(AllTags.forgeFluidTag("milk"), 1000) - .require(Items.BUCKET) - .output(Items.MILK_BUCKET)) + + BLAZE_CAKE = create("blaze_cake", b -> b.require(Fluids.LAVA, 250) + .require(AllItems.BLAZE_CAKE_BASE.get()) + .output(AllItems.BLAZE_CAKE.get())), + + GRASS_BLOCK = create("grass_block", b -> b.require(Fluids.WATER, 500) + .require(Items.DIRT) + .output(Items.GRASS_BLOCK)), + + GUNPOWDER = create("gunpowder", b -> b.require(PotionFluidHandler.potionIngredient(Potions.HARMING, 25)) + .require(AllItems.CINDER_FLOUR.get()) + .output(Items.GUNPOWDER)), + + REDSTONE = create("redstone", b -> b.require(PotionFluidHandler.potionIngredient(Potions.STRENGTH, 25)) + .require(AllItems.CINDER_FLOUR.get()) + .output(Items.REDSTONE)), + + GLOWSTONE = create("glowstone", b -> b.require(PotionFluidHandler.potionIngredient(Potions.FIRE_RESISTANCE, 25)) + .require(AllItems.CINDER_FLOUR.get()) + .output(Items.GLOWSTONE_DUST)), + + MILK_BUCKET = create("milk_bucket", b -> b.require(AllTags.forgeFluidTag("milk"), 1000) + .require(Items.BUCKET) + .output(Items.MILK_BUCKET)) + ; public FillingRecipeGen(DataGenerator p_i48262_1_) { diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/MixingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/MixingRecipeGen.java index 2d3d07cee..87ac41546 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/MixingRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/MixingRecipeGen.java @@ -17,12 +17,8 @@ public class MixingRecipeGen extends ProcessingRecipeGen { GeneratedRecipe - TEMPCOBBLE = create("temp_cobble", b -> b.require(Fluids.WATER, 250) - .require(Fluids.LAVA, 25) - .output(Blocks.COBBLESTONE, 1)), - - TEMP_LAVA = create("temp_lava", b -> b.require(Tags.Items.COBBLESTONE) - .output(Fluids.LAVA, 25) + TEMP_LAVA = create("lava_from_cobble", b -> b.require(Tags.Items.COBBLESTONE) + .output(Fluids.LAVA, 50) .requiresHeat(HeatCondition.SUPERHEATED)), TEA = create("tea", b -> b.require(Fluids.WATER, 250) @@ -30,9 +26,8 @@ public class MixingRecipeGen extends ProcessingRecipeGen { .require(ItemTags.LEAVES) .output(AllFluids.TEA.get(), 500) .requiresHeat(HeatCondition.HEATED)), - - CHOCOLATE = create("chocolate", b -> b - .require(AllTags.forgeFluidTag("milk"), 250) + + CHOCOLATE = create("chocolate", b -> b.require(AllTags.forgeFluidTag("milk"), 250) .require(Items.SUGAR) .require(Items.COCOA_BEANS) .output(AllFluids.CHOCOLATE.get(), 250) @@ -48,12 +43,6 @@ public class MixingRecipeGen extends ProcessingRecipeGen { .output(AllItems.CRUSHED_BRASS.get(), 2) .requiresHeat(HeatCondition.HEATED)), - GUNPOWDER = create("gunpowder", b -> b.require(ItemTags.COALS) - .require(AllItems.CRUSHED_ZINC.get()) - .require(Items.GUNPOWDER) - .output(Items.GUNPOWDER, 2) - .requiresHeat(HeatCondition.HEATED)), - CHROMATIC_COMPOUND = create("chromatic_compound", b -> b.require(Tags.Items.DUSTS_GLOWSTONE) .require(Tags.Items.DUSTS_GLOWSTONE) .require(Tags.Items.DUSTS_GLOWSTONE) diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/PressingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/PressingRecipeGen.java index 2fff1d3ea..ca9740ab9 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/PressingRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/PressingRecipeGen.java @@ -6,6 +6,7 @@ import com.simibubi.create.AllRecipeTypes; import net.minecraft.block.Blocks; import net.minecraft.data.DataGenerator; import net.minecraft.item.Items; +import net.minecraft.item.crafting.Ingredient; public class PressingRecipeGen extends ProcessingRecipeGen { @@ -13,6 +14,9 @@ public class PressingRecipeGen extends ProcessingRecipeGen { SUGAR_CANE = create(() -> Items.SUGAR_CANE, b -> b.output(Items.PAPER)), + PATH = create("path", b -> b.require(Ingredient.fromItems(Items.GRASS_BLOCK, Items.DIRT, Items.PODZOL)) + .output(Items.GRASS_PATH)), + IRON = create("iron_ingot", b -> b.require(I.iron()) .output(AllItems.IRON_SHEET.get())), GOLD = create("gold_ingot", b -> b.require(I.gold()) diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java index 856f55c34..4a213e9a2 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java @@ -656,13 +656,14 @@ public class StandardRecipeGen extends CreateRecipeProvider { .patternLine("CBC") .patternLine(" C ")), - ENCASED_BELT = create(AllBlocks.ENCASED_CHAIN_DRIVE).returns(4) + ENCASED_CHAIN_DRIVE = create(AllBlocks.ENCASED_CHAIN_DRIVE).returns(4) .unlockedBy(I::andesiteCasing) - .viaShaped(b -> b.key('C', I.andesiteCasing()) - .key('B', Items.DRIED_KELP) - .patternLine(" C ") - .patternLine("CBC") - .patternLine(" C ")), + .viaShaped(b -> b.key('S', I.shaft()) + .key('B', Tags.Items.NUGGETS_IRON) + .key('C', I.andesiteCasing()) + .patternLine(" B ") + .patternLine("SCS") + .patternLine(" B ")), SPEEDOMETER = create(AllBlocks.SPEEDOMETER).unlockedBy(I::andesite) .viaShaped(b -> b.key('C', Items.COMPASS) diff --git a/src/main/java/com/simibubi/create/foundation/item/HiddenIngredientItem.java b/src/main/java/com/simibubi/create/foundation/item/HiddenIngredientItem.java new file mode 100644 index 000000000..210db152d --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/item/HiddenIngredientItem.java @@ -0,0 +1,21 @@ +package com.simibubi.create.foundation.item; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemGroup; +import net.minecraft.item.ItemStack; +import net.minecraft.util.NonNullList; + +public class HiddenIngredientItem extends Item { + + public HiddenIngredientItem(Properties p_i48487_1_) { + super(p_i48487_1_); + } + + @Override + public void fillItemGroup(ItemGroup p_150895_1_, NonNullList p_150895_2_) { + if (p_150895_1_ != ItemGroup.SEARCH) + return; + super.fillItemGroup(p_150895_1_, p_150895_2_); + } + +} diff --git a/src/main/resources/assets/create/textures/item/blaze_cake_base.png b/src/main/resources/assets/create/textures/item/blaze_cake_base.png new file mode 100644 index 0000000000000000000000000000000000000000..6fc04b7f99b645d04cea183a6a0458a32ca08219 GIT binary patch literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}T0G|+7ARQnrovNV`uBcdKWYp^9