From 7472db98d55975468c5fa6318f9d704c6a415653 Mon Sep 17 00:00:00 2001 From: zontreck Date: Thu, 11 Apr 2024 03:11:55 -0700 Subject: [PATCH] Adds the block restore code to the Runner --- .../memory/world/BlockRestoreRunner.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/main/java/dev/zontreck/libzontreck/memory/world/BlockRestoreRunner.java b/src/main/java/dev/zontreck/libzontreck/memory/world/BlockRestoreRunner.java index bcfa76b..118299e 100644 --- a/src/main/java/dev/zontreck/libzontreck/memory/world/BlockRestoreRunner.java +++ b/src/main/java/dev/zontreck/libzontreck/memory/world/BlockRestoreRunner.java @@ -1,8 +1,20 @@ package dev.zontreck.libzontreck.memory.world; +import dev.zontreck.libzontreck.vectors.Vector3d; +import net.minecraft.core.BlockPos; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntity; + +import java.util.Random; + public class BlockRestoreRunner implements Runnable { private BlockRestoreQueue queue; + public final SoundEvent pop = SoundEvents.ITEM_PICKUP; @Override public void run() { @@ -10,6 +22,23 @@ public class BlockRestoreRunner implements Runnable PrimitiveBlock prim = queue.getNextBlock(); + Level level = prim.level; + + // Everything is restored, play sound + SoundSource ss = SoundSource.NEUTRAL; + BlockPos pos = prim.position; + Random rng = new Random(); + + level.playSound(null, pos, pop, ss, rng.nextFloat(0.75f,1.0f), rng.nextFloat(1)); + + level.setBlock(pos, prim.blockState, Block.UPDATE_NONE, 0); + + BlockEntity entity = level.getBlockEntity(pos); + if(entity != null) + { + entity.load(prim.blockEntity); + } + } }