mirror of
https://github.com/Sollace/Unicopia.git
synced 2025-02-12 16:14:24 +01:00
Fix crash when summoning crystal shards
This commit is contained in:
parent
d1e6a62d02
commit
407c06746a
1 changed files with 9 additions and 4 deletions
|
@ -5,6 +5,8 @@ import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import com.minelittlepony.unicopia.USounds;
|
import com.minelittlepony.unicopia.USounds;
|
||||||
import com.minelittlepony.unicopia.item.UItems;
|
import com.minelittlepony.unicopia.item.UItems;
|
||||||
|
|
||||||
|
@ -16,6 +18,7 @@ import net.minecraft.entity.data.TrackedDataHandlerRegistry;
|
||||||
import net.minecraft.fluid.Fluids;
|
import net.minecraft.fluid.Fluids;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NbtCompound;
|
import net.minecraft.nbt.NbtCompound;
|
||||||
|
import net.minecraft.nbt.NbtElement;
|
||||||
import net.minecraft.predicate.entity.EntityPredicates;
|
import net.minecraft.predicate.entity.EntityPredicates;
|
||||||
import net.minecraft.server.world.ServerWorld;
|
import net.minecraft.server.world.ServerWorld;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
@ -44,7 +47,6 @@ public class CrystalShardsEntity extends StationaryObjectEntity {
|
||||||
CrystalShardsEntity shards = UEntities.CRYSTAL_SHARDS.create(world);
|
CrystalShardsEntity shards = UEntities.CRYSTAL_SHARDS.create(world);
|
||||||
shards.setPosition(pos.offset(face).toCenterPos());
|
shards.setPosition(pos.offset(face).toCenterPos());
|
||||||
shards.setAttachmentFace(face);
|
shards.setAttachmentFace(face);
|
||||||
shards.setYaw(world.getRandom().nextFloat() * 360);
|
|
||||||
shards.setCorrupt(true);
|
shards.setCorrupt(true);
|
||||||
|
|
||||||
world.spawnEntity(shards);
|
world.spawnEntity(shards);
|
||||||
|
@ -82,6 +84,7 @@ public class CrystalShardsEntity extends StationaryObjectEntity {
|
||||||
|
|
||||||
public CrystalShardsEntity(EntityType<CrystalShardsEntity> type, World world) {
|
public CrystalShardsEntity(EntityType<CrystalShardsEntity> type, World world) {
|
||||||
super(type, world);
|
super(type, world);
|
||||||
|
setYaw(world.getRandom().nextFloat() * 360);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -135,8 +138,8 @@ public class CrystalShardsEntity extends StationaryObjectEntity {
|
||||||
return Objects.requireNonNullElse(dataTracker.get(ATTACHMENT_FACE), Direction.UP);
|
return Objects.requireNonNullElse(dataTracker.get(ATTACHMENT_FACE), Direction.UP);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAttachmentFace(Direction face) {
|
public void setAttachmentFace(@Nullable Direction face) {
|
||||||
dataTracker.set(ATTACHMENT_FACE, face);
|
dataTracker.set(ATTACHMENT_FACE, face == null ? Direction.UP : face);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -211,7 +214,9 @@ public class CrystalShardsEntity extends StationaryObjectEntity {
|
||||||
@Override
|
@Override
|
||||||
public void readCustomDataFromNbt(NbtCompound nbt) {
|
public void readCustomDataFromNbt(NbtCompound nbt) {
|
||||||
super.readCustomDataFromNbt(nbt);
|
super.readCustomDataFromNbt(nbt);
|
||||||
setYaw(nbt.getFloat("yaw"));
|
if (nbt.contains("yaw", NbtElement.FLOAT_TYPE)) {
|
||||||
|
setYaw(nbt.getFloat("yaw"));
|
||||||
|
}
|
||||||
setGrowth(nbt.getInt("growth"));
|
setGrowth(nbt.getInt("growth"));
|
||||||
setAttachmentFace(Direction.byName(nbt.getString("face")));
|
setAttachmentFace(Direction.byName(nbt.getString("face")));
|
||||||
setDecaying(nbt.getBoolean("decaying"));
|
setDecaying(nbt.getBoolean("decaying"));
|
||||||
|
|
Loading…
Reference in a new issue