Skip to content

Commit afa8c96

Browse files
committed
Merge remote-tracking branch 'origin/mc1.20.1/dev' into mc1.20.1/dev
2 parents 38d3db0 + d7e66c9 commit afa8c96

File tree

10 files changed

+73
-107
lines changed

10 files changed

+73
-107
lines changed

src/main/java/com/simibubi/create/AllMountedDispenseItemBehaviors.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,9 +173,7 @@ protected ItemStack doExecute(ItemStack stack, MovementContext context, BlockPos
173173
};
174174

175175
public static void registerDefaults() {
176-
for (SpawnEggItem egg : SpawnEggItem.eggs()) {
177-
MountedDispenseBehavior.REGISTRY.register(egg, SPAWN_EGG);
178-
}
176+
MountedDispenseBehavior.REGISTRY.registerProvider(item -> item instanceof SpawnEggItem ? SPAWN_EGG : null);
179177

180178
MountedDispenseBehavior.REGISTRY.register(Items.TNT, TNT);
181179
MountedDispenseBehavior.REGISTRY.register(Items.FIREWORK_ROCKET, FIREWORK);

src/main/java/com/simibubi/create/content/contraptions/ControlledContraptionEntity.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,9 +247,13 @@ public void applyLocalTransforms(PoseStack matrixStack, float partialTicks) {
247247
float angle = getAngle(partialTicks);
248248
Axis axis = getRotationAxis();
249249

250+
// Always apply a nudge to prevent Z fighting for translating contraptions.
251+
// This is particularly noticeable in elevators.
252+
TransformStack.of(matrixStack)
253+
.nudge(getId());
254+
250255
if (axis != null) {
251256
TransformStack.of(matrixStack)
252-
.nudge(getId())
253257
.center()
254258
.rotateDegrees(angle, axis)
255259
.uncenter();
Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,13 @@
11
package com.simibubi.create.content.logistics.filter;
22

3-
import com.simibubi.create.foundation.gui.menu.GhostItemMenu;
3+
import com.simibubi.create.foundation.gui.menu.HeldItemGhostItemMenu;
44

55
import net.minecraft.network.FriendlyByteBuf;
66
import net.minecraft.world.entity.player.Inventory;
7-
import net.minecraft.world.entity.player.Player;
8-
import net.minecraft.world.inventory.ClickType;
97
import net.minecraft.world.inventory.MenuType;
108
import net.minecraft.world.item.ItemStack;
11-
import net.minecraftforge.api.distmarker.Dist;
12-
import net.minecraftforge.api.distmarker.OnlyIn;
139

14-
public abstract class AbstractFilterMenu extends GhostItemMenu<ItemStack> {
10+
public abstract class AbstractFilterMenu extends HeldItemGhostItemMenu {
1511

1612
protected AbstractFilterMenu(MenuType<?> type, int id, Inventory inv, FriendlyByteBuf extraData) {
1713
super(type, id, inv, extraData);
@@ -21,24 +17,11 @@ protected AbstractFilterMenu(MenuType<?> type, int id, Inventory inv, ItemStack
2117
super(type, id, inv, contentHolder);
2218
}
2319

24-
@Override
25-
public void clicked(int slotId, int dragType, ClickType clickTypeIn, Player player) {
26-
if (slotId == playerInventory.selected && clickTypeIn != ClickType.THROW)
27-
return;
28-
super.clicked(slotId, dragType, clickTypeIn, player);
29-
}
30-
3120
@Override
3221
protected boolean allowRepeats() {
3322
return false;
3423
}
3524

36-
@Override
37-
@OnlyIn(Dist.CLIENT)
38-
protected ItemStack createOnClient(FriendlyByteBuf extraData) {
39-
return extraData.readItem();
40-
}
41-
4225
protected abstract int getPlayerInventoryXOffset();
4326

4427
protected abstract int getPlayerInventoryYOffset();
@@ -57,9 +40,4 @@ protected void saveData(ItemStack contentHolder) {
5740
.put("Items", ghostInventory.serializeNBT());
5841
}
5942

60-
@Override
61-
public boolean stillValid(Player player) {
62-
return playerInventory.getSelected() == contentHolder;
63-
}
64-
6543
}

src/main/java/com/simibubi/create/content/redstone/link/controller/LinkedControllerMenu.java

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
package com.simibubi.create.content.redstone.link.controller;
22

33
import com.simibubi.create.AllMenuTypes;
4-
import com.simibubi.create.foundation.gui.menu.GhostItemMenu;
4+
import com.simibubi.create.foundation.gui.menu.HeldItemGhostItemMenu;
55

66
import net.minecraft.network.FriendlyByteBuf;
77
import net.minecraft.world.entity.player.Inventory;
8-
import net.minecraft.world.entity.player.Player;
9-
import net.minecraft.world.inventory.ClickType;
108
import net.minecraft.world.inventory.MenuType;
119
import net.minecraft.world.item.ItemStack;
10+
1211
import net.minecraftforge.items.ItemStackHandler;
1312
import net.minecraftforge.items.SlotItemHandler;
1413

15-
public class LinkedControllerMenu extends GhostItemMenu<ItemStack> {
14+
public class LinkedControllerMenu extends HeldItemGhostItemMenu {
1615

1716
public LinkedControllerMenu(MenuType<?> type, int id, Inventory inv, FriendlyByteBuf extraData) {
1817
super(type, id, inv, extraData);
@@ -26,11 +25,6 @@ public static LinkedControllerMenu create(int id, Inventory inv, ItemStack filte
2625
return new LinkedControllerMenu(AllMenuTypes.LINKED_CONTROLLER.get(), id, inv, filterItem);
2726
}
2827

29-
@Override
30-
protected ItemStack createOnClient(FriendlyByteBuf extraData) {
31-
return extraData.readItem();
32-
}
33-
3428
@Override
3529
protected ItemStackHandler createGhostInventory() {
3630
return LinkedControllerItem.getFrequencyItems(contentHolder);
@@ -64,16 +58,4 @@ protected boolean allowRepeats() {
6458
return true;
6559
}
6660

67-
@Override
68-
public void clicked(int slotId, int dragType, ClickType clickTypeIn, Player player) {
69-
if (slotId == playerInventory.selected && clickTypeIn != ClickType.THROW)
70-
return;
71-
super.clicked(slotId, dragType, clickTypeIn, player);
72-
}
73-
74-
@Override
75-
public boolean stillValid(Player playerIn) {
76-
return playerInventory.getSelected() == contentHolder;
77-
}
78-
7961
}

src/main/java/com/simibubi/create/content/trains/schedule/ScheduleMenu.java

Lines changed: 2 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
package com.simibubi.create.content.trains.schedule;
22

3-
import com.simibubi.create.foundation.gui.menu.GhostItemMenu;
3+
import com.simibubi.create.foundation.gui.menu.HeldItemGhostItemMenu;
44

55
import net.minecraft.network.FriendlyByteBuf;
66
import net.minecraft.world.Container;
77
import net.minecraft.world.entity.player.Inventory;
8-
import net.minecraft.world.entity.player.Player;
9-
import net.minecraft.world.inventory.ClickType;
108
import net.minecraft.world.inventory.MenuType;
119
import net.minecraft.world.inventory.Slot;
1210
import net.minecraft.world.item.ItemStack;
@@ -15,7 +13,7 @@
1513
import net.minecraftforge.items.ItemStackHandler;
1614
import net.minecraftforge.items.SlotItemHandler;
1715

18-
public class ScheduleMenu extends GhostItemMenu<ItemStack> {
16+
public class ScheduleMenu extends HeldItemGhostItemMenu {
1917

2018
public boolean slotsActive = true;
2119
public int targetSlotsActive = 1;
@@ -35,23 +33,11 @@ protected ItemStackHandler createGhostInventory() {
3533
return new ItemStackHandler(slots);
3634
}
3735

38-
@Override
39-
public void clicked(int index, int dragType, ClickType clickType, Player player) {
40-
if (!this.isInSlot(index) || clickType == ClickType.THROW || clickType == ClickType.CLONE) {
41-
super.clicked(index, dragType, clickType, player);
42-
}
43-
}
44-
4536
@Override
4637
protected boolean allowRepeats() {
4738
return true;
4839
}
4940

50-
@Override
51-
protected ItemStack createOnClient(FriendlyByteBuf extraData) {
52-
return extraData.readItem();
53-
}
54-
5541
@Override
5642
protected void addSlots() {
5743
addPlayerSlots(46, 140);
@@ -67,22 +53,6 @@ protected Slot createPlayerSlot(Inventory inventory, int index, int x, int y) {
6753
@Override
6854
protected void saveData(ItemStack contentHolder) {}
6955

70-
@Override
71-
public boolean stillValid(Player player) {
72-
return playerInventory.getSelected() == contentHolder;
73-
}
74-
75-
@Override
76-
public boolean canTakeItemForPickAll(ItemStack stack, Slot slot) {
77-
// prevent pick-all from taking this schedule out of its slot
78-
return super.canTakeItemForPickAll(stack, slot) && !this.isInSlot(slot.index);
79-
}
80-
81-
protected boolean isInSlot(int index) {
82-
// Inventory has the hotbar as 0-8, but menus put the hotbar at 27-35
83-
return index >= 27 && index - 27 == playerInventory.selected;
84-
}
85-
8656
class InactiveSlot extends Slot {
8757

8858
public InactiveSlot(Container pContainer, int pIndex, int pX, int pY) {

src/main/java/com/simibubi/create/content/trains/signal/SignalBlock.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.simibubi.create.content.trains.signal;
22

33
import java.util.Optional;
4-
import java.util.Random;
54

65
import javax.annotation.Nullable;
76

@@ -82,7 +81,7 @@ public void neighborChanged(BlockState pState, Level pLevel, BlockPos pPos, Bloc
8281
Optional<SignalBlockEntity> ste = getBlockEntityOptional(pLevel, pPos);
8382
boolean neighborPowered = false;
8483
if (ste.isEmpty() || !ste.get().computerBehaviour.hasAttachedComputer()) {
85-
powered = pLevel.hasNeighborSignal(pPos);
84+
neighborPowered = pLevel.hasNeighborSignal(pPos);
8685
}
8786
if (powered == neighborPowered)
8887
return;
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package com.simibubi.create.foundation.gui.menu;
2+
3+
import net.minecraft.network.FriendlyByteBuf;
4+
import net.minecraft.world.entity.player.Inventory;
5+
import net.minecraft.world.entity.player.Player;
6+
import net.minecraft.world.inventory.ClickType;
7+
import net.minecraft.world.inventory.MenuType;
8+
import net.minecraft.world.inventory.Slot;
9+
import net.minecraft.world.item.ItemStack;
10+
11+
import net.minecraftforge.api.distmarker.Dist;
12+
import net.minecraftforge.api.distmarker.OnlyIn;
13+
14+
/**
15+
* A {@link GhostItemMenu} that is linked to the item in a player's main hand. Prevents its owner item from being manipulated.
16+
*/
17+
public abstract class HeldItemGhostItemMenu extends GhostItemMenu<ItemStack> {
18+
protected HeldItemGhostItemMenu(MenuType<?> type, int id, Inventory inv, FriendlyByteBuf extraData) {
19+
super(type, id, inv, extraData);
20+
}
21+
22+
protected HeldItemGhostItemMenu(MenuType<?> type, int id, Inventory inv, ItemStack contentHolder) {
23+
super(type, id, inv, contentHolder);
24+
}
25+
26+
@Override
27+
@OnlyIn(Dist.CLIENT)
28+
protected ItemStack createOnClient(FriendlyByteBuf extraData) {
29+
return extraData.readItem();
30+
}
31+
32+
@Override
33+
public void clicked(int index, int dragType, ClickType clickType, Player player) {
34+
if (!this.isInSlot(index) || clickType == ClickType.THROW || clickType == ClickType.CLONE) {
35+
super.clicked(index, dragType, clickType, player);
36+
}
37+
}
38+
39+
@Override
40+
public boolean canTakeItemForPickAll(ItemStack stack, Slot slot) {
41+
// prevent pick-all from taking the owner item out of its slot
42+
return super.canTakeItemForPickAll(stack, slot) && !this.isInSlot(slot.index);
43+
}
44+
45+
@Override
46+
public boolean stillValid(Player player) {
47+
return playerInventory.getSelected() == contentHolder;
48+
}
49+
50+
protected boolean isInSlot(int index) {
51+
// Inventory has the hotbar as 0-8, but menus put the hotbar at 27-35
52+
return index >= 27 && index - 27 == playerInventory.selected;
53+
}
54+
}

src/main/java/com/simibubi/create/impl/registry/SimpleRegistryImpl.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,10 @@ public synchronized void register(K object, V value) {
2929

3030
V existing = this.registrations.get(object);
3131
if (existing != null) {
32-
String message = String.format("Tried to register duplicate values for object %s: old=%s, new=%s", object, existing, value);
33-
throw new IllegalArgumentException(message);
32+
throw new IllegalArgumentException(String.format(
33+
"Tried to register duplicate values for object %s (%s): old=%s, new=%s",
34+
object, object.getClass(), existing, value
35+
));
3436
}
3537

3638
this.registrations.put(object, value);

src/main/resources/assets/create/lang/lt_LT.json

Lines changed: 0 additions & 21 deletions
This file was deleted.

src/main/resources/assets/create/lang/lt_lt.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,4 @@
5151
"block.create.gearshift": "Pavarų svirtis",
5252
"block.create.large_cogwheel": "Didelis Dantratis",
5353
"item.create.vertical_gearbox": "Vertikali Pavarų Dėžė"
54-
}
54+
}

0 commit comments

Comments
 (0)