Jump to content

Recommended Posts

Posted (edited)

So this is a bit of a follow up to my previous topic - I'm currently trying to use a FastTESR to render a tile entity that stores its color. I can't really find any pointers on how to use it, though - trying to follow a code example I found just...made it break horribly, as you can see in the attached image.
Here's the relevant code that I'm using, can anyone give some pointers on what I'm doing wrong?

FastTESR class:

Spoiler

package prospectpyxis.customcapacitors.client.render;

import net.minecraft.block.state.IBlockState;
import net.minecraft.client.renderer.BufferBuilder;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraftforge.client.model.animation.FastTESR;
import prospectpyxis.customcapacitors.block.BlockCapacitor;
import prospectpyxis.customcapacitors.block.tile.TileEntityCapacitor;
import prospectpyxis.customcapacitors.proxy.ClientProxy;

import java.awt.*;

public class TESRCapacitor extends FastTESR<TileEntityCapacitor> {

    @Override
    public void renderTileEntityFast(TileEntityCapacitor tec, double x, double y, double z, float partialTicks, int destroyStage, float partial, BufferBuilder buffer) {
        buffer.setTranslation(x, y, z);

        IBlockState state = tec.getWorld().getBlockState(tec.getPos());

        Color cb = new Color(tec.data.getColorBase(), false);
        Color ct = new Color(tec.data.getColorTrim(), false);

        createNewLayer(tec, ClientProxy.ctexBase, cb.getRed(), cb.getBlue(), cb.getGreen(), buffer);
        createNewLayer(tec, ClientProxy.ctexTrim, ct.getRed(), ct.getBlue(), ct.getGreen(), buffer);

        switch (state.getValue(BlockCapacitor.FACING)) {
            case DOWN:
                buffer.pos(1, 0, 1).color(255, 255, 255, 255)
                        .tex(ClientProxy.ctexOverlayO.getMinU(), ClientProxy.ctexOverlayO.getMaxV()).endVertex();
                buffer.pos(0, 0, 1).color(255, 255, 255, 255)
                        .tex(ClientProxy.ctexOverlayO.getMaxU(), ClientProxy.ctexOverlayO.getMaxV()).endVertex();
                buffer.pos(0, 0, 0).color(255, 255, 255, 255)
                        .tex(ClientProxy.ctexOverlayO.getMaxU(), ClientProxy.ctexOverlayO.getMinV()).endVertex();
                buffer.pos(1, 0, 0).color(255, 255, 255, 255)
                        .tex(ClientProxy.ctexOverlayO.getMinU(), ClientProxy.ctexOverlayO.getMinV()).endVertex();
                break;
            case UP:
                buffer.pos(1, 0, 1).color(255, 255, 255, 255)
                        .tex(ClientProxy.ctexOverlayO.getMinU(), ClientProxy.ctexOverlayO.getMaxV()).endVertex();
                buffer.pos(0, 0, 1).color(255, 255, 255, 255)
                        .tex(ClientProxy.ctexOverlayO.getMaxU(), ClientProxy.ctexOverlayO.getMaxV()).endVertex();
                buffer.pos(0, 0, 0).color(255, 255, 255, 255)
                        .tex(ClientProxy.ctexOverlayO.getMaxU(), ClientProxy.ctexOverlayO.getMinV()).endVertex();
                buffer.pos(1, 0, 0).color(255, 255, 255, 255)
                        .tex(ClientProxy.ctexOverlayO.getMinU(), ClientProxy.ctexOverlayO.getMinV()).endVertex();
                break;
            case NORTH:
                buffer.pos(0, 1, 0).color(255, 255, 255, 255)
                        .tex(ClientProxy.ctexOverlayO.getMinU(), ClientProxy.ctexOverlayO.getMaxV()).endVertex();
                buffer.pos(1, 1, 0).color(255, 255, 255, 255)
                        .tex(ClientProxy.ctexOverlayO.getMaxU(), ClientProxy.ctexOverlayO.getMaxV()).endVertex();
                buffer.pos(1, 0, 0).color(255, 255, 255, 255)
                        .tex(ClientProxy.ctexOverlayO.getMaxU(), ClientProxy.ctexOverlayO.getMinV()).endVertex();
                buffer.pos(0, 0, 0).color(255, 255, 255, 255)
                        .tex(ClientProxy.ctexOverlayO.getMinU(), ClientProxy.ctexOverlayO.getMinV()).endVertex();
                break;
            case SOUTH:
                buffer.pos(1, 1, 1).color(255, 255, 255, 255)
                        .tex(ClientProxy.ctexOverlayO.getMinU(), ClientProxy.ctexOverlayO.getMaxV()).endVertex();
                buffer.pos(0, 1, 1).color(255, 255, 255, 255)
                        .tex(ClientProxy.ctexOverlayO.getMaxU(), ClientProxy.ctexOverlayO.getMaxV()).endVertex();
                buffer.pos(0, 0, 1).color(255, 255, 255, 255)
                        .tex(ClientProxy.ctexOverlayO.getMaxU(), ClientProxy.ctexOverlayO.getMinV()).endVertex();
                buffer.pos(1, 0, 1).color(255, 255, 255, 255)
                        .tex(ClientProxy.ctexOverlayO.getMinU(), ClientProxy.ctexOverlayO.getMinV()).endVertex();
                break;
            case WEST:
                buffer.pos(0, 1, 1).color(255, 255, 255, 255)
                        .tex(ClientProxy.ctexOverlayO.getMinU(), ClientProxy.ctexOverlayO.getMaxV()).endVertex();
                buffer.pos(0, 1, 0).color(255, 255, 255, 255)
                        .tex(ClientProxy.ctexOverlayO.getMaxU(), ClientProxy.ctexOverlayO.getMaxV()).endVertex();
                buffer.pos(0, 0, 0).color(255, 255, 255, 255)
                        .tex(ClientProxy.ctexOverlayO.getMaxU(), ClientProxy.ctexOverlayO.getMinV()).endVertex();
                buffer.pos(0, 0, 1).color(255, 255, 255, 255)
                        .tex(ClientProxy.ctexOverlayO.getMinU(), ClientProxy.ctexOverlayO.getMinV()).endVertex();
                break;
            case EAST:
                buffer.pos(1, 1, 0).color(255, 255, 255, 255)
                        .tex(ClientProxy.ctexOverlayO.getMinU(), ClientProxy.ctexOverlayO.getMaxV()).endVertex();
                buffer.pos(1, 1, 1).color(255, 255, 255, 255)
                        .tex(ClientProxy.ctexOverlayO.getMaxU(), ClientProxy.ctexOverlayO.getMaxV()).endVertex();
                buffer.pos(1, 0, 1).color(255, 255, 255, 255)
                        .tex(ClientProxy.ctexOverlayO.getMaxU(), ClientProxy.ctexOverlayO.getMinV()).endVertex();
                buffer.pos(1, 0, 0).color(255, 255, 255, 255)
                        .tex(ClientProxy.ctexOverlayO.getMinU(), ClientProxy.ctexOverlayO.getMinV()).endVertex();
                break;
            default:
        }

    }

    public void createNewLayer(TileEntityCapacitor tec, TextureAtlasSprite tas, int r, int g, int b, BufferBuilder buffer) {
        // DOWN
        buffer.pos(1, 0, 1).color(r, g, b, 255).tex(tas.getMinU(), tas.getMaxV()).endVertex();
        buffer.pos(0, 0, 1).color(r, g, b, 255).tex(tas.getMaxU(), tas.getMaxV()).endVertex();
        buffer.pos(0, 0, 0).color(r, g, b, 255).tex(tas.getMaxU(), tas.getMinV()).endVertex();
        buffer.pos(1, 0, 0).color(r, g, b, 255).tex(tas.getMinU(), tas.getMinV()).endVertex();

        // UP
        buffer.pos(1, 1, 0).color(r, g, b, 255).tex(tas.getMinU(), tas.getMaxV()).endVertex();
        buffer.pos(0, 1, 0).color(r, g, b, 255).tex(tas.getMaxU(), tas.getMaxV()).endVertex();
        buffer.pos(0, 1, 1).color(r, g, b, 255).tex(tas.getMaxU(), tas.getMinV()).endVertex();
        buffer.pos(1, 1, 1).color(r, g, b, 255).tex(tas.getMinU(), tas.getMinV()).endVertex();

        // NORTH
        buffer.pos(0, 1, 0).color(r, g, b, 255).tex(tas.getMinU(), tas.getMaxV()).endVertex();
        buffer.pos(1, 1, 0).color(r, g, b, 255).tex(tas.getMaxU(), tas.getMaxV()).endVertex();
        buffer.pos(1, 0, 0).color(r, g, b, 255).tex(tas.getMaxU(), tas.getMinV()).endVertex();
        buffer.pos(0, 0, 0).color(r, g, b, 255).tex(tas.getMinU(), tas.getMinV()).endVertex();

        // SOUTH
        buffer.pos(1, 1, 1).color(r, g, b, 255).tex(tas.getMinU(), tas.getMaxV()).endVertex();
        buffer.pos(0, 1, 1).color(r, g, b, 255).tex(tas.getMaxU(), tas.getMaxV()).endVertex();
        buffer.pos(0, 0, 1).color(r, g, b, 255).tex(tas.getMaxU(), tas.getMinV()).endVertex();
        buffer.pos(1, 0, 1).color(r, g, b, 255).tex(tas.getMinU(), tas.getMinV()).endVertex();

        // WEST
        buffer.pos(0, 1, 1).color(r, g, b, 255).tex(tas.getMinU(), tas.getMaxV()).endVertex();
        buffer.pos(0, 1, 0).color(r, g, b, 255).tex(tas.getMaxU(), tas.getMaxV()).endVertex();
        buffer.pos(0, 0, 0).color(r, g, b, 255).tex(tas.getMaxU(), tas.getMinV()).endVertex();
        buffer.pos(0, 0, 1).color(r, g, b, 255).tex(tas.getMinU(), tas.getMinV()).endVertex();

        // EAST
        buffer.pos(1, 1, 0).color(r, g, b, 255).tex(tas.getMinU(), tas.getMaxV()).endVertex();
        buffer.pos(1, 1, 1).color(r, g, b, 255).tex(tas.getMaxU(), tas.getMaxV()).endVertex();
        buffer.pos(1, 0, 1).color(r, g, b, 255).tex(tas.getMaxU(), tas.getMinV()).endVertex();
        buffer.pos(1, 0, 0).color(r, g, b, 255).tex(tas.getMinU(), tas.getMinV()).endVertex();
    }
}

 

ClientProxy where the textures are registered:

Spoiler

package prospectpyxis.customcapacitors.proxy;

import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.item.Item;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.event.TextureStitchEvent;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import prospectpyxis.customcapacitors.CustomCapacitors;

@Mod.EventBusSubscriber
public class ClientProxy extends CommonProxy {

    @Override
    public void registerItemRenderer(Item item, int meta, String id) {
        ModelLoader.setCustomModelResourceLocation(item, meta, new ModelResourceLocation(CustomCapacitors.modid + ":" + id, "inventory"));
    }

    public static TextureAtlasSprite ctexBase;
    public static TextureAtlasSprite ctexTrim;
    public static TextureAtlasSprite ctexOverlay;
    public static TextureAtlasSprite ctexOverlayO;

    @SubscribeEvent
    public static void registerTextureStitch(TextureStitchEvent.Pre event) {
        if (event.getMap() == Minecraft.getMinecraft().getTextureMapBlocks()) {
            ctexBase = event.getMap().registerSprite(new ResourceLocation(CustomCapacitors.modid + ":blocks/capacitor_base"));
            ctexTrim = event.getMap().registerSprite(new ResourceLocation(CustomCapacitors.modid + ":blocks/capacitor_trim"));
            ctexOverlay = event.getMap().registerSprite(new ResourceLocation(CustomCapacitors.modid + ":blocks/capacitor_overlay"));
            ctexOverlayO = event.getMap().registerSprite(new ResourceLocation(CustomCapacitors.modid + ":blocks/capacitor_overlay_output"));
        }
    }
}

 

TileEntity class:

Spoiler

package prospectpyxis.customcapacitors.block.tile;

import com.google.common.collect.ImmutableMap;
import net.minecraft.block.state.IBlockState;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.ITickable;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.energy.CapabilityEnergy;
import prospectpyxis.customcapacitors.CustomCapacitors;
import prospectpyxis.customcapacitors.block.BlockCapacitor;
import prospectpyxis.customcapacitors.data.CapacitorData;
import prospectpyxis.customcapacitors.registry.CapacitorRegistry;
import prospectpyxis.pyxislib.energy.EnergyManager;

import javax.annotation.Nullable;

public class TileEntityCapacitor extends TileEntity implements ITickable {

    public CapacitorData data = new CapacitorData();

    public EnergyManager eContainer = new EnergyManager(0, 0);
    public EnergyManager eReceiver = new EnergyManager(0, 0);
    public EnergyManager eExtractor = new EnergyManager(0, 0);
    @Override
    public void update() {
        if (world.getTotalWorldTime() % data.storageLossData.lossDelay == 0) {
            int minThreshold = data.storageLossData.minThreshold == -1 ? 0 : data.storageLossData.minThreshold;
            int maxThreshold = data.storageLossData.maxThreshold == -1 ? eContainer.getMaxEnergyStored() + 1 : data.storageLossData.minThreshold;
            if (data.storageLossType != CapacitorData.EnumLossType.NONE && eContainer.getEnergyStored() >= minThreshold && eContainer.getEnergyStored() < maxThreshold) {
                switch (data.storageLossType) {
                    case CONSTANT:
                        eContainer.extractEnergy((int) Math.floor(data.storageLossData.lossValue), false);
                        break;
                    case PERCENTAGE:
                        eContainer.extractEnergy(Math.round(eContainer.getEnergyStored() * data.storageLossData.lossValue), false);
                        break;
                    case PERCENTAGE_INVERTED:
                        eContainer.extractEnergy(Math.round
                                ((eContainer.getMaxEnergyStored() - eContainer.getEnergyStored()) * data.storageLossData.lossValue), false);
                        break;
                    default:
                }
            }
        }

        ImmutableMap blockProperties = world.getBlockState(pos).getProperties();
        if (blockProperties.containsKey(BlockCapacitor.FACING)) {
            EnumFacing fc = (EnumFacing)blockProperties.get(BlockCapacitor.FACING);
                TileEntity te = world.getTileEntity(pos.offset(fc));
                if (te != null && te.hasCapability(CapabilityEnergy.ENERGY, fc.getOpposite())) {
                    te.getCapability(CapabilityEnergy.ENERGY, fc.getOpposite())
                            .receiveEnergy(eExtractor.extractEnergy(data.maxOutputRate, false), false);
                }
        }
    }

    @Override
    public boolean hasFastRenderer() {
        return true;
    }

    @Override
    public boolean hasCapability(Capability<?> capability, EnumFacing facing)
    {
        if (capability == CapabilityEnergy.ENERGY) {
            return true;
        }
        return super.hasCapability(capability, facing);
    }

    @Nullable
    @SuppressWarnings("unchecked")
    @Override
    public <T> T getCapability(Capability<T> capability, @Nullable EnumFacing facing) {
        if (capability == CapabilityEnergy.ENERGY) {
            if (facing == null) return (T)eContainer;
            ImmutableMap blockProperties = world.getBlockState(pos).getProperties();
            if (blockProperties.containsKey(BlockCapacitor.FACING)) {
                if (facing.equals(blockProperties.get(BlockCapacitor.FACING))) {
                    return (T)eExtractor;
                }
                else return (T)eReceiver;
            }
        }
        return super.getCapability(capability, facing);
    }

    @Override
    public boolean shouldRefresh(World world, BlockPos pos, IBlockState oldState, IBlockState newState)
    {
        return (oldState.getBlock() != newState.getBlock());
    }

    @Override
    public NBTTagCompound writeToNBT(NBTTagCompound compound) {
        compound.setInteger("energy", eContainer.getEnergyStored());
        compound.setString("capid", data.id);
        return super.writeToNBT(compound);
    }

    @Override
    public void readFromNBT(NBTTagCompound compound) {
        data = CapacitorRegistry.getDataById(compound.getString("capid")) == null ? new CapacitorData() : CapacitorRegistry.getDataById(compound.getString("capid"));

        if (data != null) {
            if (data.storageLossData.lossDelay < 1) {
                data.storageLossData.lossDelay = 1;
                CustomCapacitors.logger.warn("Warning! Capacitor " + data.id + " has less than 1 loss delay!");
                CustomCapacitors.logger.warn("It will be set to 1, please change the loss delay to a positive number!");
            }

            eContainer = new EnergyManager(data.capacity, data.maxInputRate, data.maxOutputRate) {
                @Override
                public int receiveEnergy(int maxReceive, boolean simulate) {
                    switch (data.inputLossType) {
                        case CONSTANT:
                            maxReceive = maxReceive - (int) Math.floor(data.inputLossValue);
                            break;
                        case PERCENTAGE:
                            maxReceive = maxReceive - Math.round(maxReceive * data.inputLossValue);
                            break;
                        case PERCENTAGE_INVERTED:
                            maxReceive = maxReceive - (int) ((this.maxReceive - maxReceive) * data.inputLossValue);
                            break;
                        default:
                    }
                    return super.receiveEnergy(maxReceive, simulate);
                }
            };

            eReceiver = new EnergyManager(0, data.maxInputRate) {
                @Override
                public boolean canExtract() {
                    return false;
                }

                @Override
                public int receiveEnergy(int maxReceive, boolean simulate) {
                    return eContainer.receiveEnergy(maxReceive, simulate);
                }
            };

            eExtractor = new EnergyManager(0, data.maxOutputRate) {
                @Override
                public boolean canReceive() {
                    return false;
                }

                @Override
                public int extractEnergy(int maxExtract, boolean simulate) {
                    return eContainer.extractEnergy(maxExtract, simulate);
                }
            };
        }

        eContainer.setEnergy(compound.getInteger("energy"));

        super.readFromNBT(compound);
    }
}

 

 

javaw_2019-03-19_22-44-01.png

Edited by ProspectPyxis
Posted
14 hours ago, ProspectPyxis said:

buffer.pos(1, 0, 1).color(255, 255, 255, 255)

I think that you’re 1) drawing at block pos (1, 0, 1) instead of the actual pos and 2) not adding all the elements of your vertex. 

 

Example of FastTESR: https://github.com/Cadiboo/Example-Mod/blob/master/src/main/java/io/github/cadiboo/examplemod/client/render/tileentity/RenderExampleTileEntity.java

Example of using the BufferBuilder to render faces (might not be what you want to achieve, but it’s useful for seeing the parameters and uses of them).

https://github.com/Cadiboo/NoCubes/blob/cb5ece4525faba7e44a3bb4bbb80328848c11647/src/main/java/io/github/cadiboo/nocubes/client/render/MeshRenderer.java#L385 

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Posted

So from what I can understand from the code you sent, one square face of a block is equal to four vertices. I don't really know what I'm doing wrong, though, since I already translated the buffer in the first line of renderTileEntityFast - do I need to add an offset to the pos as well?
Also, is a lightmap value absolutely required? It seems to be used in all the code you've sent me but I don't fully understand what it does.

Posted (edited)
On 3/22/2019 at 8:17 PM, ProspectPyxis said:

I already translated the buffer in the first line of renderTileEntityFast

That would be your problem. All FastTESRs are given the same buffer that is already setup properly.

On 3/22/2019 at 8:17 PM, ProspectPyxis said:

do I need to add an offset to the pos as well?

You need to draw at the position, currently you’re drawing near 0, 0, 0

On 3/22/2019 at 8:17 PM, ProspectPyxis said:

Also, is a lightmap value absolutely required? It seems to be used in all the code you've sent me but I don't fully understand what it does.

Yes. The vertex format BLOCK requires a lightmap. Lightmap values are from 0-240 with 240 being max brightness. You can use IBlockState#getPackedLightmapCoords to get packed coordinates. You can then use packed >> 16 & 0xFFFF to get the skylight which is stored in the upper bytes and packed & 0xFFFF to get the block light which is stored in the lower bytes.

 

You might want to look at https://github.com/Cadiboo/Example-Mod/blob/5fe80fde8a41cd571593c02897b06b5822e9a738/src/main/java/io/github/cadiboo/examplemod/client/ClientUtil.java#L240 as it is very well commented. Also note the offset (x, y, z) that is added to the quad in the renderFast method. 

Edited by Cadiboo
  • Like 1

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Posted (edited)

Alright, so adding a lightmap value actually got rid of the weird stretching, but now I have a couple new problems, as you can see in the image here:

Spoiler

image.png.56e5a8b6e8260334a29c5ed9ad6026e7.png

(Ignore the transparency issue, the block is supposed to be a full block either way)

  1. The texture is completely dark.
  2. The texture doesn't fully fill the outline of the blockstate texture - you can see the empty gaps in the image.

How would I fix this? The new TESR code is here (I'm only testing for one face for now so I removed a massive chunk of the code):

Spoiler

package prospectpyxis.customcapacitors.client.render;

import net.minecraft.block.state.IBlockState;
import net.minecraft.client.renderer.BufferBuilder;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraftforge.client.model.animation.FastTESR;
import org.lwjgl.util.vector.Vector3f;
import prospectpyxis.customcapacitors.block.BlockCapacitor;
import prospectpyxis.customcapacitors.block.tile.TileEntityCapacitor;
import prospectpyxis.customcapacitors.proxy.ClientProxy;

import java.awt.*;

public class TESRCapacitor extends FastTESR<TileEntityCapacitor> {

    @Override
    public void renderTileEntityFast(TileEntityCapacitor tec, double x, double y, double z, float partialTicks, int destroyStage, float partial, BufferBuilder buffer) {

        IBlockState state = tec.getWorld().getBlockState(tec.getPos());

        Color cb = new Color(tec.data.getColorBase(), false);
        Color ct = new Color(tec.data.getColorTrim(), false);

        createNewLayer(tec, state, new Vector3f((float)x, (float)y, (float)z), ClientProxy.ctexBase, cb.getRed(), cb.getBlue(), cb.getGreen(), buffer);
    }

    public void createNewLayer(TileEntityCapacitor tec, IBlockState state, Vector3f offset, TextureAtlasSprite tas, int r, int g, int b, BufferBuilder buffer) {

        int blocklight = (state.getPackedLightmapCoords(tec.getWorld(), tec.getPos())) & 0xFFFF;
        int skylight = (state.getPackedLightmapCoords(tec.getWorld(), tec.getPos())) >> 16 & 0xFFFF;

        buffer.pos(offset.x + 0, offset.y + 0, offset.z + 0).color(r, g, b, 255).tex(tas.getMinU(), tas.getMaxV()).lightmap(skylight, blocklight).endVertex();
        buffer.pos(offset.x + 1, offset.y + 0, offset.z + 0).color(r, g, b, 255).tex(tas.getMaxU(), tas.getMaxV()).lightmap(skylight, blocklight).endVertex();
        buffer.pos(offset.x + 1, offset.y + 1, offset.z + 0).color(r, g, b, 255).tex(tas.getMaxU(), tas.getMinV()).lightmap(skylight, blocklight).endVertex();
        buffer.pos(offset.x + 0, offset.y + 1, offset.z + 0).color(r, g, b, 255).tex(tas.getMinU(), tas.getMinV()).lightmap(skylight, blocklight).endVertex();
    }
}

 

 

Edited by ProspectPyxis
Posted

The darkness is caused by your block being a full block. Either make your block able to have light pass through/into it OR average the light from the surrounding blocks OR get the light from the proper place for each vertex. Rendered textures have an issue with 1 pixel around their edge being transparent. You can get around this the way vanilla does for block rendering (subtracting a tiny bit from the part of the texture it renders). You can see me doing this where I fix a number of issues with Vanilla’s fluid rendering at https://github.com/Cadiboo/NoCubes/blob/2d116b923e584ecfaa05823ffbccc2e9aedf537e/src/main/java/io/github/cadiboo/nocubes/client/render/SmoothLightingBlockFluidRenderer.java#L272. I add smooth lighting and fix the transparent lines between fluids. 

  • Like 1

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • I'm no Java expert, but am trying to generate the dimension noise_settings for my mod using code, but am stuck on how to program 'string' arguments. I have used the Noise Settings Generator at https://misode.github.io/worldgen/noise-settings/?version=1.20 to design my noise settings In my code, my RegistrySetBuilder adds Registries.NOISE_SETTINGS, and in that bootstrap I register my noise which creates a new NoiseGeneratorSettings. This creates a new NoiseRouter, to which I pass DensityFunction parameters Noise Settings Generator Float Arguments I can code like: DensityFunctions.constant(1) Object Arguments I can code like: DensityFunctions.noise(holdergetter.getOrThrow(Noises.SURFACE), 500.0D, -12.0D) But I can't see how to do String Arguments. In misode they look like Argument: String: minecraft:overworld_large_biomes/sloped_cheese   Any ideas?
    • Hello everyone, Very junior mod maker here. I'm making a floating plank that sits over water. There's this heavy shadow on it when there's a block over it for some reason. As you can see in the picture, the lily pad that has a block over it is just a little darker from the shadow. however my custom plank is almost dark. I have no idea what might cause this. If it is how I generate the block model, here's the code I'm using:   getBuilder(block.getId().getPath()) .ao(false) .texture("particle", new ResourceLocation(xxxxx.MODID, "block/" + block.getId().getPath())) .texture("texture", new ResourceLocation(xxxxx.MODID, "block/" + block.getId().getPath())) .element() .from(0.01f, -2f, 0.01f) .to(15.99f, 0.01f, 15.99f) .face(Direction.DOWN).uvs(0f, 0f, 16f, 16f).texture("#texture").cullface(Direction.DOWN).tintindex(0).end() .face(Direction.UP).uvs(0f, 0f, 16f, 16f).texture("#texture").cullface(Direction.UP).tintindex(0).end() .face(Direction.NORTH).uvs(0f, 0f, 16f, 2.01f).texture("#texture").cullface(Direction.NORTH).tintindex(0).end() .face(Direction.SOUTH).uvs(0f, 0f, 16f, 2.01f).texture("#texture").cullface(Direction.SOUTH).tintindex(0).end() .face(Direction.EAST).uvs(0f, 0f, 2.01f, 16f).texture("#texture").rotation(ModelBuilder.FaceRotation.CLOCKWISE_90).cullface(Direction.EAST).tintindex(0).end() .face(Direction.WEST).uvs(0f, 0f, 2.01f, 16f).texture("#texture").rotation(ModelBuilder.FaceRotation.CLOCKWISE_90).cullface(Direction.WEST).tintindex(0).end() .end();  
    • [30Jan2025 13:41:57. 714] [main/INFO] [cpw. mods. modlauncher. Launcher/MODLAUNCHER]: ModLauncher running: args [--launchTarget, arclightserver, --fml. forgeVersion, 47. 3. 22, --fml. mcVersion, 1. 20. 1, --fml. forgeGroup, net. minecraftforge, --fml. mcpVersion, 20230612. 114412, nogui] 14[30Jan2025 13:41:57. 715] [main/INFO] [cpw. mods. modlauncher. Launcher/MODLAUNCHER]: ModLauncher 10. 0. 9+10. 0. 9+main. dcd20f30 starting: java version 17. 0. 13 by Eclipse Adoptium; OS Linux arch amd64 version 5. 15. 0-131-generic 15[30Jan2025 13:41:58. 774] [main/INFO] [net. minecraftforge. fml. loading. ImmediateWindowHandler/]: ImmediateWindowProvider not loading because launch target is arclightserver 16[30Jan2025 13:41:58. 804] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0. 8. 5 Source=union:/server/libraries/org/spongepowered/mixin/0. 8. 5/mixin-0. 8. 5. jar%2399!/ Service=ModLauncher Env=SERVER 17[30Jan2025 13:41:59. 305] [main/WARN] [net. minecraftforge. fml. loading. moddiscovery. ModFileParser/LOADING]: Mod file /server/libraries/net/minecraftforge/fmlcore/1. 20. 1-47. 3. 22/fmlcore-1. 20. 1-47. 3. 22. jar is missing mods. toml file 18[30Jan2025 13:41:59. 308] [main/WARN] [net. minecraftforge. fml. loading. moddiscovery. ModFileParser/LOADING]: Mod file /server/libraries/net/minecraftforge/javafmllanguage/1. 20. 1-47. 3. 22/javafmllanguage-1. 20. 1-47. 3. 22. jar is missing mods. toml file 19[30Jan2025 13:41:59. 309] [main/WARN] [net. minecraftforge. fml. loading. moddiscovery. ModFileParser/LOADING]: Mod file /server/libraries/net/minecraftforge/lowcodelanguage/1. 20. 1-47. 3. 22/lowcodelanguage-1. 20. 1-47. 3. 22. jar is missing mods. toml file 20[30Jan2025 13:41:59. 311] [main/WARN] [net. minecraftforge. fml. loading. moddiscovery. ModFileParser/LOADING]: Mod file /server/libraries/net/minecraftforge/mclanguage/1. 20. 1-47. 3. 22/mclanguage-1. 20. 1-47. 3. 22. jar is missing mods. toml file 21[30Jan2025 13:41:59. 572] [main/INFO] [net. minecraftforge. fml. loading. moddiscovery. JarInJarDependencyLocator/]: Found 15 dependencies adding them to mods collection 22[30Jan2025 13:42:04. 300] [main/INFO] [mixin/]: Compatibility level set to JAVA_17 23[30Jan2025 13:42:04. 507] [main/ERROR] [mixin/]: Mixin config mixins. megamons-common. json does not specify "minVersion" property 24[30Jan2025 13:42:04. 621] [main/INFO] [mixin/]: Successfully loaded Mixin Connector [de. maxhenkel. tradecycling. MixinConnector] 25[30Jan2025 13:42:04. 625] [main/INFO] [mixin/]: Successfully loaded Mixin Connector [io. izzel. arclight. common. mod. ArclightConnector] 26[30Jan2025 13:42:04. 696] [main/INFO] [Arclight/]: Arclight core mixin added. 27[30Jan2025 13:42:04. 708] [main/INFO] [Arclight/]: Arclight optimization mixin added. 28[30Jan2025 13:42:04. 712] [main/INFO] [cpw. mods. modlauncher. LaunchServiceHandler/MODLAUNCHER]: Launching target 'arclightserver' with arguments [nogui] 29[30Jan2025 13:42:04. 982] [main/WARN] [mixin/]: Reference map 'handcrafted-forge-1. 20. 1-forge-refmap. json' for handcrafted. mixins. json could not be read. If this is a development environment you can ignore this message 30[30Jan2025 13:42:05. 003] [main/WARN] [mixin/]: Reference map 'megamons-forge-refmap. json' for mixins. megamons-forge. json could not be read. If this is a development environment you can ignore this message 31[30Jan2025 13:42:05. 021] [main/WARN] [mixin/]: Reference map 'CreateLiquidFuel. refmap. json' for createliquidfuel. mixins. json could not be read. If this is a development environment you can ignore this message 32[30Jan2025 13:42:05. 029] [main/WARN] [mixin/]: Reference map 'chiselsandbits. refmap. json' for chisels-and-bits. mixins. json could not be read. If this is a development environment you can ignore this message 33[30Jan2025 13:42:06. 109] [main/WARN] [mixin/]: Error loading class: com/copycatsplus/copycats/content/copycat/slab/CopycatSlabBlock (java. lang. ClassNotFoundException: com. copycatsplus. copycats. content. copycat. slab. CopycatSlabBlock) 34[30Jan2025 13:42:06. 109] [main/WARN] [mixin/]: @Mixin target com. copycatsplus. copycats. content. copycat. slab. CopycatSlabBlock was not found create_connected. mixins. json:compat. CopycatBlockMixin 35[30Jan2025 13:42:06. 112] [main/WARN] [mixin/]: Error loading class: com/copycatsplus/copycats/content/copycat/board/CopycatBoardBlock (java. lang. ClassNotFoundException: com. copycatsplus. copycats. content. copycat. board. CopycatBoardBlock) 36[30Jan2025 13:42:06. 112] [main/WARN] [mixin/]: @Mixin target com. copycatsplus. copycats. content. copycat. board. CopycatBoardBlock was not found create_connected. mixins. json:compat. CopycatBlockMixin 37[30Jan2025 13:42:06. 154] [main/WARN] [mixin/]: Error loading class: me/jellysquid/mods/lithium/common/ai/pathing/PathNodeDefaults (java. lang. ClassNotFoundException: me. jellysquid. mods. lithium. common. ai. pathing. PathNodeDefaults) 38[30Jan2025 13:42:06. 212] [main/ERROR] [net. minecraftforge. fml. loading. RuntimeDistCleaner/DISTXFORM]: Attempted to load class com/simibubi/create/foundation/gui/AbstractSimiScreen for invalid dist DEDICATED_SERVER 39[30Jan2025 13:42:06. 213] [main/WARN] [mixin/]: Error loading class: com/simibubi/create/foundation/gui/AbstractSimiScreen (java. lang. RuntimeException: Attempted to load class com/simibubi/create/foundation/gui/AbstractSimiScreen for invalid dist DEDICATED_SERVER) 40[30Jan2025 13:42:06. 213] [main/WARN] [mixin/]: @Mixin target com. simibubi. create. foundation. gui. AbstractSimiScreen was not found create_connected. mixins. json:sequencedgearshift. AbstractSimiScreenAccessor 41[30Jan2025 13:42:07. 237] [main/WARN] [mixin/]: Error loading class: juuxel/adorn/block/variant/BlockVariantSets (java. lang. ClassNotFoundException: juuxel. adorn. block. variant. BlockVariantSets) 42[30Jan2025 13:42:07. 237] [main/WARN] [mixin/]: @Mixin target juuxel. adorn. block. variant. BlockVariantSets was not found mixins. cobblemon-common. json:invoker. AdornRegisterInvoker 43[30Jan2025 13:42:11. 158] [main/INFO] [MixinExtras|Service/]: Initializing MixinExtras via com. llamalad7. mixinextras. service. MixinExtrasServiceImpl(version=0. 3. 5). 44[30Jan2025 13:42:20. 266] [main/WARN] [mixin/]: Static binding violation: PRIVATE @Overwrite method m_147092_ in mixins. arclight. core. json:world. entity. ExperienceOrbMixin cannot reduce visibiliy of PUBLIC target method, visibility will be upgraded. 45[30Jan2025 13:42:21. 288] [main/ERROR] [net. minecraftforge. coremod. transformer. CoreModBaseTransformer/COREMOD]: Error occurred applying transform of coremod coremods/field_to_method. js function biome 46java. lang. IllegalStateException: Field f_47437_ is not private and an instance field 47at net. minecraftforge. coremod. api. ASMAPI. redirectFieldToMethod(ASMAPI. java:1069) ~[coremods-5. 2. 4. jar%2388!/:?] {} 48at org. openjdk. nashorn. internal. scripts. Script$Recompilation$22$292A$\^eval\_. initializeCoreMod#transformer(:11) ~[?:?] {} 49at org. openjdk. nashorn. internal. runtime. ScriptFunctionData. invoke(ScriptFunctionData. java:648) ~[nashorn-core-15. 4. jar%23100!/:?] {} 50at org. openjdk. nashorn. internal. runtime. ScriptFunction. invoke(ScriptFunction. java:513) ~[nashorn-core-15. 4. jar%23100!/:?] {} 51at org. openjdk. nashorn. internal. runtime. ScriptRuntime. apply(ScriptRuntime. java:520) ~[nashorn-core-15. 4. jar%23100!/:?] {} 52at org. openjdk. nashorn. api. scripting. ScriptObjectMirror. call(ScriptObjectMirror. java:111) ~[nashorn-core-15. 4. jar%23100!/:?] {} 53at net. minecraftforge. coremod. NashornFactory. lambda$getFunction$0(NashornFactory. java:37) ~[coremods-5. 2. 4. jar%2388!/:5. 2. 4] {} 54at net. minecraftforge. coremod. transformer. CoreModClassTransformer. runCoremod(CoreModClassTransformer. java:22) ~[coremods-5. 2. 4. jar%2388!/:?] {} 55at net. minecraftforge. coremod. transformer. CoreModClassTransformer. runCoremod(CoreModClassTransformer. java:14) ~[coremods-5. 2. 4. jar%2388!/:?] {} 56at net. minecraftforge. coremod. transformer. CoreModBaseTransformer. transform(CoreModBaseTransformer. java:60) ~[coremods-5. 2. 4. jar%2388!/:?] {} 57at cpw. mods. modlauncher. TransformerHolder. transform(TransformerHolder. java:41) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 58at cpw. mods. modlauncher. ClassTransformer. performVote(ClassTransformer. java:179) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 59at cpw. mods. modlauncher. ClassTransformer. transform(ClassTransformer. java:117) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 60at cpw. mods. modlauncher. TransformingClassLoader. maybeTransformClassBytes(TransformingClassLoader. java:50) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 61at cpw. mods. cl. ModuleClassLoader. getMaybeTransformedClassBytes(ModuleClassLoader. java:250) ~[securejarhandler-2. 1. 10. jar:?] {} 62at cpw. mods. modlauncher. TransformingClassLoader. buildTransformedClassNodeFor(TransformingClassLoader. java:58) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 63at cpw. mods. modlauncher. LaunchPluginHandler. lambda$announceLaunch$10(LaunchPluginHandler. java:100) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 64at org. spongepowered. asm. launch. MixinLaunchPluginLegacy. getClassNode(MixinLaunchPluginLegacy. java:222) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 65at org. spongepowered. asm. launch. MixinLaunchPluginLegacy. getClassNode(MixinLaunchPluginLegacy. java:207) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 66at org. spongepowered. asm. mixin. transformer. ClassInfo. forName(ClassInfo. java:2005) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 67at org. spongepowered. asm. mixin. transformer. ClassInfo. forType(ClassInfo. java:2059) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 68at org. spongepowered. asm. mixin. transformer. ClassInfo. forDescriptor(ClassInfo. java:2038) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 69at org. spongepowered. asm. mixin. transformer. MixinPreProcessorStandard. transformMethod(MixinPreProcessorStandard. java:752) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 70at org. spongepowered. asm. mixin. transformer. MixinPreProcessorStandard. transform(MixinPreProcessorStandard. java:739) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 71at org. spongepowered. asm. mixin. transformer. MixinPreProcessorStandard. attach(MixinPreProcessorStandard. java:310) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 72at org. spongepowered. asm. mixin. transformer. MixinPreProcessorStandard. createContextFor(MixinPreProcessorStandard. java:280) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 73at org. spongepowered. asm. mixin. transformer. MixinInfo. createContextFor(MixinInfo. java:1288) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 74at org. spongepowered. asm. mixin. transformer. MixinApplicatorStandard. apply(MixinApplicatorStandard. java:292) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 75at org. spongepowered. asm. mixin. transformer. TargetClassContext. apply(TargetClassContext. java:383) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 76at org. spongepowered. asm. mixin. transformer. TargetClassContext. applyMixins(TargetClassContext. java:365) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 77at org. spongepowered. asm. mixin. transformer. MixinProcessor. applyMixins(MixinProcessor. java:363) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 78at org. spongepowered. asm. mixin. transformer. MixinTransformer. transformClass(MixinTransformer. java:250) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 79at org. spongepowered. asm. service. modlauncher. MixinTransformationHandler. processClass(MixinTransformationHandler. java:131) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 80at org. spongepowered. asm. launch. MixinLaunchPluginLegacy. processClass(MixinLaunchPluginLegacy. java:131) ~[mixin-0. 8. 5. jar%2399!/:0. 8. 5+Jenkins-b310. git-155314e6e91465dad727e621a569906a410cd6f4] {} 81at cpw. mods. modlauncher. serviceapi. ILaunchPluginService. processClassWithFlags(ILaunchPluginService. java:156) ~[modlauncher-10. 0. 9. jar%2389!/:10. 0. 9+10. 0. 9+main. dcd20f30] {} 82at cpw. mods. modlauncher. LaunchPluginHandler. offerClassNodeToPlugins(LaunchPluginHandler. java:88) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 83at cpw. mods. modlauncher. ClassTransformer. transform(ClassTransformer. java:120) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 84at cpw. mods. modlauncher. TransformingClassLoader. maybeTransformClassBytes(TransformingClassLoader. java:50) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 85at cpw. mods. cl. ModuleClassLoader. readerToClass(ModuleClassLoader. java:113) ~[securejarhandler-2. 1. 10. jar:?] {} 86at cpw. mods. cl. ModuleClassLoader. lambda$findClass$15(ModuleClassLoader. java:219) ~[securejarhandler-2. 1. 10. jar:?] {} 87at cpw. mods. cl. ModuleClassLoader. loadFromModule(ModuleClassLoader. java:229) ~[securejarhandler-2. 1. 10. jar:?] {} 88at cpw. mods. cl. ModuleClassLoader. findClass(ModuleClassLoader. java:219) ~[securejarhandler-2. 1. 10. jar:?] {} 89at cpw. mods. cl. ModuleClassLoader. loadClass(ModuleClassLoader. java:135) ~[securejarhandler-2. 1. 10. jar:?] {} 90at java. lang. ClassLoader. loadClass(ClassLoader. java:525) ~[?:?] {} 91at net. minecraft. core. GlobalPos. m_122641_(GlobalPos. java:11) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:mixin, re:classloading} 92at com. mojang. serialization. codecs. RecordCodecBuilder. create(RecordCodecBuilder. java:72) ~[datafixerupper-6. 0. 8. jar%23111!/:?] {} 93at net. minecraft. core. GlobalPos. (GlobalPos. java:11) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:mixin, re:classloading} 94at net. minecraft. world. entity. ai. memory. MemoryModuleType. (MemoryModuleType. java:32) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:classloading, pl:accesstransformer:B, re:mixin, pl:accesstransformer:B} 95at net. minecraft. world. entity. animal. frog. Tadpole. (TadpoleMixin. java:53) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:mixin, pl:accesstransformer:B, xf:fml:forge:forge_method_redirector, re:classloading, pl:accesstransformer:B, xf:fml:forge:forge_method_redirector, pl:mixin:APP:mixins. arclight. core. json:world. entity. animal. frog. TadpoleMixin, pl:mixin:A} 96at net. minecraft. world. entity. EntityType. (EntityTypeMixin. java:267) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:mixin, xf:fml:forge:forge_method_redirector, re:classloading, xf:fml:forge:forge_method_redirector, pl:mixin:APP:mixins. arclight. core. json:world. entity. EntityTypeMixin, pl:mixin:A} 97at net. minecraft. world. item. Items. (Items. java:754) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:mixin, pl:object_holder_definalize:A, re:classloading, pl:object_holder_definalize:A} 98at net. minecraft. world. level. block. ComposterBlock. m_51988_(ComposterBlockMixin. java:60) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:mixin, pl:accesstransformer:B, re:classloading, pl:accesstransformer:B, pl:mixin:APP:mixins. arclight. core. json:world. level. block. ComposterBlockMixin, pl:mixin:A} 99at net. minecraft. server. Bootstrap. m_135870_(BootstrapMixin. java:47) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:mixin, re:classloading, pl:mixin:APP:mixins. arclight. core. json:server. BootstrapMixin, pl:mixin:A} 100at net. minecraft. server. Main. main(Main. java:121) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:mixin, pl:accesstransformer:B, re:classloading, pl:accesstransformer:B, pl:mixin:A} 101at jdk. internal. reflect. NativeMethodAccessorImpl. invoke0(Native Method) ~[?:?] {} 102at jdk. internal. reflect. NativeMethodAccessorImpl. invoke(NativeMethodAccessorImpl. java:77) ~[?:?] {} 103at jdk. internal. reflect. DelegatingMethodAccessorImpl. invoke(DelegatingMethodAccessorImpl. java:43) ~[?:?] {} 104at java. lang. reflect. Method. invoke(Method. java:569) ~[?:?] {} 105at net. minecraftforge. fml. loading. targets. CommonLaunchHandler. runTarget(CommonLaunchHandler. java:111) ~[fmlloader-1. 20. 1-47. 3. 22. jar%23103!/:?] {} 106at net. minecraftforge. fml. loading. targets. CommonLaunchHandler. serverService(CommonLaunchHandler. java:103) ~[fmlloader-1. 20. 1-47. 3. 22. jar%23103!/:?] {} 107at net. minecraftforge. fml. loading. targets. CommonServerLaunchHandler. lambda$makeService$0(CommonServerLaunchHandler. java:27) ~[fmlloader-1. 20. 1-47. 3. 22. jar%23103!/:?] {} 108at cpw. mods. modlauncher. LaunchServiceHandlerDecorator. launch(LaunchServiceHandlerDecorator. java:30) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 109at cpw. mods. modlauncher. LaunchServiceHandler. launch(LaunchServiceHandler. java:53) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 110at cpw. mods. modlauncher. LaunchServiceHandler. launch(LaunchServiceHandler. java:71) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 111at cpw. mods. modlauncher. Launcher. run(Launcher. java:108) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 112at cpw. mods. modlauncher. Launcher. main(Launcher. java:78) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 113at cpw. mods. modlauncher. BootstrapLaunchConsumer. accept(BootstrapLaunchConsumer. java:26) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 114at cpw. mods. modlauncher. BootstrapLaunchConsumer. accept(BootstrapLaunchConsumer. java:23) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 115at io. izzel. arclight. boot. application. ApplicationBootstrap. accept(ApplicationBootstrap. java:46) ~[arclight. jar:arclight-1. 20. 1-1. 0. 6-SNAPSHOT-c1e6367] {} 116at jdk. internal. reflect. NativeMethodAccessorImpl. invoke0(Native Method) ~[?:?] {} 117at jdk. internal. reflect. NativeMethodAccessorImpl. invoke(NativeMethodAccessorImpl. java:77) ~[?:?] {} 118at jdk. internal. reflect. DelegatingMethodAccessorImpl. invoke(DelegatingMethodAccessorImpl. java:43) ~[?:?] {} 119at java. lang. reflect. Method. invoke(Method. java:569) ~[?:?] {} 120at io. izzel. arclight. boot. application. BootstrapTransformer. onInvoke$BootstrapLauncher(BootstrapTransformer. java:26) ~[arclight. jar:arclight-1. 20. 1-1. 0. 6-SNAPSHOT-c1e6367] {} 121at cpw. mods. bootstraplauncher. BootstrapLauncher. main(BootstrapLauncher. java:141) ~[bootstraplauncher-1. 1. 2. jar:?] {} 122at jdk. internal. reflect. NativeMethodAccessorImpl. invoke0(Native Method) ~[?:?] {} 123at jdk. internal. reflect. NativeMethodAccessorImpl. invoke(NativeMethodAccessorImpl. java:77) ~[?:?] {} 124at jdk. internal. reflect. DelegatingMethodAccessorImpl. invoke(DelegatingMethodAccessorImpl. java:43) ~[?:?] {} 125at java. lang. reflect. Method. invoke(Method. java:569) ~[?:?] {} 126at io. izzel. arclight. boot. application. Main_Forge. main(Main_Forge. java:33) ~[arclight. jar%2383!/:arclight-1. 20. 1-1. 0. 6-SNAPSHOT-c1e6367] {} 127at io. izzel. arclight. server. Launcher. main(Launcher. java:18) ~[arclight. jar%2383!/:arclight-1. 20. 1-1. 0. 6-SNAPSHOT-c1e6367] {} 128[30Jan2025 13:42:21. 327] [main/WARN] [mixin/]: @Inject(@At("INVOKE_ASSIGN")) Shift. BY=2 on refurbished_furniture. common. mixins. json:LevelChunkMixin::handler$zjk000$refurbishedFurniture$AfterRemoveBlockEntity exceeds the maximum allowed value: 0. Increase the value of maxShiftBy to suppress this warning. 129[30Jan2025 13:42:22. 457] [main/WARN] [mixin/]: Mixin alexscaves. mixins. json:SwampHutPieceMixin has multiple constructors, (Lnet/minecraft/world/level/levelgen/structure/pieces/StructurePieceType; IIIIIILnet/minecraft/core/Direction; )V was selected 130 131[30Jan2025 13:42:22. 601] [main/ERROR] [net. minecraftforge. coremod. transformer. CoreModBaseTransformer/COREMOD]: Error occurred applying transform of coremod coremods/field_to_method. js function biome 132java. lang. IllegalStateException: Field f_47437_ is not private and an instance field 133at net. minecraftforge. coremod. api. ASMAPI. redirectFieldToMethod(ASMAPI. java:1069) ~[coremods-5. 2. 4. jar%2388!/:?] {} 134at org. openjdk. nashorn. internal. scripts. Script$Recompilation$22$292A$\^eval\_. initializeCoreMod#transformer(:11) ~[?:?] {} 135at org. openjdk. nashorn. internal. runtime. ScriptFunctionData. invoke(ScriptFunctionData. java:648) ~[nashorn-core-15. 4. jar%23100!/:?] {} 136at org. openjdk. nashorn. internal. runtime. ScriptFunction. invoke(ScriptFunction. java:513) ~[nashorn-core-15. 4. jar%23100!/:?] {} 137at org. openjdk. nashorn. internal. runtime. ScriptRuntime. apply(ScriptRuntime. java:520) ~[nashorn-core-15. 4. jar%23100!/:?] {} 138at org. openjdk. nashorn. api. scripting. ScriptObjectMirror. call(ScriptObjectMirror. java:111) ~[nashorn-core-15. 4. jar%23100!/:?] {} 139at net. minecraftforge. coremod. NashornFactory. lambda$getFunction$0(NashornFactory. java:37) ~[coremods-5. 2. 4. jar%2388!/:5. 2. 4] {} 140at net. minecraftforge. coremod. transformer. CoreModClassTransformer. runCoremod(CoreModClassTransformer. java:22) ~[coremods-5. 2. 4. jar%2388!/:?] {} 141at net. minecraftforge. coremod. transformer. CoreModClassTransformer. runCoremod(CoreModClassTransformer. java:14) ~[coremods-5. 2. 4. jar%2388!/:?] {} 142at net. minecraftforge. coremod. transformer. CoreModBaseTransformer. transform(CoreModBaseTransformer. java:60) ~[coremods-5. 2. 4. jar%2388!/:?] {} 143at cpw. mods. modlauncher. TransformerHolder. transform(TransformerHolder. java:41) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 144at cpw. mods. modlauncher. ClassTransformer. performVote(ClassTransformer. java:179) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 145at cpw. mods. modlauncher. ClassTransformer. transform(ClassTransformer. java:117) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 146at cpw. mods. modlauncher. TransformingClassLoader. maybeTransformClassBytes(TransformingClassLoader. java:50) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 147at cpw. mods. cl. ModuleClassLoader. readerToClass(ModuleClassLoader. java:113) ~[securejarhandler-2. 1. 10. jar:?] {} 148at cpw. mods. cl. ModuleClassLoader. lambda$findClass$15(ModuleClassLoader. java:219) ~[securejarhandler-2. 1. 10. jar:?] {} 149at cpw. mods. cl. ModuleClassLoader. loadFromModule(ModuleClassLoader. java:229) ~[securejarhandler-2. 1. 10. jar:?] {} 150at cpw. mods. cl. ModuleClassLoader. findClass(ModuleClassLoader. java:219) ~[securejarhandler-2. 1. 10. jar:?] {} 151at cpw. mods. cl. ModuleClassLoader. loadClass(ModuleClassLoader. java:135) ~[securejarhandler-2. 1. 10. jar:?] {} 152at java. lang. ClassLoader. loadClass(ClassLoader. java:525) ~[?:?] {} 153at net. minecraft. world. level. biome. FixedBiomeSource. (FixedBiomeSource. java:17) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:classloading} 154at net. minecraft. world. level. biome. BiomeSources. m_220586_(BiomeSources. java:8) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:classloading} 155at net. minecraft. core. registries. BuiltInRegistries. m_258029_(BuiltInRegistries. java:448) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:classloading, re:mixin} 156at net. minecraft. core. registries. BuiltInRegistries. m_258037_(BuiltInRegistries. java:462) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:classloading, re:mixin} 157at java. util. LinkedHashMap. forEach(LinkedHashMap. java:721) ~[?:?] {} 158at net. minecraft. core. registries. BuiltInRegistries. m_257453_(BuiltInRegistries. java:461) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:classloading, re:mixin} 159at net. minecraft. core. registries. BuiltInRegistries. m_257498_(BuiltInRegistries. java:455) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:classloading, re:mixin} 160at net. minecraft. server. Bootstrap. m_135870_(BootstrapMixin. java:55) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:mixin, re:classloading, pl:mixin:APP:mixins. arclight. core. json:server. BootstrapMixin, pl:mixin:A} 161at net. minecraft. server. Main. main(Main. java:121) ~[server-1. 20. 1-20230612. 114412-srg. jar%23247!/:?] {re:mixin, pl:accesstransformer:B, re:classloading, pl:accesstransformer:B, pl:mixin:A} 162at jdk. internal. reflect. NativeMethodAccessorImpl. invoke0(Native Method) ~[?:?] {} 163at jdk. internal. reflect. NativeMethodAccessorImpl. invoke(NativeMethodAccessorImpl. java:77) ~[?:?] {} 164at jdk. internal. reflect. DelegatingMethodAccessorImpl. invoke(DelegatingMethodAccessorImpl. java:43) ~[?:?] {} 165at java. lang. reflect. Method. invoke(Method. java:569) ~[?:?] {} 166at net. minecraftforge. fml. loading. targets. CommonLaunchHandler. runTarget(CommonLaunchHandler. java:111) ~[fmlloader-1. 20. 1-47. 3. 22. jar%23103!/:?] {} 167at net. minecraftforge. fml. loading. targets. CommonLaunchHandler. serverService(CommonLaunchHandler. java:103) ~[fmlloader-1. 20. 1-47. 3. 22. jar%23103!/:?] {} 168at net. minecraftforge. fml. loading. targets. CommonServerLaunchHandler. lambda$makeService$0(CommonServerLaunchHandler. java:27) ~[fmlloader-1. 20. 1-47. 3. 22. jar%23103!/:?] {} 169at cpw. mods. modlauncher. LaunchServiceHandlerDecorator. launch(LaunchServiceHandlerDecorator. java:30) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 170at cpw. mods. modlauncher. LaunchServiceHandler. launch(LaunchServiceHandler. java:53) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 171at cpw. mods. modlauncher. LaunchServiceHandler. launch(LaunchServiceHandler. java:71) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 172at cpw. mods. modlauncher. Launcher. run(Launcher. java:108) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 173at cpw. mods. modlauncher. Launcher. main(Launcher. java:78) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 174at cpw. mods. modlauncher. BootstrapLaunchConsumer. accept(BootstrapLaunchConsumer. java:26) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 175at cpw. mods. modlauncher. BootstrapLaunchConsumer. accept(BootstrapLaunchConsumer. java:23) ~[modlauncher-10. 0. 9. jar%2389!/:?] {} 176at io. izzel. arclight. boot. application. ApplicationBootstrap. accept(ApplicationBootstrap. java:46) ~[arclight. jar:arclight-1. 20. 1-1. 0. 6-SNAPSHOT-c1e6367] {} 177at jdk. internal. reflect. NativeMethodAccessorImpl. invoke0(Native Method) ~[?:?] {} 178at jdk. internal. reflect. NativeMethodAccessorImpl. invoke(NativeMethodAccessorImpl. java:77) ~[?:?] {} 179at jdk. internal. reflect. DelegatingMethodAccessorImpl. invoke(DelegatingMethodAccessorImpl. java:43) ~[?:?] {} 180at java. lang. reflect. Method. invoke(Method. java:569) ~[?:?] {} 181at io. izzel. arclight. boot. application. BootstrapTransformer. onInvoke$BootstrapLauncher(BootstrapTransformer. java:26) ~[arclight. jar:arclight-1. 20. 1-1. 0. 6-SNAPSHOT-c1e6367] {} 182at cpw. mods. bootstraplauncher. BootstrapLauncher. main(BootstrapLauncher. java:141) ~[bootstraplauncher-1. 1. 2. jar:?] {} 183at jdk. internal. reflect. NativeMethodAccessorImpl. invoke0(Native Method) ~[?:?] {} 184at jdk. internal. reflect. NativeMethodAccessorImpl. invoke(NativeMethodAccessorImpl. java:77) ~[?:?] {} 185at jdk. internal. reflect. DelegatingMethodAccessorImpl. invoke(DelegatingMethodAccessorImpl. java:43) ~[?:?] {} 186at java. lang. reflect. Method. invoke(Method. java:569) ~[?:?] {} 187at io. izzel. arclight. boot. application. Main_Forge. main(Main_Forge. java:33) ~[arclight. jar%2383!/:arclight-1. 20. 1-1. 0. 6-SNAPSHOT-c1e6367] {} 188at io. izzel. arclight. server. Launcher. main(Launcher. java:18) ~[arclight. jar%2383!/:arclight-1. 20. 1-1. 0. 6-SNAPSHOT-c1e6367] {}
    • Welp, It doesn't crash but for some reason I broke pickaxes. They just wont work. The game behaves as if my hand was empty. Wtf is going on
    • Oh yeah, dammit. There's the duplicate mod. It works now
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.