
someRandomKid
Members-
Posts
44 -
Joined
-
Last visited
someRandomKid's Achievements

Tree Puncher (2/8)
0
Reputation
-
[1.15.2] How to make an entity save data
someRandomKid replied to someRandomKid's topic in Modder Support
SOLVED: instead of using this.movedDistance I used this.distanceWalkedModified and it works fine. -
[1.15.2] How to make an entity save data
someRandomKid replied to someRandomKid's topic in Modder Support
so after taking a break from modding (sorry for not responding!) I finally figured out the problem. The problem is that this.movedDistance doesn't get updated on the server, but is getting updated on client. How would I fix that? EDIT: The data manager can't get the correct value to sync because this.movedDistance only gets updated on client. So I think I have to make a packet for this to all work. -
[1.15.2] How to make an entity save data
someRandomKid replied to someRandomKid's topic in Modder Support
the value is not updating anymore -
[1.15.2] How to make an entity save data
someRandomKid replied to someRandomKid's topic in Modder Support
I guess that's fine, I was planning on making this mod open-source anyway -
[1.15.2] How to make an entity save data
someRandomKid replied to someRandomKid's topic in Modder Support
ok so I did that, now what? -
[1.15.2] How to make an entity save data
someRandomKid replied to someRandomKid's topic in Modder Support
so I would use if(!world.isRemote)? -
[1.15.2] How to make an entity save data
someRandomKid replied to someRandomKid's topic in Modder Support
then how would I do it server side? -
[1.15.2] How to make an entity save data
someRandomKid replied to someRandomKid's topic in Modder Support
So then how do I fix it? So far I have fixed the tick function. -
[1.15.2] How to make an entity save data
someRandomKid replied to someRandomKid's topic in Modder Support
updated code: package com.new_swords.Entities; import net.minecraft.block.BlockState; import net.minecraft.client.Minecraft; import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.EntityType; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.passive.horse.AbstractChestedHorseEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.network.datasync.DataParameter; import net.minecraft.network.datasync.DataSerializers; import net.minecraft.network.datasync.EntityDataManager; import net.minecraft.particles.ParticleTypes; import net.minecraft.util.DamageSource; import net.minecraft.util.SoundEvent; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public class Car extends AbstractChestedHorseEntity { public boolean outofgas; private boolean particle_reducer; public static final DataParameter<Float> Fuel = EntityDataManager.createKey(Car.class, DataSerializers.FLOAT); public Car(EntityType<? extends Car> type, World worldIn) { super(type, worldIn); this.outofgas = false; this.particle_reducer = false; } //forgot to do super.registerAttributes() [Sorry] @Override protected void registerAttributes() { this.getAttributes().registerAttribute(SharedMonsterAttributes.MAX_HEALTH); this.getAttributes().registerAttribute(SharedMonsterAttributes.MOVEMENT_SPEED); this.getAttributes().registerAttribute(SharedMonsterAttributes.FOLLOW_RANGE); this.getAttributes().registerAttribute(SharedMonsterAttributes.KNOCKBACK_RESISTANCE); this.getAttributes().registerAttribute(SharedMonsterAttributes.ARMOR); this.getAttributes().registerAttribute(LivingEntity.SWIM_SPEED); this.getAttributes().registerAttribute(LivingEntity.ENTITY_GRAVITY); this.getAttributes().registerAttribute(SharedMonsterAttributes.ARMOR_TOUGHNESS); this.getAttribute(SharedMonsterAttributes.KNOCKBACK_RESISTANCE).setBaseValue(1.0F); this.getAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.4F); this.getAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(40.0F); this.getAttribute(SharedMonsterAttributes.FOLLOW_RANGE).setBaseValue(0.0F); this.getAttribute(SharedMonsterAttributes.ARMOR).setBaseValue(2.0F); this.getAttribute(SharedMonsterAttributes.ARMOR_TOUGHNESS).setBaseValue(2.0F); this.getAttribute(LivingEntity.SWIM_SPEED).setBaseValue(0.05F); } @Override protected void registerData() { super.registerData(); this.dataManager.register(Fuel, this.movedDistance); } @Override protected void registerGoals() { } @Override public boolean canBeLeashedTo(PlayerEntity player) { return false; } @Override public void readAdditional(@NotNull CompoundNBT compound) { super.readAdditional(compound); this.setFuelValue(compound.getFloat("movedDistance")); } @Override public void writeAdditional(@NotNull CompoundNBT compound) { super.writeAdditional(compound); compound.putFloat("movedDistance", this.movedDistance); } @Override public void tick() { super.tick(); outofgas = this.movedDistance > 2000; this.particle_reducer = !this.particle_reducer; World world = this.getEntityWorld(); Vec3d vec = new Vec3d(this.getPosX(),this.getPosY(), this.getPosZ()); Vec3d speedvec = new Vec3d(-0.3d, 0.2d, 0d); vec.add(this.getLookVec()); this.getDataManager().set(Fuel, this.movedDistance); if(!this.outofgas && this.particle_reducer) world.addParticle(ParticleTypes.SQUID_INK, vec.x, vec.y, vec.z, speedvec.x, speedvec.y, speedvec.z); // this.setHealth(this.getDataManager().get(Car.health)); } public void Refuel(){ this.distanceWalkedModified = 0; this.distanceWalkedOnStepModified = 0; this.prevDistanceWalkedModified = 0; this.prevMovedDistance = 0; this.movedDistance = 0; LOGGER.info("REFUELED"); } public void setFuelValue(float value){ this.distanceWalkedModified = value; this.distanceWalkedOnStepModified = value; this.prevDistanceWalkedModified = value; this.prevMovedDistance = value; this.movedDistance = value; } @Override protected boolean canMate() { return false; } @Override public boolean canBreed() { return false; } @Nullable @Override protected SoundEvent getDeathSound() { return null; } @Nullable @Override protected SoundEvent getAmbientSound() { return null; } @Nullable @Override protected SoundEvent getHurtSound(DamageSource damageSourceIn) { return null; } @Override protected void playStepSound(BlockPos pos, BlockState blockIn) { // this.playSound(ModSoundEvents.MOVING_CAR, 0.5F, 1.0F); } @Override public void setMoveStrafing(float amount) {} @Override public boolean hasChest() { return true; } @Override public boolean isTame() { return true; } @Override public boolean canEatGrass() { return false; } @Override public boolean isHorseSaddled() { return !this.outofgas; } @Override public boolean canBeSteered() { return !this.outofgas; } @Override public boolean isBreedingItem(@NotNull ItemStack stack) { return false; } @Override public boolean wearsArmor() { return false; } @Override public boolean canDespawn(double distanceToClosestPlayer) { return false; } @Override public boolean canJump() { return false; } @Override public boolean canBeRiddenInWater() { return false; } @Override public boolean canBePushed() { return false; } @Override public boolean canBeSaddled() { return false; } @Override protected int getInventorySize() { return 29; } @Override public int getInventoryColumns() { return 9; } } -
[1.15.2] How to make an entity save data
someRandomKid replied to someRandomKid's topic in Modder Support
I am syncing them in the tick function. It still is not working. -
[1.15.2] How to make an entity save data
someRandomKid replied to someRandomKid's topic in Modder Support
oh wait I just realized how dumb I was this is what it should be: this.dataManager.register(Fuel, this.movedDistance); -
[1.15.2] How to make an entity save data
someRandomKid replied to someRandomKid's topic in Modder Support
//updated code public class Car extends AbstractChestedHorseEntity { public boolean outofgas; private boolean particle_reducer; public static final DataParameter<Float> Fuel = EntityDataManager.createKey(Car.class, DataSerializers.FLOAT); public Car(EntityType<? extends Car> type, World worldIn) { super(type, worldIn); this.outofgas = false; this.particle_reducer = false; } //forgot to do super.registerAttributes() [Sorry] @Override protected void registerAttributes() { this.getAttributes().registerAttribute(SharedMonsterAttributes.MAX_HEALTH); this.getAttributes().registerAttribute(SharedMonsterAttributes.MOVEMENT_SPEED); this.getAttributes().registerAttribute(SharedMonsterAttributes.FOLLOW_RANGE); this.getAttributes().registerAttribute(SharedMonsterAttributes.KNOCKBACK_RESISTANCE); this.getAttributes().registerAttribute(SharedMonsterAttributes.ARMOR); this.getAttributes().registerAttribute(LivingEntity.SWIM_SPEED); this.getAttributes().registerAttribute(LivingEntity.ENTITY_GRAVITY); this.getAttributes().registerAttribute(SharedMonsterAttributes.ARMOR_TOUGHNESS); this.getAttribute(SharedMonsterAttributes.KNOCKBACK_RESISTANCE).setBaseValue(1.0F); this.getAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.4F); this.getAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(40.0F); this.getAttribute(SharedMonsterAttributes.FOLLOW_RANGE).setBaseValue(0.0F); this.getAttribute(SharedMonsterAttributes.ARMOR).setBaseValue(2.0F); this.getAttribute(SharedMonsterAttributes.ARMOR_TOUGHNESS).setBaseValue(2.0F); this.getAttribute(LivingEntity.SWIM_SPEED).setBaseValue(0.05F); } @Override protected void registerData() { super.registerData(); this.dataManager.register(Fuel, 0.0F); } @Override protected void registerGoals() { } @Override public boolean canBeLeashedTo(PlayerEntity player) { return false; } @Override public void readAdditional(@NotNull CompoundNBT compound) { super.readAdditional(compound); this.setFuelValue(compound.getFloat("movedDistance")); } @Override public void writeAdditional(@NotNull CompoundNBT compound) { super.writeAdditional(compound); compound.putFloat("movedDistance", this.movedDistance); } @Override public void tick() { super.tick(); outofgas = this.movedDistance > 2000; this.particle_reducer = !this.particle_reducer; ClientWorld world = Minecraft.getInstance().world; Vec3d vec = new Vec3d(this.getPosX(),this.getPosY(), this.getPosZ()); Vec3d speedvec = new Vec3d(-0.3d, 0.2d, 0d); vec.add(this.getLookVec()); this.getDataManager().set(Fuel, this.movedDistance); if(world != null && !this.outofgas && this.particle_reducer) world.addParticle(ParticleTypes.SQUID_INK, vec.x, vec.y, vec.z, speedvec.x, speedvec.y, speedvec.z); // this.setHealth(this.getDataManager().get(Car.health)); } public void Refuel(){ this.distanceWalkedModified = 0; this.distanceWalkedOnStepModified = 0; this.prevDistanceWalkedModified = 0; this.prevMovedDistance = 0; this.movedDistance = 0; LOGGER.info("REFUELED"); } public void setFuelValue(float value){ this.distanceWalkedModified = value; this.distanceWalkedOnStepModified = value; this.prevDistanceWalkedModified = value; this.prevMovedDistance = value; this.movedDistance = value; } @Override protected boolean canMate() { return false; } @Override public boolean canBreed() { return false; } @Nullable @Override protected SoundEvent getDeathSound() { return null; } @Nullable @Override protected SoundEvent getAmbientSound() { return null; } @Nullable @Override protected SoundEvent getHurtSound(DamageSource damageSourceIn) { return null; } @Override protected void playStepSound(BlockPos pos, BlockState blockIn) { // this.playSound(ModSoundEvents.MOVING_CAR, 0.5F, 1.0F); } @Override public void setMoveStrafing(float amount) {} @Override public boolean hasChest() { return true; } @Override public boolean isTame() { return true; } @Override public boolean canEatGrass() { return false; } @Override public boolean isHorseSaddled() { return !this.outofgas; } @Override public boolean canBeSteered() { return !this.outofgas; } @Override public boolean isBreedingItem(@NotNull ItemStack stack) { return false; } @Override public boolean wearsArmor() { return false; } @Override public boolean canDespawn(double distanceToClosestPlayer) { return false; } @Override public boolean canJump() { return false; } @Override public boolean canBeRiddenInWater() { return false; } @Override public boolean canBePushed() { return false; } @Override public boolean canBeSaddled() { return false; } @Override protected int getInventorySize() { return 29; } @Override public int getInventoryColumns() { return 9; } } -
[1.15.2] How to make an entity save data
someRandomKid replied to someRandomKid's topic in Modder Support
I tried using the data manager and it didn't work -
[1.15.2] How to make an entity save data
someRandomKid replied to someRandomKid's topic in Modder Support
what do you mean by that? that text is always rendering no matter if the horse gui is opened or not. -
[1.15.2] How to make an entity save data
someRandomKid replied to someRandomKid's topic in Modder Support
do I use the data manager for that?