The gaming wont end

- Re-packagers can no longer unpack into another packager
- Added a message when trying to connect a packager to a PSI
- Fixed key presses triggering ui events when a text input is focused
- Added redstone dust to packager recipe
- Made category hiding in stock keeper UI less hacky
This commit is contained in:
simibubi 2025-02-12 10:51:40 +01:00
parent cc4e272392
commit b18e28a86c
12 changed files with 46 additions and 24 deletions

View file

@ -1,4 +1,4 @@
// 1.20.1 2025-02-07T14:33:10.4318818 Registrate Provider for create [Recipes, Advancements, Loot Tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)]
// 1.20.1 2025-02-12T10:49:57.1047644 Registrate Provider for create [Recipes, Advancements, Loot Tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)]
60bbdf92d2ac9824ea6144955c74043a6005f79d assets/create/blockstates/acacia_window.json
6a67703c2697d81b7dc83e9d72a66f9c9ff08383 assets/create/blockstates/acacia_window_pane.json
c3ae87b62e81d8e9476eccd793bb1548d74c66a1 assets/create/blockstates/adjustable_chain_gearshift.json
@ -642,8 +642,8 @@ b0d8f08968763a5f74e5cd5644377a76a9f39753 assets/create/blockstates/yellow_toolbo
fe8c497aacc641c2f01cec90bba9f19e59cc2ed2 assets/create/blockstates/yellow_valve_handle.json
e819e93fdcbe9fd9c050a052d2718ff3b3539365 assets/create/blockstates/zinc_block.json
64121dcb216381c83b4fe28aa361ea07c24c9ad0 assets/create/blockstates/zinc_ore.json
99c03ec65894ea7d88e3346c5e0c086a7acec6af assets/create/lang/en_ud.json
5f0262b9f6c1139659f6dab4d9c371be50503c0b assets/create/lang/en_us.json
443742f2bb4fc520ec7db483fd22425884cb95be assets/create/lang/en_ud.json
282779fe7ecc64cd99c08e3a7397646af9f500c4 assets/create/lang/en_us.json
a97e1060e00ae701a02e39cd4ef8054cf345fac4 assets/create/models/block/acacia_window.json
103e032c0b1a0a6a27c67da8c91179a564bd281c assets/create/models/block/acacia_window_pane_noside.json
fb00b627abda76ad4fea867ca57dbfadd24fffa3 assets/create/models/block/acacia_window_pane_noside_alt.json

View file

@ -1,4 +1,4 @@
// 1.20.1 2025-02-07T11:36:36.6037564 Create's Standard Recipes
// 1.20.1 2025-02-12T10:49:57.1801346 Create's Standard Recipes
a8cc4af26f6c7c45a9eef12e92af1452fe042454 data/create/advancements/recipes/combat/crafting/appliances/netherite_backtank.json
2c2639c7b307ee7c7a4e97e5efebf496788998ad data/create/advancements/recipes/combat/crafting/appliances/netherite_backtank_from_netherite.json
81dcf0cb1aa99e39bc7d1a386e07cad4cee7d8b9 data/create/advancements/recipes/combat/crafting/appliances/netherite_diving_boots.json
@ -466,7 +466,7 @@ d994ef262b16357984d3ed62f6563d2f37266193 data/create/recipes/crafting/logistics/
4daadd2c67fe8bbf5594fb50dcf051dad7f9997a data/create/recipes/crafting/logistics/factory_gauge.json
2fb7722137990b9b9be967a1f766e138678d0573 data/create/recipes/crafting/logistics/factory_gauge_clear.json
f3ba21e8979256fb78cd618ac4f1082b0b2f9e0c data/create/recipes/crafting/logistics/item_hatch.json
38c6236d7ac157a75ac5a98ab9b712eabb0c78c4 data/create/recipes/crafting/logistics/packager.json
7d66c3b5d704f583e32617b37620e749462eaa1f data/create/recipes/crafting/logistics/packager.json
6b51fa6a5bd1e9dc8e7387269d985cd622ab8ada data/create/recipes/crafting/logistics/packager_from_conversion.json
6852cb8ff6916981920ab9c987c6e357e9236511 data/create/recipes/crafting/logistics/package_frogport.json
dd28b63ceb46a1e9071549c4f8ff32f520c667f6 data/create/recipes/crafting/logistics/powered_latch.json

View file

@ -1580,6 +1580,7 @@
"create.package_port.cannot_reach_down": "pɹɐʍuʍop ʇɔǝuuoɔ ʇouuɐƆ",
"create.package_port.too_far": "ʎɐʍɐ ɹɐɟ oo⟘",
"create.package_port.valid": "✔ ʇɔǝuuoƆ uɐƆ",
"create.packager.no_portable_storage": ןʇɔǝɹıp ǝbɐɹoʇS ǝןqɐʇɹoԀ ɥʇıʍ ǝɔɐɟɹǝʇuı ʇouuɐɔ sɹǝbɐʞɔɐԀ",
"create.packager_link.clear": "uoıʇɔǝןǝs pǝɹɐǝןƆ",
"create.packager_link.set": "pǝʇɔǝןǝs ʇǝbɹɐ⟘",
"create.packager_link.success": "ʇǝbɹɐʇ oʇ punoq ʎןןnɟssǝɔɔnS",

View file

@ -1580,6 +1580,7 @@
"create.package_port.cannot_reach_down": "Cannot connect downward",
"create.package_port.too_far": "Too far away",
"create.package_port.valid": "Can Connect ✔",
"create.packager.no_portable_storage": "Packagers cannot interface with Portable Storage directly",
"create.packager_link.clear": "Cleared selection",
"create.packager_link.set": "Target selected",
"create.packager_link.success": "Successfully bound to target",

View file

@ -7,12 +7,15 @@
},
"C": {
"tag": "forge:ingots/iron"
},
"R": {
"tag": "forge:dusts/redstone"
}
},
"pattern": [
" C ",
"CAC",
" C "
"RCR"
],
"result": {
"item": "create:packager"

View file

@ -9,6 +9,7 @@ import com.simibubi.create.content.logistics.box.PackageItem;
import com.simibubi.create.foundation.advancement.AdvancementBehaviour;
import com.simibubi.create.foundation.block.IBE;
import com.simibubi.create.foundation.block.WrenchableDirectionalBlock;
import com.simibubi.create.foundation.utility.CreateLang;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
@ -33,6 +34,7 @@ import net.minecraft.world.level.pathfinder.PathComputationType;
import net.minecraft.world.phys.BlockHitResult;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.ForgeCapabilities;
import net.minecraftforge.common.util.FakePlayer;
import net.minecraftforge.items.IItemHandler;
public class PackagerBlock extends WrenchableDirectionalBlock implements IBE<PackagerBlockEntity>, IWrenchable {
@ -71,12 +73,23 @@ public class PackagerBlock extends WrenchableDirectionalBlock implements IBE<Pac
}
}
Player player = context.getPlayer();
if (preferredFacing == null) {
Direction facing = context.getNearestLookingDirection();
preferredFacing = context.getPlayer() != null && context.getPlayer()
preferredFacing = player != null && player
.isShiftKeyDown() ? facing : facing.getOpposite();
}
if (player != null && !(player instanceof FakePlayer)) {
if (AllBlocks.PORTABLE_STORAGE_INTERFACE.has(context.getLevel()
.getBlockState(context.getClickedPos()
.relative(preferredFacing.getOpposite())))) {
CreateLang.translate("packager.no_portable_storage")
.sendStatus(player);
return null;
}
}
return super.getStateForPlacement(context).setValue(POWERED, context.getLevel()
.hasNeighborSignal(context.getClickedPos()))
.setValue(FACING, preferredFacing);

View file

@ -6,8 +6,6 @@ import java.util.List;
import java.util.Set;
import java.util.UUID;
import org.jetbrains.annotations.NotNull;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllSoundEvents;
import com.simibubi.create.Create;

View file

@ -30,7 +30,7 @@ public class RepackagerBlockEntity extends PackagerBlockEntity {
return false;
IItemHandler targetInv = targetInventory.getInventory();
if (targetInv == null)
if (targetInv == null || targetInv instanceof PackagerItemHandler)
return false;
boolean targetIsCreativeCrate = targetInv instanceof BottomlessItemHandler;

View file

@ -82,13 +82,13 @@ public class StockKeeperRequestScreen extends AbstractSimiContainerScreen<StockK
implements ScreenWithStencils {
public static class CategoryEntry {
ItemStack filterStack;
boolean hidden;
String name;
int y;
int targetBECategory;
public CategoryEntry(ItemStack filterStack, String name, int y) {
this.filterStack = filterStack;
public CategoryEntry(int targetBECategory, String name, int y) {
this.targetBECategory = targetBECategory;
this.name = name;
hidden = false;
this.y = y;
@ -289,7 +289,7 @@ public class StockKeeperRequestScreen extends AbstractSimiContainerScreen<StockK
categories = new ArrayList<>();
for (int i = 0; i < blockEntity.categories.size(); i++) {
ItemStack stack = blockEntity.categories.get(i);
CategoryEntry entry = new CategoryEntry(stack, stack.isEmpty() ? ""
CategoryEntry entry = new CategoryEntry(i, stack.isEmpty() ? ""
: stack.getHoverName()
.getString(),
0);
@ -297,7 +297,7 @@ public class StockKeeperRequestScreen extends AbstractSimiContainerScreen<StockK
categories.add(entry);
}
CategoryEntry unsorted = new CategoryEntry(null, CreateLang.translate("gui.stock_keeper.unsorted_category")
CategoryEntry unsorted = new CategoryEntry(-1, CreateLang.translate("gui.stock_keeper.unsorted_category")
.string(), 0);
unsorted.hidden = hiddenCategories.contains(-1);
categories.add(unsorted);
@ -953,7 +953,7 @@ public class StockKeeperRequestScreen extends AbstractSimiContainerScreen<StockK
int localY = y - itemsY;
for (int categoryIndex = 0; categoryIndex < displayedItems.size(); categoryIndex++) {
CategoryEntry entry = categories.isEmpty() ? new CategoryEntry(null, "", 0) : categories.get(categoryIndex);
CategoryEntry entry = categories.isEmpty() ? new CategoryEntry(0, "", 0) : categories.get(categoryIndex);
if (entry.hidden)
continue;
@ -1074,7 +1074,10 @@ public class StockKeeperRequestScreen extends AbstractSimiContainerScreen<StockK
if (displayedItems.get(categoryIndex)
.isEmpty())
continue;
int indexOf = entry.filterStack == null ? -1 : blockEntity.categories.indexOf(entry.filterStack);
int indexOf = entry.targetBECategory;
if (indexOf >= blockEntity.categories.size())
continue;
hiddenCategories.remove(indexOf);
if (!entry.hidden)
hiddenCategories.add(indexOf);

View file

@ -1064,9 +1064,10 @@ public class StandardRecipeGen extends CreateRecipeProvider {
PACKAGER = create(AllBlocks.PACKAGER).unlockedBy(I::cardboard)
.viaShaped(b -> b.define('C', I.iron())
.define('A', AllBlocks.CARDBOARD_BLOCK)
.define('R', I.redstone())
.pattern(" C ")
.pattern("CAC")
.pattern(" C ")),
.pattern("RCR")),
PACKAGER_CYCLE = conversionCycle(ImmutableList.of(AllBlocks.PACKAGER, AllBlocks.REPACKAGER)),

View file

@ -6,7 +6,8 @@ import java.util.List;
import javax.annotation.ParametersAreNonnullByDefault;
import com.mojang.blaze3d.platform.InputConstants;
import org.lwjgl.glfw.GLFW;
import com.simibubi.create.foundation.gui.AllGuiTextures;
import net.createmod.catnip.gui.TickableGuiEventListener;
@ -140,9 +141,8 @@ public abstract class AbstractSimiContainerScreen<T extends AbstractContainerMen
@Override
public boolean keyPressed(int pKeyCode, int pScanCode, int pModifiers) {
InputConstants.Key mouseKey = InputConstants.getKey(pKeyCode, pScanCode);
if (getFocused() instanceof EditBox && this.minecraft.options.keyInventory.isActiveAndMatches(mouseKey))
return false;
if (getFocused() instanceof EditBox && pKeyCode != GLFW.GLFW_KEY_ESCAPE)
return getFocused().keyPressed(pKeyCode, pScanCode, pModifiers);
return super.keyPressed(pKeyCode, pScanCode, pModifiers);
}

View file

@ -1023,6 +1023,8 @@
"create.contraption.door_control.none.short": "None",
"create.contraption.door_control.player_facing": "You are facing: %1$s",
"create.packager.no_portable_storage": "Packagers cannot interface with Portable Storage directly",
"create.packager_link.set": "Target selected",
"create.packager_link.success": "Successfully bound to target",
"create.packager_link.clear": "Cleared selection",