• Recently Browsing

    No registered users viewing this page.

  • Posts

    • Sorry for necroing @diesieben07 but what is the entirety of "main game logic" is single threaded. I mean specifically.
    • @TheGreyGhost, I want to render a particle which is just a simple line. But nothing shows in  Game.    
    • Hello   What is your question?  Does it work?  If it does not work, what are the symptoms?   Cheers   TGG
    • Introduce: I'm working on making a custom particle from scratch. I want to render a particle which is just a simple line, but nothing shows in game. There are my codes. ObsidianParticle.java public class ObsidianParticle extends Particle { protected ObsidianParticle(World worldIn, double posXIn, double posYIn, double posZIn) { super(worldIn, posXIn, posYIn, posZIn); } @Override public void renderParticle(IVertexBuilder buffer, ActiveRenderInfo renderInfo, float partialTicks) { buffer.pos(0, 0, 0) .color(1, 0, 0, 1) .endVertex(); buffer.pos(1, 0, 0) .color(1, 0, 0, 1) .endVertex(); buffer.pos(1, 1, 0) .color(1, 0, 0, 1) .endVertex(); buffer.pos(1, 1, 1) .color(1, 0, 0, 1) .endVertex(); } @Override public IParticleRenderType getRenderType() { return ObsidianParticleRenderType.INSTANCE; } } ObsidianParticleRenderType.java public class ObsidianParticleRenderType implements IParticleRenderType { public static final ObsidianParticleRenderType INSTANCE = new ObsidianParticleRenderType(); @Override public void beginRender(BufferBuilder bufferBuilder, TextureManager textureManager) { RenderSystem.disableLighting(); RenderSystem.disableDepthTest(); RenderSystem.disableCull(); RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); bufferBuilder.begin(GL11.GL_LINE_STRIP, DefaultVertexFormats.POSITION_COLOR); } @Override public void finishRender(Tessellator tessellator) { tessellator.draw(); } } ClientSideRegistry.java @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD) public class ClientSideRegistry { @SubscribeEvent public static void onParticleFactoryRegistration(ParticleFactoryRegisterEvent event) { Minecraft.getInstance().particles.registerFactory(ParticleTypeRegistry.obsidianParticleType.get(), new ObsidianParticleFactory()); } } ObsidianParticleData.java public class ObsidianParticleData implements IParticleData { public static final IParticleData.IDeserializer<ObsidianParticleData> DESERIALIZER = new IDeserializer<ObsidianParticleData>() { @Override public ObsidianParticleData deserialize(ParticleType<ObsidianParticleData> particleTypeIn, StringReader reader) { return new ObsidianParticleData(); } @Override public ObsidianParticleData read(ParticleType<ObsidianParticleData> particleTypeIn, PacketBuffer buffer) { return new ObsidianParticleData(); } }; @Override public ParticleType<?> getType() { return ParticleTypeRegistry.obsidianParticleType.get(); } @Override public void write(PacketBuffer buffer) { } @Override public String getParameters() { return ""; } } ObsidianParticleFactory.java public class ObsidianParticleFactory implements IParticleFactory<ObsidianParticleData> { @Nullable @Override public Particle makeParticle(ObsidianParticleData typeIn, World worldIn, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { return new ObsidianParticle(worldIn, x, y, z); } } ParticleTypeRegistry.java public class ParticleTypeRegistry { public static final DeferredRegister<ParticleType<?>> PARTICLE_TYPE = new DeferredRegister<>(ForgeRegistries.PARTICLE_TYPES, ModConstants.MOD_ID); public static final RegistryObject<ObsidianParticleType> obsidianParticleType = PARTICLE_TYPE.register("obsidian_particle", ObsidianParticleType::new); } ObsidianParticleType.java public class ObsidianParticleType extends ParticleType<ObsidianParticleData> { public ObsidianParticleType() { super(false, ObsidianParticleData.DESERIALIZER); } }  
  • Topics

  • Who's Online (See full list)