Added test command for testing ore gen.

Started reimplementing quartz ore gen ontop of vanilla mechanics.
Fixes several sidedness issues.
Added recipe serialization for server->client sync.
This commit is contained in:
Sebastian Hartte
2020-06-20 18:04:20 +02:00
parent daaac300b8
commit 434386a7ff
44 changed files with 597 additions and 434 deletions
@@ -32,11 +32,6 @@ import appeng.core.AppEng;
@OnlyIn(Dist.CLIENT)
public class ChargedOreFX extends RedstoneParticle {
public static final BasicParticleType TYPE = new BasicParticleType(false);
static {
TYPE.setRegistryName(AppEng.MOD_ID, "charged_ore_fx");
}
private static final RedstoneParticleData PARTICLE_DATA = new RedstoneParticleData(0.21f, 0.61f, 1.0f, 1.0f);
@@ -39,12 +39,6 @@ import appeng.core.AppEng;
@OnlyIn(Dist.CLIENT)
public class CraftingFx extends SpriteTexturedParticle {
public static final BasicParticleType TYPE = new BasicParticleType(false);
static {
TYPE.setRegistryName(AppEng.MOD_ID, "crafting_fx");
}
// Offset relative to center of block, is the starting point of the particle
// movement
private final float offsetX;
@@ -22,26 +22,16 @@ import com.mojang.blaze3d.vertex.IVertexBuilder;
import net.minecraft.client.particle.*;
import net.minecraft.client.renderer.ActiveRenderInfo;
import net.minecraft.particles.BasicParticleType;
import net.minecraft.particles.ParticleType;
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.World;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import appeng.api.util.AEPartLocation;
import appeng.core.AppEng;
@OnlyIn(Dist.CLIENT)
public class EnergyFx extends SpriteTexturedParticle {
public static final ParticleType<EnergyParticleData> TYPE = new ParticleType<>(false,
EnergyParticleData.DESERIALIZER);
static {
TYPE.setRegistryName(AppEng.MOD_ID, "energy_fx");
}
private final int startBlkX;
private final int startBlkY;
private final int startBlkZ;
@@ -63,7 +63,7 @@ public class EnergyParticleData implements IParticleData {
@Override
public ParticleType<?> getType() {
return EnergyFx.TYPE;
return ParticleTypes.ENERGY;
}
@Override
@@ -24,20 +24,14 @@ import net.minecraft.client.particle.IAnimatedSprite;
import net.minecraft.client.particle.IParticleFactory;
import net.minecraft.client.particle.Particle;
import net.minecraft.client.particle.SpriteTexturedParticle;
import net.minecraft.particles.ParticleType;
import net.minecraft.world.World;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import appeng.core.AppEng;
@OnlyIn(Dist.CLIENT)
public class LightningArcFX extends LightningFX {
public static final ParticleType<LightningArcParticleData> TYPE = new ParticleType<>(false,
LightningArcParticleData.DESERIALIZER);
static {
TYPE.setRegistryName(AppEng.MOD_ID, "lightning_arc_fx");
}
private static final Random RANDOM_GENERATOR = new Random();
@@ -47,7 +47,7 @@ public class LightningArcParticleData implements IParticleData {
@Override
public ParticleType<?> getType() {
return LightningArcFX.TYPE;
return ParticleTypes.LIGHTNING_ARC;
}
@Override
@@ -41,11 +41,6 @@ import appeng.core.AppEng;
@OnlyIn(Dist.CLIENT)
public class LightningFX extends SpriteTexturedParticle {
public static final BasicParticleType TYPE = new BasicParticleType(false);
static {
TYPE.setRegistryName(AppEng.MOD_ID, "lightning_fx");
}
private static final Random RANDOM_GENERATOR = new Random();
private static final int STEPS = 5;
@@ -29,12 +29,6 @@ import appeng.core.AppEng;
public class MatterCannonFX extends SpriteTexturedParticle {
public static final BasicParticleType TYPE = new BasicParticleType(false);
static {
TYPE.setRegistryName(AppEng.MOD_ID, "matter_cannon_fx");
}
public MatterCannonFX(final World par1World, final double x, final double y, final double z,
IAnimatedSprite sprite) {
super(par1World, x, y, z);
@@ -0,0 +1,33 @@
package appeng.client.render.effects;
import net.minecraft.particles.BasicParticleType;
import net.minecraft.particles.ParticleType;
import appeng.core.AppEng;
public final class ParticleTypes {
private ParticleTypes() {
}
public static final BasicParticleType CHARGED_ORE = new BasicParticleType(false);
public static final BasicParticleType CRAFTING = new BasicParticleType(false);
public static final ParticleType<EnergyParticleData> ENERGY = new ParticleType<>(false,
EnergyParticleData.DESERIALIZER);
public static final ParticleType<LightningArcParticleData> LIGHTNING_ARC = new ParticleType<>(false,
LightningArcParticleData.DESERIALIZER);
public static final BasicParticleType LIGHTNING = new BasicParticleType(false);
public static final BasicParticleType MATTER_CANNON = new BasicParticleType(false);
public static final BasicParticleType VIBRANT = new BasicParticleType(false);
static {
CHARGED_ORE.setRegistryName(AppEng.MOD_ID, "charged_ore_fx");
CRAFTING.setRegistryName(AppEng.MOD_ID, "crafting_fx");
ENERGY.setRegistryName(AppEng.MOD_ID, "energy_fx");
LIGHTNING_ARC.setRegistryName(AppEng.MOD_ID, "lightning_arc_fx");
LIGHTNING.setRegistryName(AppEng.MOD_ID, "lightning_fx");
MATTER_CANNON.setRegistryName(AppEng.MOD_ID, "matter_cannon_fx");
VIBRANT.setRegistryName(AppEng.MOD_ID, "vibrant_fx");
}
}
@@ -33,12 +33,6 @@ import appeng.core.AppEng;
@OnlyIn(Dist.CLIENT)
public class VibrantFX extends SpriteTexturedParticle {
public static final BasicParticleType TYPE = new BasicParticleType(false);
static {
TYPE.setRegistryName(AppEng.MOD_ID, "vibrant_fx");
}
public VibrantFX(final World par1World, final double x, final double y, final double z, final double par8,
final double par10, final double par12, IAnimatedSprite sprite) {
super(par1World, x, y, z, par8, par10, par12);