Skip to content

Commit

Permalink
assign stage when the stored one is no longer present
Browse files Browse the repository at this point in the history
  • Loading branch information
SiverDX committed Nov 23, 2024
1 parent 0b1182c commit d85f83b
Showing 1 changed file with 11 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -509,23 +509,27 @@ public void deserializeNBT(HolderLookup.Provider provider, CompoundTag tag, bool
() -> DragonSurvival.LOGGER.warn("Cannot set dragon body [{}] while deserializing NBT of [{}] due to the dragon body not existing", storedDragonBody, tag));
}

double size = tag.getDouble(SIZE);
Holder<DragonStage> dragonStage = null;

String storedDragonStage = tag.getString(DRAGON_STAGE);

if (!storedDragonStage.isEmpty()) {
Holder<DragonStage> dragonStage = loadStage(provider, storedDragonStage);
Holder<DragonStage> loadedDragonStage = loadStage(provider, storedDragonStage);

if (dragonStage != null) {
this.dragonStage = dragonStage;
} else {
DragonSurvival.LOGGER.warn("Cannot set dragon stage [{}] while deserializing NBT of [{}] due to the dragon stage not existing", storedDragonStage, tag);
if (loadedDragonStage != null) {
dragonStage = loadedDragonStage;
} else if (size != NO_SIZE) {
dragonStage = DragonStage.get(provider, size);
DragonSurvival.LOGGER.warn("Cannot set dragon stage [{}] while deserializing NBT of [{}] due to the dragon stage not existing - setting [{}] as fallback", storedDragonStage, tag, dragonStage);
}
}

String storedPreviousDragonStage = tag.getString(PREVIOUS_DRAGON_STAGE);

if (!storedPreviousDragonStage.isEmpty()) {
// This is not interesting enough to the user to log a warning
provider.holder(DragonStages.key(ResourceLocation.parse(storedPreviousDragonStage))).ifPresent(dragonStage -> this.previousStage = dragonStage);
provider.holder(DragonStages.key(ResourceLocation.parse(storedPreviousDragonStage))).ifPresent(previousStage -> this.previousStage = previousStage);
}

if (dragonType != null) {
Expand All @@ -545,11 +549,7 @@ public void deserializeNBT(HolderLookup.Provider provider, CompoundTag tag, bool
getMovementData().spinCooldown = tag.getInt("spinCooldown");
getMovementData().spinAttack = tag.getInt("spinAttack");

if (dragonStage == null) {
setClientSize(tag.getDouble(SIZE));
} else {
setClientSize(dragonStage, tag.getDouble(SIZE));
}
setClientSize(dragonStage, size);

setDestructionEnabled(tag.getBoolean("destructionEnabled"));
isGrowing = !tag.contains(IS_GROWING) || tag.getBoolean(IS_GROWING);
Expand Down

0 comments on commit d85f83b

Please sign in to comment.