diff --git a/remappedSrc/games/enchanted/placeparticles/ExampleMod.java b/remappedSrc/games/enchanted/placeparticles/ExampleMod.java deleted file mode 100644 index e418dc3..0000000 --- a/remappedSrc/games/enchanted/placeparticles/ExampleMod.java +++ /dev/null @@ -1,33 +0,0 @@ -package games.enchanted.placeparticles; - -import net.fabricmc.api.ClientModInitializer; -import net.fabricmc.fabric.api.client.particle.v1.ParticleFactoryRegistry; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import games.enchanted.placeparticles.particle.Particles; -import games.enchanted.placeparticles.particle.custom.FallingBlockParticle; -import games.enchanted.placeparticles.particle.custom.PlacedBlockParticle; - -public class ExampleMod implements ClientModInitializer { - // This logger is used to write text to the console and the log file. - // It is considered best practice to use your mod id as the logger's name. - // That way, it's clear which mod wrote info, warnings, and errors. - public static final Logger LOGGER = LoggerFactory.getLogger("place-particles"); - - public static final String MOD_ID = "place-particles"; - - @Override - public void onInitializeClient() { - // This code runs as soon as Minecraft is in a mod-load-ready state. - // However, some things (like resources) may still be uninitialized. - // Proceed with mild caution. - - Particles.registerParticles(); - ParticleFactoryRegistry.getInstance().register(Particles.FALLING_BLOCK_PARTICLE, FallingBlockParticle.Factory::new); - ParticleFactoryRegistry.getInstance().register(Particles.PLACED_BLOCK_PARTICLE, PlacedBlockParticle.Factory::new); - - LOGGER.info("Hello Fabric world!"); - } -} \ No newline at end of file diff --git a/remappedSrc/games/enchanted/placeparticles/mixin/ExampleMixin.java b/remappedSrc/games/enchanted/placeparticles/mixin/ExampleMixin.java deleted file mode 100644 index b53b14a..0000000 --- a/remappedSrc/games/enchanted/placeparticles/mixin/ExampleMixin.java +++ /dev/null @@ -1,37 +0,0 @@ -package games.enchanted.placeparticles.mixin; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.FallingBlock; -import net.minecraft.block.LandingBlock; -import net.minecraft.particle.BlockStateParticleEffect; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.random.Random; -import net.minecraft.world.World; - -import org.spongepowered.asm.mixin.Mixin; - -import games.enchanted.placeparticles.particle.Particles; - -@Mixin(FallingBlock.class) -public class ExampleMixin - extends Block - implements LandingBlock { - - public ExampleMixin(Settings settings) { - super(settings); - // TODO Auto-generated constructor stub - } - - // @Inject(at = @At("HEAD"), method = - // "Lnet/minecraft/block/FallingBlock;randomDisplayTick(Lnet/minecraft/block/BlockState;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/random/Random;)V") - @Override - public void randomDisplayTick(BlockState state, World world, BlockPos pos, Random random) { - if (random.nextInt(12) == 0 && FallingBlock.canFallThrough(world.getBlockState(pos.down()))) { - double d = (double) pos.getX() + random.nextDouble(); - double e = (double) pos.getY() - 0.05f; - double f = (double) pos.getZ() + random.nextDouble(); - world.addParticle(new BlockStateParticleEffect(Particles.FALLING_BLOCK_PARTICLE, state), d, e, f, 0.0, 0.0, 0.0); - } - } -} \ No newline at end of file diff --git a/remappedSrc/games/enchanted/placeparticles/particle/Particles.java b/remappedSrc/games/enchanted/placeparticles/particle/Particles.java deleted file mode 100644 index 9e6fe0b..0000000 --- a/remappedSrc/games/enchanted/placeparticles/particle/Particles.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Decompiled with CFR 0.2.1 (FabricMC 53fa44c9). - */ -package games.enchanted.placeparticles.particle; - -import com.mojang.serialization.Codec; - -import games.enchanted.placeparticles.ExampleMod; - -import java.util.function.Function; - -import net.minecraft.particle.BlockStateParticleEffect; -import net.minecraft.particle.ParticleEffect; -import net.minecraft.particle.ParticleType; -import net.minecraft.registry.Registries; -import net.minecraft.registry.Registry; -import net.minecraft.util.Identifier; - -public class Particles { - - public static final ParticleType FALLING_BLOCK_PARTICLE = Particles.register( - "falling_block", false, BlockStateParticleEffect.PARAMETERS_FACTORY, - BlockStateParticleEffect::createCodec); - public static final ParticleType PLACED_BLOCK_PARTICLE = Particles.register( - "placed_block", false, BlockStateParticleEffect.PARAMETERS_FACTORY, - BlockStateParticleEffect::createCodec); - - public static void registerParticles() { - // Registry.register(Registries.PARTICLE_TYPE, new Identifier(ExampleMod.MOD_ID, - // "falling_block_particle"), - // FALLING_BLOCK_PARTICLE); - } - - private static ParticleType register(String name, boolean alwaysShow, - ParticleEffect.Factory factory, final Function, Codec> codecGetter) { - return Registry.register(Registries.PARTICLE_TYPE, new Identifier(ExampleMod.MOD_ID, name), - new ParticleType(alwaysShow, factory) { - - @Override - public Codec getCodec() { - return (Codec) codecGetter.apply(this); - } - }); - } -} diff --git a/remappedSrc/games/enchanted/placeparticles/particle/custom/FallingBlockParticle.java b/remappedSrc/games/enchanted/placeparticles/particle/custom/FallingBlockParticle.java deleted file mode 100644 index 27dce43..0000000 --- a/remappedSrc/games/enchanted/placeparticles/particle/custom/FallingBlockParticle.java +++ /dev/null @@ -1,106 +0,0 @@ -package games.enchanted.placeparticles.particle.custom; - -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.block.BlockState; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.particle.Particle; -import net.minecraft.client.particle.ParticleFactory; -import net.minecraft.client.particle.ParticleTextureSheet; -import net.minecraft.client.particle.SpriteBillboardParticle; -import net.minecraft.client.particle.SpriteProvider; -import net.minecraft.client.render.WorldRenderer; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.particle.BlockStateParticleEffect; -import net.minecraft.util.math.BlockPos; - -@Environment(value = EnvType.CLIENT) -public class FallingBlockParticle - extends SpriteBillboardParticle { - - private final BlockPos blockPos; - private final float sampleU; - private final float sampleV; - - FallingBlockParticle(ClientWorld world, double x, double y, double z, BlockState state) { - super(world, x, y, z); - this.blockPos = BlockPos.ofFloored(x, y, z); - this.setSprite(MinecraftClient.getInstance().getBlockRenderManager().getModels().getModelParticleSprite(state)); - this.gravityStrength = 0.5f; - // this.maxAge = 40; - this.maxAge = (int) ((Math.random() * (150 - 50)) + 30); - this.collidesWithWorld = true; - - this.sampleU = this.random.nextFloat() * 3.0f; - this.sampleV = this.random.nextFloat() * 3.0f; - - this.scale /= 2.0f; - } - - @Override - public ParticleTextureSheet getType() { - return ParticleTextureSheet.TERRAIN_SHEET; - } - - @Override - public void tick() { - this.prevPosX = this.x; - this.prevPosY = this.y; - this.prevPosZ = this.z; - if (this.age++ >= this.maxAge) { - this.markDead(); - return; - } - - this.move(this.velocityX, this.velocityY, this.velocityZ); - // this.velocityY -= (double) 0.003f; - // this.velocityY = Math.max(this.velocityY, (double) -0.14f); - - this.velocityY -= 0.04 * (double) this.gravityStrength; - } - - @Override - protected float getMinU() { - return this.sprite.getFrameU((this.sampleU + 1.0f) / 4.0f * 16.0f); - } - - @Override - protected float getMaxU() { - return this.sprite.getFrameU(this.sampleU / 4.0f * 16.0f); - } - - @Override - protected float getMinV() { - return this.sprite.getFrameV(this.sampleV / 4.0f * 16.0f); - } - - @Override - protected float getMaxV() { - return this.sprite.getFrameV((this.sampleV + 1.0f) / 4.0f * 16.0f); - } - - @Override - public int getBrightness(float tint) { - int i = super.getBrightness(tint); - if (i == 0 && this.world.isChunkLoaded(this.blockPos)) { - return WorldRenderer.getLightmapCoordinates(this.world, this.blockPos); - } - return i; - } - - @Environment(EnvType.CLIENT) - public static class Factory implements ParticleFactory { - private final SpriteProvider sprites; - - public Factory(SpriteProvider spriteSet) { - this.sprites = spriteSet; - } - - @Override - public Particle createParticle(BlockStateParticleEffect blockStateParticleEffect, ClientWorld clientWorld, double d, - double e, double f, double g, double h, double i) { - return new FallingBlockParticle(clientWorld, d, e, f, blockStateParticleEffect.getBlockState()); - } - - } -} \ No newline at end of file diff --git a/remappedSrc/games/enchanted/placeparticles/particle/custom/PlacedBlockParticle.java b/remappedSrc/games/enchanted/placeparticles/particle/custom/PlacedBlockParticle.java deleted file mode 100644 index 59d526d..0000000 --- a/remappedSrc/games/enchanted/placeparticles/particle/custom/PlacedBlockParticle.java +++ /dev/null @@ -1,111 +0,0 @@ -package games.enchanted.placeparticles.particle.custom; - -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.block.BlockState; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.particle.Particle; -import net.minecraft.client.particle.ParticleFactory; -import net.minecraft.client.particle.ParticleTextureSheet; -import net.minecraft.client.particle.SpriteBillboardParticle; -import net.minecraft.client.particle.SpriteProvider; -import net.minecraft.client.render.WorldRenderer; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.particle.BlockStateParticleEffect; -import net.minecraft.util.math.BlockPos; - -@Environment(value = EnvType.CLIENT) -public class PlacedBlockParticle - extends SpriteBillboardParticle { - - private final BlockPos blockPos; - private final float sampleU; - private final float sampleV; - private final float rotationDirection; - - PlacedBlockParticle(ClientWorld world, double x, double y, double z, BlockState state) { - super(world, x, y, z); - this.blockPos = BlockPos.ofFloored(x, y, z); - this.setSprite(MinecraftClient.getInstance().getBlockRenderManager().getModels().getModelParticleSprite(state)); - this.gravityStrength = 1.0f; - // this.maxAge = 40; - // this.maxAge = (int) ((Math.random() * (150 - 50)) + 30); - this.collidesWithWorld = true; - - this.sampleU = this.random.nextFloat() * 3.0f; - this.sampleV = this.random.nextFloat() * 3.0f; - - this.scale /= 2.0f; - - this.rotationDirection = (float) ((Math.random() * (2 - -2)) + -2); - } - - @Override - public ParticleTextureSheet getType() { - return ParticleTextureSheet.TERRAIN_SHEET; - } - - @Override - public void tick() { - this.prevPosX = this.x; - this.prevPosY = this.y; - this.prevPosZ = this.z; - if (this.age++ >= this.maxAge) { - this.markDead(); - return; - } - if (!this.onGround) { - this.angle += this.rotationDirection / 40; - } - this.prevAngle = this.angle; - - this.move(this.velocityX, this.velocityY, this.velocityZ); - this.velocityY -= (double) 0.003f; - this.velocityY = Math.max(this.velocityY, (double) -0.14f); - } - - @Override - protected float getMinU() { - return this.sprite.getFrameU((this.sampleU + 1.0f) / 4.0f * 16.0f); - } - - @Override - protected float getMaxU() { - return this.sprite.getFrameU(this.sampleU / 4.0f * 16.0f); - } - - @Override - protected float getMinV() { - return this.sprite.getFrameV(this.sampleV / 4.0f * 16.0f); - } - - @Override - protected float getMaxV() { - return this.sprite.getFrameV((this.sampleV + 1.0f) / 4.0f * 16.0f); - } - - @Override - public int getBrightness(float tint) { - int i = super.getBrightness(tint); - if (i == 0 && this.world.isChunkLoaded(this.blockPos)) { - return WorldRenderer.getLightmapCoordinates(this.world, this.blockPos); - } - return i; - } - - @Environment(EnvType.CLIENT) - public static class Factory implements ParticleFactory { - private final SpriteProvider sprites; - - public Factory(SpriteProvider spriteSet) { - this.sprites = spriteSet; - } - - @Override - public Particle createParticle(BlockStateParticleEffect blockStateParticleEffect, ClientWorld clientWorld, double d, - double e, double f, double g, double h, double i) { - return new PlacedBlockParticle(clientWorld, d, e, f, blockStateParticleEffect.getBlockState()); - } - - } -} \ No newline at end of file