Skip to content

Commit ff4eb58

Browse files
authored
Merge branch 'Creators-of-Create:mc1.18/dev' into mc1.18/fixSignalNPE
2 parents fbc62d4 + 2201d87 commit ff4eb58

File tree

74 files changed

+1849
-1636
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+1849
-1636
lines changed

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ body:
4949
label: Mod Version
5050
description: The version of the mod you were using when the bug occured
5151
options:
52+
- "0.5.1f"
5253
- "0.5.1e"
5354
- "0.5.1d"
5455
- "0.5.1c"

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ org.gradle.jvmargs = -Xmx3G
44
org.gradle.daemon = false
55

66
# mod version info
7-
mod_version = 0.5.1.e
7+
mod_version = 0.5.1.f
88
artifact_minecraft_version = 1.18.2
99

1010
minecraft_version = 1.18.2

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public class Create {
6161

6262
public static final String ID = "create";
6363
public static final String NAME = "Create";
64-
public static final String VERSION = "0.5.1e";
64+
public static final String VERSION = "0.5.1f";
6565

6666
public static final Logger LOGGER = LogUtils.getLogger();
6767

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,9 @@ public void positionRider(Entity passenger, MoveFunction callback) {
217217
}
218218

219219
public Vec3 getPassengerPosition(Entity passenger, float partialTicks) {
220+
if (contraption == null)
221+
return null;
222+
220223
UUID id = passenger.getUUID();
221224
if (passenger instanceof OrientedContraptionEntity) {
222225
BlockPos localPos = contraption.getBearingPosOf(id);
@@ -231,6 +234,7 @@ public Vec3 getPassengerPosition(Entity passenger, float partialTicks) {
231234
BlockPos seat = contraption.getSeatOf(id);
232235
if (seat == null)
233236
return null;
237+
234238
Vec3 transformedVector = toGlobalVector(Vec3.atLowerCornerOf(seat)
235239
.add(.5, passenger.getMyRidingOffset() + ySize - .15f, .5), partialTicks)
236240
.add(VecHelper.getCenterOf(BlockPos.ZERO))

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -569,6 +569,9 @@ private void repositionOnCart(PoseStack matrixStack, float partialTicks, Entity
569569
private Vec3 getContraptionOffset(float partialTicks, Entity ridingEntity) {
570570
AbstractContraptionEntity parent = (AbstractContraptionEntity) ridingEntity;
571571
Vec3 passengerPosition = parent.getPassengerPosition(this, partialTicks);
572+
if (passengerPosition == null)
573+
return Vec3.ZERO;
574+
572575
double x = passengerPosition.x - Mth.lerp(partialTicks, this.xOld, this.getX());
573576
double y = passengerPosition.y - Mth.lerp(partialTicks, this.yOld, this.getY());
574577
double z = passengerPosition.z - Mth.lerp(partialTicks, this.zOld, this.getZ());

src/main/java/com/simibubi/create/content/contraptions/actors/roller/RollerBlockEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ public void searchForSharedValues() {
117117

118118
protected void acceptSharedValues(int mode, ItemStack filter) {
119119
dontPropagate = true;
120-
this.filtering.setFilter(filter);
120+
this.filtering.setFilter(filter.copy());
121121
this.mode.setValue(mode);
122122
dontPropagate = false;
123123
notifyUpdate();

src/main/java/com/simibubi/create/content/contraptions/actors/roller/RollerMovementBehaviour.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import com.simibubi.create.content.contraptions.render.ContraptionMatrices;
2020
import com.simibubi.create.content.contraptions.render.ContraptionRenderDispatcher;
2121
import com.simibubi.create.content.kinetics.base.BlockBreakingMovementBehaviour;
22-
import com.simibubi.create.content.logistics.filter.FilterItem;
22+
import com.simibubi.create.content.logistics.filter.FilterItemStack;
2323
import com.simibubi.create.content.trains.bogey.StandardBogeyBlock;
2424
import com.simibubi.create.content.trains.entity.Carriage;
2525
import com.simibubi.create.content.trains.entity.CarriageBogey;
@@ -193,10 +193,10 @@ protected List<BlockPos> getPositionsToBreak(MovementContext context, BlockPos v
193193

194194
int startingY = 1;
195195
if (!getStateToPaveWith(context).isAir()) {
196-
ItemStack filter = ItemStack.of(context.blockEntityData.getCompound("Filter"));
197-
if (!ItemHelper
196+
FilterItemStack filter = context.getFilterFromBE();
197+
if (!ItemHelper
198198
.extract(context.contraption.getSharedInventory(),
199-
stack -> FilterItem.test(context.world, stack, filter), 1, true)
199+
stack -> filter.test(context.world, stack), 1, true)
200200
.isEmpty())
201201
startingY = 0;
202202
}
@@ -473,9 +473,9 @@ protected PaveResult tryFill(MovementContext context, BlockPos targetPos, BlockS
473473
.isEmpty())
474474
return PaveResult.FAIL;
475475

476-
ItemStack filter = ItemStack.of(context.blockEntityData.getCompound("Filter"));
476+
FilterItemStack filter = context.getFilterFromBE();
477477
ItemStack held = ItemHelper.extract(context.contraption.getSharedInventory(),
478-
stack -> FilterItem.test(context.world, stack, filter), 1, false);
478+
stack -> filter.test(context.world, stack), 1, false);
479479
if (held.isEmpty())
480480
return PaveResult.FAIL;
481481

src/main/java/com/simibubi/create/content/contraptions/behaviour/MovementContext.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.function.UnaryOperator;
44

55
import com.simibubi.create.content.contraptions.Contraption;
6+
import com.simibubi.create.content.logistics.filter.FilterItemStack;
67
import com.simibubi.create.foundation.utility.VecHelper;
78

89
import net.minecraft.core.BlockPos;
@@ -31,6 +32,8 @@ public class MovementContext {
3132
public CompoundTag data;
3233
public Contraption contraption;
3334
public Object temporaryData;
35+
36+
private FilterItemStack filter;
3437

3538
public MovementContext(Level world, StructureBlockInfo info, Contraption contraption) {
3639
this.world = world;
@@ -47,6 +50,7 @@ public MovementContext(Level world, StructureBlockInfo info, Contraption contrap
4750
position = null;
4851
data = new CompoundTag();
4952
stall = false;
53+
filter = null;
5054
}
5155

5256
public float getAnimationSpeed() {
@@ -83,5 +87,11 @@ public CompoundTag writeToNBT(CompoundTag nbt) {
8387
nbt.put("Data", data.copy());
8488
return nbt;
8589
}
90+
91+
public FilterItemStack getFilterFromBE() {
92+
if (filter != null)
93+
return filter;
94+
return filter = FilterItemStack.of(blockEntityData.getCompound("Filter"));
95+
}
8696

8797
}

src/main/java/com/simibubi/create/content/decoration/placard/PlacardBlock.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.simibubi.create.AllSoundEvents;
99
import com.simibubi.create.content.equipment.wrench.IWrenchable;
1010
import com.simibubi.create.content.logistics.filter.FilterItem;
11+
import com.simibubi.create.content.logistics.filter.FilterItemStack;
1112
import com.simibubi.create.content.schematics.requirement.ISpecialBlockItemRequirement;
1213
import com.simibubi.create.content.schematics.requirement.ItemRequirement;
1314
import com.simibubi.create.content.schematics.requirement.ItemRequirement.ItemUseType;
@@ -132,9 +133,9 @@ public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Pla
132133
return InteractionResult.FAIL;
133134
if (pState.getValue(POWERED))
134135
return InteractionResult.FAIL;
135-
136-
boolean test = inBlock.getItem() instanceof FilterItem ? FilterItem.test(pLevel, inHand, inBlock)
137-
: ItemHandlerHelper.canItemStacksStack(inHand, inBlock);
136+
137+
boolean test = inBlock.getItem() instanceof FilterItem ? FilterItemStack.of(inBlock)
138+
.test(pLevel, inHand) : ItemHandlerHelper.canItemStacksStack(inHand, inBlock);
138139
if (!test) {
139140
AllSoundEvents.DENY.play(pLevel, null, pPos, 1, 1);
140141
return InteractionResult.SUCCESS;

src/main/java/com/simibubi/create/content/equipment/blueprint/BlueprintEntity.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import com.simibubi.create.AllItems;
1414
import com.simibubi.create.Create;
1515
import com.simibubi.create.content.logistics.filter.FilterItem;
16+
import com.simibubi.create.content.logistics.filter.FilterItemStack;
1617
import com.simibubi.create.content.schematics.requirement.ISpecialEntityItemRequirement;
1718
import com.simibubi.create.content.schematics.requirement.ItemRequirement;
1819
import com.simibubi.create.content.schematics.requirement.ItemRequirement.ItemUseType;
@@ -365,14 +366,14 @@ public InteractionResult interactAt(Player player, Vec3 vec, InteractionHand han
365366
boolean success = true;
366367

367368
Search: for (int i = 0; i < 9; i++) {
368-
ItemStack requestedItem = items.getStackInSlot(i);
369+
FilterItemStack requestedItem = FilterItemStack.of(items.getStackInSlot(i));
369370
if (requestedItem.isEmpty()) {
370371
craftingGrid.put(i, ItemStack.EMPTY);
371372
continue;
372373
}
373374

374375
for (int slot = 0; slot < playerInv.getSlots(); slot++) {
375-
if (!FilterItem.test(level, playerInv.getStackInSlot(slot), requestedItem))
376+
if (!requestedItem.test(level, playerInv.getStackInSlot(slot)))
376377
continue;
377378
ItemStack currentItem = playerInv.extractItem(slot, 1, false);
378379
if (stacksTaken.containsKey(slot))

0 commit comments

Comments
 (0)