diff --git a/src/main/java/edn/stratodonut/trackwork/TrackworkMod.java b/src/main/java/edn/stratodonut/trackwork/TrackworkMod.java index dfbd04f..08bb0bf 100644 --- a/src/main/java/edn/stratodonut/trackwork/TrackworkMod.java +++ b/src/main/java/edn/stratodonut/trackwork/TrackworkMod.java @@ -57,6 +57,10 @@ public void onCtor() { DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> TrackworkSpriteShifts::init); } + public static void warn(String format, Object arg) { + LOGGER.warn(format, arg); + } + public static void warn(String format, Object... args) { LOGGER.warn(format, args); } diff --git a/src/main/java/edn/stratodonut/trackwork/tracks/blocks/PhysEntityTrackBlockEntity.java b/src/main/java/edn/stratodonut/trackwork/tracks/blocks/PhysEntityTrackBlockEntity.java index c24377a..074591f 100644 --- a/src/main/java/edn/stratodonut/trackwork/tracks/blocks/PhysEntityTrackBlockEntity.java +++ b/src/main/java/edn/stratodonut/trackwork/tracks/blocks/PhysEntityTrackBlockEntity.java @@ -224,7 +224,6 @@ public void tick() { } if (this.level == null) { - TrackworkMod.warn("Level is null????"); return; } if (this.assembled && !this.level.isClientSide) { @@ -243,8 +242,7 @@ public void tick() { }; } if (wheel == null) { - // TODO: Figure out why this is happening - TrackworkMod.warn("Wheel is NULL after assembly! At %s", this.getBlockPos().toString()); + TrackworkMod.warn("Wheel is NULL after assembly! At {}", this.getBlockPos().toString()); return; } wheel.keepAlive(); diff --git a/src/main/java/edn/stratodonut/trackwork/tracks/data/PhysEntityTrackData.java b/src/main/java/edn/stratodonut/trackwork/tracks/data/PhysEntityTrackData.java index d5dce5c..e24abb7 100644 --- a/src/main/java/edn/stratodonut/trackwork/tracks/data/PhysEntityTrackData.java +++ b/src/main/java/edn/stratodonut/trackwork/tracks/data/PhysEntityTrackData.java @@ -6,6 +6,8 @@ import org.valkyrienskies.core.apigame.constraints.VSConstraintAndId; import org.valkyrienskies.core.apigame.constraints.VSHingeOrientationConstraint; +import javax.annotation.Nonnull; + @JsonAutoDetect( fieldVisibility = JsonAutoDetect.Visibility.ANY ) @@ -52,11 +54,11 @@ private PhysEntityTrackData(Vector3dc trackPos, Vector3dc wheelAxis, long shiptr this.previousSpringDist = springDist; } - public final PhysEntityTrackData updateWith(UpdateData update) { + public final PhysEntityTrackData updateWith(@Nonnull UpdateData update) { return new PhysEntityTrackData(this.trackPos, this.wheelAxis, this.shiptraptionID, update.springConstant, update.damperConstant, this.springConstraint, axleConstraint, springId, axleId, update.trackRPM, this.previousSpringDist); } - public static PhysEntityTrackData from(CreateData data) { + public static PhysEntityTrackData from(@Nonnull CreateData data) { return new PhysEntityTrackData(data.trackPos, data.wheelAxis, data.shiptraptionID, data.springConstant, data.damperConstant, (VSAttachmentConstraint) data.springConstraint.getVsConstraint(), (VSHingeOrientationConstraint) data.axleConstraint.getVsConstraint(), data.springConstraint.getConstraintId(), data.axleConstraint.getConstraintId(), data.trackRPM, 0); } diff --git a/src/main/java/edn/stratodonut/trackwork/tracks/forces/PhysEntityTrackController.java b/src/main/java/edn/stratodonut/trackwork/tracks/forces/PhysEntityTrackController.java index c502dfe..ea418b9 100644 --- a/src/main/java/edn/stratodonut/trackwork/tracks/forces/PhysEntityTrackController.java +++ b/src/main/java/edn/stratodonut/trackwork/tracks/forces/PhysEntityTrackController.java @@ -1,5 +1,6 @@ package edn.stratodonut.trackwork.tracks.forces; +import edn.stratodonut.trackwork.TrackworkMod; import edn.stratodonut.trackwork.tracks.data.PhysEntityTrackData; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnore; @@ -61,7 +62,8 @@ public void applyForces(@NotNull PhysShip physShip) { public void applyForcesAndLookupPhysShips(@NotNull PhysShip physShip, @NotNull Function1 lookupPhysShip) { while (!this.createdTrackData.isEmpty()) { Pair createData = this.createdTrackData.remove(); - this.trackData.put(createData.getFirst(), PhysEntityTrackData.from(createData.getSecond())); + if (createData.getFirst() != null && createData.getSecond() != null) this.trackData.put(createData.getFirst(), PhysEntityTrackData.from(createData.getSecond())); + else TrackworkMod.warn("Tried to create a PE track of ID {} with no data!", createData.getFirst()); } this.trackUpdateData.forEach((id, data) -> {