From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Tue, 18 Feb 2020 20:07:08 -0600 Subject: [PATCH] Add canSaveToDisk to Entity diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java index ba7901f72f97275ffac8d30e7b6c39f1f31dad37..0447ed23dd3e09fb887b7d7911846030a4e7fb45 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -473,6 +473,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return false; } + public boolean canSaveToDisk() { + return true; + } + public final boolean hardCollides() { return this.hardCollides; } diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java index 38800a318f675ab11eeba17cb1966e9a294c69e1..a20017a6086421061ee13df9cf37e08eeb515a5b 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -229,6 +229,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob skull.setPosRaw(headX, headY, headZ); level().addFreshEntity(skull); } + + @Override + public boolean canSaveToDisk() { + return false; + } // Purpur end @Override diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java index 0ec0be22f7292d57c40da6f1f4575bdebf8dbd09..f1d19cbe165a190cac325e646c7e8080b59cdd54 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java @@ -111,6 +111,7 @@ public class EntityStorage implements EntityPersistentStorage { ListTag listTag = new ListTag(); entities.forEach((entity) -> { // diff here: use entities parameter + if (!entity.canSaveToDisk()) return; // Purpur CompoundTag compoundTag = new CompoundTag(); if (entity.save(compoundTag)) { listTag.add(compoundTag); diff --git a/src/main/java/org/purpurmc/purpur/entity/DolphinSpit.java b/src/main/java/org/purpurmc/purpur/entity/DolphinSpit.java index b436fd92e2db17f6a2ee4118a7a51e324b567b46..fe14721ac16e702850a778b7481e306ed4bdfd74 100644 --- a/src/main/java/org/purpurmc/purpur/entity/DolphinSpit.java +++ b/src/main/java/org/purpurmc/purpur/entity/DolphinSpit.java @@ -35,6 +35,13 @@ public class DolphinSpit extends LlamaSpit { dolphin.getZ() + (double) (dolphin.getBbWidth() + 1.0F) * 0.5D * (double) Mth.cos(dolphin.yBodyRot * 0.017453292F)); } + // Purpur start + @Override + public boolean canSaveToDisk() { + return false; + } + // Purpur end + public void tick() { super_tick(); diff --git a/src/main/java/org/purpurmc/purpur/entity/PhantomFlames.java b/src/main/java/org/purpurmc/purpur/entity/PhantomFlames.java index 1fd6412e332ea8ee82b19c108e113624e51d764b..ea8b928b6d82689e71bbcc39ab497491072dfba6 100644 --- a/src/main/java/org/purpurmc/purpur/entity/PhantomFlames.java +++ b/src/main/java/org/purpurmc/purpur/entity/PhantomFlames.java @@ -38,6 +38,13 @@ public class PhantomFlames extends LlamaSpit { phantom.getZ() + (double) (phantom.getBbWidth() + 1.0F) * 0.5D * (double) Mth.cos(phantom.yBodyRot * 0.017453292F)); } + // Purpur start + @Override + public boolean canSaveToDisk() { + return false; + } + // Purpur end + public void tick() { super_tick();