Particles

This commit is contained in:
paulevsGitch 2020-10-01 19:40:47 +03:00
parent ce4405f3ea
commit 7b04991a7c
7 changed files with 102 additions and 3 deletions

View file

@ -5,6 +5,7 @@ import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.util.registry.Registry;
import ru.betterend.registry.BlockEntityRenderRegistry;
import ru.betterend.registry.ParticleRegistry;
import ru.betterend.registry.ScreensRegistry;
public class BetterEndClient implements ClientModInitializer {
@ -13,6 +14,7 @@ public class BetterEndClient implements ClientModInitializer {
registerRenderLayers();
BlockEntityRenderRegistry.register();
ScreensRegistry.register();
ParticleRegistry.register();
}
private void registerRenderLayers() {

View file

@ -23,7 +23,6 @@ import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.Biome.Category;
import ru.betterend.registry.BiomeRegistry;
import ru.betterend.util.BackgroundInfo;
import ru.betterend.util.MHelper;
import ru.betterend.world.biome.EndBiome;
@Mixin(BackgroundRenderer.class)

View file

@ -0,0 +1,56 @@
package ru.betterend.particle;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.particle.AnimatedParticle;
import net.minecraft.client.particle.Particle;
import net.minecraft.client.particle.ParticleFactory;
import net.minecraft.client.particle.SpriteProvider;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.particle.DefaultParticleType;
import ru.betterend.util.MHelper;
@Environment(EnvType.CLIENT)
public class AnimatedTestParticle extends AnimatedParticle {
private int ticks;
protected AnimatedTestParticle(ClientWorld world, double x, double y, double z, SpriteProvider sprites) {
super(world, x, y, z, sprites, 0);
setSprite(sprites.getSprite(random));
this.maxAge = MHelper.randRange(20, 80, random);
this.scale = MHelper.randRange(0.1F, 0.3F, random);
this.setTargetColor(15916745);
this.setSpriteForAge(spriteProvider);
this.velocityX = random.nextGaussian() * 0.1F;
this.velocityY = random.nextGaussian() * 0.1F;
this.velocityZ = random.nextGaussian() * 0.1F;
}
@Override
public void tick() {
ticks ++;
if (ticks > 10) {
this.velocityX = random.nextGaussian() * 0.1F;
this.velocityY = random.nextGaussian() * 0.1F;
this.velocityZ = random.nextGaussian() * 0.1F;
ticks = 0;
}
super.tick();
}
@Environment(EnvType.CLIENT)
public static class Factory implements ParticleFactory<DefaultParticleType> {
private final SpriteProvider sprites;
public Factory(SpriteProvider sprites) {
this.sprites = sprites;
}
@Override
public Particle createParticle(DefaultParticleType type, ClientWorld world, double x, double y, double z,
double vX, double vY, double vZ) {
return new AnimatedTestParticle(world, x, y, z, sprites);
}
}
}

View file

@ -0,0 +1,20 @@
package ru.betterend.registry;
import net.fabricmc.fabric.api.client.particle.v1.ParticleFactoryRegistry;
import net.fabricmc.fabric.api.particle.v1.FabricParticleTypes;
import net.minecraft.particle.DefaultParticleType;
import net.minecraft.util.registry.Registry;
import ru.betterend.BetterEnd;
import ru.betterend.particle.AnimatedTestParticle;
public class ParticleRegistry {
public static final DefaultParticleType TEST = register("test");
public static void register() {
ParticleFactoryRegistry.getInstance().register(TEST, AnimatedTestParticle.Factory::new);
}
private static DefaultParticleType register(String name) {
return Registry.register(Registry.PARTICLE_TYPE, BetterEnd.getResId(name), FabricParticleTypes.simple());
}
}

View file

@ -8,6 +8,7 @@ import net.minecraft.block.Block;
import net.minecraft.block.Blocks;
import net.minecraft.client.sound.MusicType;
import net.minecraft.entity.EntityType;
import net.minecraft.particle.ParticleEffect;
import net.minecraft.sound.BiomeAdditionsSound;
import net.minecraft.sound.BiomeMoodSound;
import net.minecraft.sound.SoundEvent;
@ -83,8 +84,8 @@ public class BiomeDefinition {
return this;
}
public BiomeDefinition setParticleConfig(BiomeParticleConfig config) {
this.particleConfig = config;
public BiomeDefinition setParticles(ParticleEffect particle, float probability) {
this.particleConfig = new BiomeParticleConfig(particle, probability);
return this;
}

View file

@ -2,6 +2,7 @@ package ru.betterend.world.biome;
import ru.betterend.registry.BlockRegistry;
import ru.betterend.registry.FeatureRegistry;
import ru.betterend.registry.ParticleRegistry;
public class BiomeFoggyMushroomland extends EndBiome {
public BiomeFoggyMushroomland() {
@ -11,6 +12,7 @@ public class BiomeFoggyMushroomland extends EndBiome {
.setWaterColor(119, 227, 250)
.setWaterFogColor(119, 227, 250)
.setSurface(BlockRegistry.END_MOSS, BlockRegistry.END_MYCELIUM)
.setParticles(ParticleRegistry.TEST, 0.001F)
.addFeature(FeatureRegistry.ENDER_ORE)
.addFeature(FeatureRegistry.END_LAKE)
.addFeature(FeatureRegistry.MOSSY_GLOWSHROOM)

View file

@ -0,0 +1,19 @@
{
"textures": [
"minecraft:spell_0",
"minecraft:spell_1",
"minecraft:spell_2",
"minecraft:spell_3",
"minecraft:spell_4",
"minecraft:spell_5",
"minecraft:spell_6",
"minecraft:spell_7",
"minecraft:spell_6",
"minecraft:spell_5",
"minecraft:spell_4",
"minecraft:spell_3",
"minecraft:spell_2",
"minecraft:spell_1",
"minecraft:spell_0"
]
}