mirror of
https://github.com/TeamMidnightDust/VisualOverhaul.git
synced 2025-12-15 13:45:09 +01:00
41 lines
1.7 KiB
Java
41 lines
1.7 KiB
Java
package eu.midnightdust.visualoverhaul.mixin;
|
|
|
|
import eu.midnightdust.visualoverhaul.config.VOConfig;
|
|
import net.minecraft.block.AbstractFurnaceBlock;
|
|
import net.minecraft.block.BlastFurnaceBlock;
|
|
import net.minecraft.block.BlockState;
|
|
import net.minecraft.particle.ParticleTypes;
|
|
import net.minecraft.util.math.BlockPos;
|
|
import net.minecraft.util.math.Direction;
|
|
import net.minecraft.util.math.random.Random;
|
|
import net.minecraft.world.World;
|
|
import org.spongepowered.asm.mixin.Mixin;
|
|
import org.spongepowered.asm.mixin.injection.At;
|
|
import org.spongepowered.asm.mixin.injection.Inject;
|
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
|
|
|
@Mixin(BlastFurnaceBlock.class)
|
|
public abstract class MixinBlastFurnaceBlock extends AbstractFurnaceBlock {
|
|
protected MixinBlastFurnaceBlock(Settings settings) {
|
|
super(settings);
|
|
}
|
|
|
|
@Inject(at = @At("TAIL"), method = "randomDisplayTick")
|
|
public void vo$randomDisplayTick(BlockState state, World world, BlockPos pos, Random random, CallbackInfo ci) {
|
|
if (state.get(LIT) && VOConfig.blast_furnace_particles) {
|
|
double d = (double)pos.getX() + 0.5D;
|
|
double e = pos.getY();
|
|
double f = (double)pos.getZ() + 0.5D;
|
|
|
|
Direction direction = state.get(FACING);
|
|
Direction.Axis axis = direction.getAxis();
|
|
double h = random.nextDouble() * 0.6D - 0.3D;
|
|
double i = axis == Direction.Axis.X ? (double)direction.getOffsetX() * 0.4D : h;
|
|
double j = random.nextDouble() * 6.0D / 16.0D;
|
|
double k = axis == Direction.Axis.Z ? (double)direction.getOffsetZ() * 0.4D : h;
|
|
world.addParticle(ParticleTypes.FLAME, d + i, e + j, f + k, 0.0D, 0.0D, 0.0D);
|
|
}
|
|
}
|
|
|
|
}
|