Jump to content

Updating Block Texture [UNSOLVED] [1.7.10]


TheEpicTekkit

Recommended Posts

Hello everyone.

 

So, I have another problem, I am making a machine class for my mod, this class will have all the generic methods that all my machines will have, one of which, being registering the textures. Now, unlike the vanilla furnace, which has 2 separate blocks for on/off state, I am using metadata to do this. Now my problem is that the front texture doesn't update when the machine is on, everything else except this works. And I have a theory as to why; The registerBlockIcons method is only called when the block is created, now this isn't a problem for the vanilla furnace, as it replaces the off block with the on block, and when it does this, it is technically creating a new block, and so is re registering the textures. With my block, in my updateMachineState method (my equivalent to updateFurnaceBlockState) I am adding 1 to the metadata to set the machines state to on, and this is working fine, even with the rotations, I made it print out the metadata, and it does what I need it to. Now I have also made it print out the resource location (in the updateMachineState method) and it does update the texture name properly. Now all I need to do and cant figure out is how to re call the registerBlockIcons method, if I can do that, then it should work.

 

Any ideas on how to recall this method?

 

Thanks.

I ask complicated questions, and apparently like to write really long detailed posts. But I also help others when I can.

Link to comment
Share on other sites

Your best bet is to register all the textures at once, and then just switch between those. That way, you don't need to re-run the registerBlockIcons method.

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Link to comment
Share on other sites

Well, you can just do something like this:

public void registerBlockIcons(IIconRegister reg)
{
    this.icon0=reg.registerIcon("modid:icon0");
    this.icon1=reg.registerIcon("modid:icon1");
    this.icon2=reg.registerIcon("modid:icon2");
    //etc...
}

And then, where you return the icons, you need to return diffferent icons based on the metadata.

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Link to comment
Share on other sites

Okay, so I have updated my getIcon method to this:

 

        public IIcon getIcon(int side, int meta) {

	if (side == 0 || side == 1) {
		if (side == 0) return this.sideBottom;
		if (side == 1) return this.sideTop;
	} else {
		if (meta == 0 || meta == 1) {
			if (this.isActive) return side == 2 ? this.sideFrontOn : this.blockIcon;
			else return side == 2 ? this.sideFrontOff : this.blockIcon;
		} if (meta == 2 || meta == 3) {
			if (this.isActive) return side == 5 ? this.sideFrontOn : this.blockIcon;
			else return side == 5 ? this.sideFrontOff : this.blockIcon;
		} if (meta == 4 || meta == 5) {
			if (this.isActive) return side == 3 ? this.sideFrontOn : this.blockIcon;
			else return side == 3 ? this.sideFrontOff : this.blockIcon;
		} if (meta == 6 || meta == 7) {
			if (this.isActive) return side == 4 ? this.sideFrontOn : this.blockIcon;
			else return side == 4 ? this.sideFrontOff : this.blockIcon;
		}
	}
	return blockIcon;
}

 

just a note; I have 8 metadata values, 0, 2, 4, and 6 being the rotational values while off, and 1, 3, 5, and 7 being the rotational values while on. So to turn the machine on, one is added to the metadata.

 

Should this work? I am loading my game now to find out, but it takes a while to load as I have several other mods installed.

I ask complicated questions, and apparently like to write really long detailed posts. But I also help others when I can.

Link to comment
Share on other sites

Okay, so the texture does now update, but with weird consequences... And this is weird because I have no static fields or methods anywhere in my tile or block. So what is happening is well, when one machine in the world is off, and another is placed, it is fine, but if a second machine is placed with the first one on, it rotates to face the direction of the first block, and both of them update to the off texture. also when I mouse over the block in the world, the texture on the block in my hand changes to the one I am looking at. Now the way I am rotating my block is just reordering the textures on the faces depending on what angle the player is at relative to the block when placed. This is actually the only way (I know of) to do this, because I dont think that the block can actually physically rotate.

 

Any help on this?

I ask complicated questions, and apparently like to write really long detailed posts. But I also help others when I can.

Link to comment
Share on other sites

The thing is though, I really dont know where the problem is at all, so I will post my whole class (bare in mind, this class is designed to support all of my machines, it isnt just for this machine, but atm I only have this machine, I have no others)

 

Also, I have alot of custom methods. and it is a long class (about 300 lined)

 

 

Warning; Vary disorganized code... I will work on organizing this code once it is all working, until then, my priority is getting it working.

package generator.net.theepictekkit.generator.common.blocks.advanced.machines;

import generator.net.theepictekkit.generator.Generator;
import generator.net.theepictekkit.generator.Reference;
import generator.net.theepictekkit.generator.common.blocks.BlockHandler;
import generator.net.theepictekkit.generator.common.blocks.MachineType;
import generator.net.theepictekkit.generator.common.blocks.MachineType.Type;
import generator.net.theepictekkit.generator.common.tileentity.TileEntityFurnaceBasic;

import java.util.Random;

import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

public class BlockMachine extends BlockContainer {

//Note: Metadata values: 0, 2, 4, 6 = orientation off; 1, 3, 5, 7 = orientation on

public MachineType type = new MachineType();
public Block block = null;
public boolean keepInv;
public boolean isActive;
public boolean spawnParticle;
public String state; // Texture Name End
private String modid = Reference.MODID;
private float machineLightValue = 0.0F;
private Random rand = new Random();

//Side id		- Relative		-ForgeDirection
public IIcon sideBottom; 	//Side 0 		- Bottom		-DOWN
public IIcon sideTop;		//Side 1 		- Top			-UP
public IIcon sideFrontOn;	//Side 2 		- Front			-NORTH
public IIcon sideFrontOff;
//Side 3 		- Back			-SOUTH
public IIcon sideLeft;	 	//Side 4 		- Left			-WEST
public IIcon sideRight;	 	//Side 5		- Right			-EAST

public BlockMachine(Material mat, Type type) {
	super(mat);

	this.type.setMachineType(type);
	this.setHardness(3.0F);
	this.setLightLevel(machineLightValue);
}

@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int meta) {

	if (side == 0 || side == 1) {
		if (side == 0) return this.sideBottom;
		if (side == 1) return this.sideTop;
	} else {
		if (meta == 0 || meta == 1) {
			if (this.isActive) return side == 2 ? this.sideFrontOn : this.blockIcon;
			else return side == 2 ? this.sideFrontOff : this.blockIcon;
		} if (meta == 2 || meta == 3) {
			if (this.isActive) return side == 5 ? this.sideFrontOn : this.blockIcon;
			else return side == 5 ? this.sideFrontOff : this.blockIcon;
		} if (meta == 4 || meta == 5) {
			if (this.isActive) return side == 3 ? this.sideFrontOn : this.blockIcon;
			else return side == 3 ? this.sideFrontOff : this.blockIcon;
		} if (meta == 6 || meta == 7) {
			if (this.isActive) return side == 4 ? this.sideFrontOn : this.blockIcon;
			else return side == 4 ? this.sideFrontOff : this.blockIcon;
		}
	}
	return blockIcon;
}

@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister icon) {
	this.sideBottom = icon.registerIcon(modid + ":" + this.getUnlocalizedName().substring(5) + "_Bottom");
	this.sideTop = icon.registerIcon(modid + ":" + this.getUnlocalizedName().substring(5) + "_Top");
	this.sideFrontOn = icon.registerIcon(modid + ":" + this.getUnlocalizedName().substring(5) + "_Front_on");
	this.sideFrontOff = icon.registerIcon(modid + ":" + this.getUnlocalizedName().substring(5) + "_Front_off");
	this.sideLeft = icon.registerIcon(modid + ":" + this.getUnlocalizedName().substring(5) +  "_Left");
	this.sideRight = icon.registerIcon(modid + ":" + this.getUnlocalizedName().substring(5) + "_Right");
	this.blockIcon = icon.registerIcon(modid + ":" + this.getUnlocalizedName().substring(5) + "_Back");
}


public void setState(int meta) {

	this.block = getBlock();
	/*if ((meta == 1) || (meta == 3) || (meta == 5) || meta == 7) {
		this.state = "on";
		this.isActive = true;
	} else {
		this.state = "off";
		this.isActive = false;
	}*/
}

public void updateBlockState(boolean isActive, World world, int x, int y, int z) {
	System.out.println("Updating Block");
	int meta = world.getBlockMetadata(x, y, z);
	TileEntity tile = world.getTileEntity(x, y, z);
	keepInv = true;

	if (block != null) {
		if ((isActive)) {
			this.isActive = true;
			System.out.println(isActive);
			this.randomDisplayTick(world, x, y, z, rand);
			if (meta == 0) world.setBlock(x, y, z, block, 1, 2);
			if (meta == 2) world.setBlock(x, y, z, block, 3, 2);
			if (meta == 4) world.setBlock(x, y, z, block, 5, 2);
			if (meta == 6) world.setBlock(x, y, z, block, 7, 2);

		} else {
			this.isActive = false;
			if (meta == 1) world.setBlock(x, y, z, block, 0, 2);
			if (meta == 3) world.setBlock(x, y, z, block, 2, 2);
			if (meta == 5) world.setBlock(x, y, z, block, 4, 2);
			if (meta == 7) world.setBlock(x, y, z, block, 6, 2);
		}
	}

	keepInv = false;
	if (tile != null) {
		tile.validate();
		world.setTileEntity(x, y, z, tile);
	}
}

public void onBlockAdded(World world, int x, int y, int z) {
	super.onBlockAdded(world, x, y, z);
	this.setDefaultDirection(world, x, y, z);
}

private void setDefaultDirection(World world, int x, int y, int z) {

	if (!world.isRemote) {

		Block block = world.getBlock(x, y, z - 1);
		Block block1 = world.getBlock(x, y, z + 1);
		Block block2 = world.getBlock(x - 1, y, z);
		Block block3 = world.getBlock(x + 1, y, z);
		byte b0 = 3;

		if (block.func_149730_j() && !block1.func_149730_j()) {
			b0 = 4;
		} if (block1.func_149730_j() && !block.func_149730_j()) {
			b0 = 0;
		} if (block2.func_149730_j() && !block3.func_149730_j()) {
			b0 = 2;
		} if (block3.func_149730_j() && !block2.func_149730_j()) {
			b0 = 6;
		}
		world.setBlockMetadataWithNotify(x, y, z, b0, 2);
	}
}

public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entityLiving, ItemStack itemStack) {
	int l = MathHelper.floor_double((double)(entityLiving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;

	if (l == 0) {
		world.setBlockMetadataWithNotify(x, y, z, 0, 2);
	} if (l == 1) {
		world.setBlockMetadataWithNotify(x, y, z, 2, 2);
	} if (l == 2) {
		world.setBlockMetadataWithNotify(x, y, z, 4, 2);
	} if (l == 3) {
		world.setBlockMetadataWithNotify(x, y, z, 6, 2);
	}
}

public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {

	if (!world.isRemote) {
		if (world.getTileEntity(x, y, z) != null) {
			FMLNetworkHandler.openGui(player, Generator.INSTANCE, Generator.guiIdBasicFurnace, world, x, y, z);
			return true;
		}
	}
	return true;
}

/*public void breakBlock(World world, int x, int y, int z, Block block, int meta) {
	if (!this.keepInv) {

		TileEntity tile = getTile(world, x, y, z);

		if (tile != null) {
			for (int i1 = 0; i1 < tile.getSizeInventory(); ++i1) {
				ItemStack itemstack = tile.getStackInSlot(i1);

				if (itemstack != null)
				{
					float f = this.rand.nextFloat() * 0.8F + 0.1F;
					float f1 = this.rand.nextFloat() * 0.8F + 0.1F;
					float f2 = this.rand.nextFloat() * 0.8F + 0.1F;

					while (itemstack.stackSize > 0)
					{
						int j1 = this.rand.nextInt(21) + 10;

						if (j1 > itemstack.stackSize)
						{
							j1 = itemstack.stackSize;
						}

						itemstack.stackSize -= j1;
						EntityItem entityitem = new EntityItem(world, (double)((float)x + f), (double)((float)y + f1), (double)((float)z + f2), new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));

						if (itemstack.hasTagCompound())
						{
							entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy());
						}

						float f3 = 0.05F;
						entityitem.motionX = (double)((float)this.rand.nextGaussian() * f3);
						entityitem.motionY = (double)((float)this.rand.nextGaussian() * f3 + 0.2F);
						entityitem.motionZ = (double)((float)this.rand.nextGaussian() * f3);
						world.spawnEntityInWorld(entityitem);
					}
				}
			}

			world.func_147453_f(x, y, z, block);
		}
	}

	super.breakBlock(world, x, y, z, block, meta);
}
 */
@SideOnly(Side.CLIENT)
public void randomDisplayTick(World world, int x, int y, int z, Random rand) {
	if (this.spawnParticle) {

		int meta = world.getBlockMetadata(x, y, z);
		float f = (float)x + 0.5F;
		float f1 = (float)y + 0.0F + rand.nextFloat() * 6.0F / 16.0F;
		float f2 = (float)z + 0.5F;
		float f3 = 0.52F;
		float f4 = rand.nextFloat() * 0.6F - 0.3F;

		if (meta == 4) {
			world.spawnParticle("smoke", (double)(f - f3), (double)f1, (double)(f2 + f4), 0.0D, 0.0D, 0.0D);
			world.spawnParticle("flame", (double)(f - f3), (double)f1, (double)(f2 + f4), 0.0D, 0.0D, 0.0D);
		} else if (meta == 5) {
			world.spawnParticle("smoke", (double)(f + f3), (double)f1, (double)(f2 + f4), 0.0D, 0.0D, 0.0D);
			world.spawnParticle("flame", (double)(f + f3), (double)f1, (double)(f2 + f4), 0.0D, 0.0D, 0.0D);
		} else if (meta == 2) {
			world.spawnParticle("smoke", (double)(f + f4), (double)f1, (double)(f2 - f3), 0.0D, 0.0D, 0.0D);
			world.spawnParticle("flame", (double)(f + f4), (double)f1, (double)(f2 - f3), 0.0D, 0.0D, 0.0D);
		} else if (meta == 3) {
			world.spawnParticle("smoke", (double)(f + f4), (double)f1, (double)(f2 + f3), 0.0D, 0.0D, 0.0D);
			world.spawnParticle("flame", (double)(f + f4), (double)f1, (double)(f2 + f3), 0.0D, 0.0D, 0.0D);
		}
	}
}

public float setBrightness(boolean active, float value) {

	float level = 0.0F;

	if (active) {
		level = value;
	}
	return level;
}

public TileEntity getTile(World world, int x, int y, int z) {

	TileEntity tile = world.getTileEntity(x, y, z);

	if (tile != null) {
		switch (getMachine()) {

		case FURNACEBASIC : if (tile instanceof TileEntityFurnaceBasic) return (TileEntityFurnaceBasic)tile;
		default : break;
		}
	}
	return null;
}

public Block getBlock() {

	Block block = null;
	switch (getMachine()) {

	case FURNACEBASIC : return BlockHandler.machineBasicFurnace; 
	default : break;
	}
	return block;
}

public Type getMachine() {
	return type.getMachineType();
}

public ForgeDirection getOrientationFD(int meta) {

	ForgeDirection dir = null;

	if (meta == 0 || meta == 1) {
		dir = ForgeDirection.NORTH;
	} if (meta == 2 || meta == 3) {
		dir = ForgeDirection.EAST;
	} if (meta == 4 || meta == 5) {
		dir = ForgeDirection.SOUTH;
	} if (meta == 6 || meta == 7) {
		dir = ForgeDirection.WEST;
	}
	return dir;
}

@Override
public TileEntity createNewTileEntity(World world, int meta) {

	switch (getMachine()) {

	case FURNACEBASIC : return new TileEntityFurnaceBasic(3, "Basic Furnace", false, 64);
	default : return null;
	}
}
}

 

 

 

UPDATE: Sorry, but I forgot to include the tileentity(s). Warning; Also messy.

 

 

 

ThieEntityFurnaceBasic

package generator.net.theepictekkit.generator.common.tileentity;

import generator.net.theepictekkit.generator.common.blocks.advanced.machines.BlockMachine;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.block.Block;
import net.minecraft.block.BlockFurnace;
import net.minecraft.block.BlockWoodSlab;
import net.minecraft.block.material.Material;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemHoe;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemSword;
import net.minecraft.item.ItemTool;
import net.minecraft.item.crafting.FurnaceRecipes;

public class TileEntityFurnaceBasic extends TileEntityMachine {

public final int[] slotTop = new int[] {0};
public final int[] slotBottom = new int[] {2, 1};
public final int[] slotsSides = new int[] {1};

public int machineRunTime;
public int currentBurnTime;
public int machineProcessTime;
public int processTimeRequired = 100;

public TileEntityFurnaceBasic(int slots, String name, boolean dropSlot, int stackLimit) {
	this.slots = new ItemStack[slots];
	this.invName = name;
}

public void updateEntity() {
	System.out.println("Metadata at: x: " + xCoord + ", y: " + yCoord + ", z: " + zCoord + ": " + worldObj.getBlockMetadata(xCoord, yCoord, zCoord));

	Block block = worldObj.getBlock(xCoord, yCoord, zCoord);
	if (block instanceof BlockMachine) {
		System.out.println("Block instance of Machine");
		machine = (BlockMachine)block;
	}

	updateFurnace();
}

public void updateFurnace() {
	boolean isBurning = this.machineRunTime > 0;
	boolean bool = false;

	if (this.machineRunTime > 0) {
		isActive = true;
		worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
	} else {
		this.isActive = false;
	}

	machine.isActive = isActive;

	if (worldObj.getBlock(xCoord, yCoord, zCoord) != null) {
		if (machine != null && isActive) {
			machine.setState(worldObj.getBlockMetadata(xCoord, yCoord, zCoord));
			machine.updateBlockState(isActive, this.worldObj, this.xCoord, this.yCoord, this.zCoord);
		}
	}
	if (this.machineRunTime > 0) {
		--this.machineRunTime;
	}

	if (!this.worldObj.isRemote) {
		if (this.slots != null && slots.length > 0) {
			if (this.machineRunTime != 0 || this.slots[1] != null && this.slots[0] != null) {
				if (this.machineRunTime == 0 && this.canSmelt()) {
					this.currentBurnTime = this.machineRunTime = getBurnTime(this.slots[1]);

					if (this.machineRunTime > 0) {
						bool = true;

						if (this.slots[1] != null) {
							--this.slots[1].stackSize;

							if (this.slots[1].stackSize == 0) {
								this.slots[1] = slots[1].getItem().getContainerItem(slots[1]);
							}
						}
					}
				} if (this.isRunning() && this.canSmelt()) {
					++this.machineProcessTime;

					if (this.machineProcessTime == processTimeRequired) {
						this.machineProcessTime = 0;
						this.smeltItem();
						bool = true;
					}
				} else {
					this.machineProcessTime = 0;
				}
			}
		}

		if (isBurning != this.machineRunTime > 0) {
			bool = true;
		} else {
			bool = false;
		}
	}

	if (bool) {
		this.markDirty();
	}
}

public boolean isRunning() {
	return this.machineRunTime > 0;
}

@Override
public boolean isItemValidForSlot(int slot, ItemStack stack) {
	return slot == 2 ? false : (slot == 1 ? isItemFuel(stack) : true);
}

public boolean isItemFuel(ItemStack stack) {
	return getBurnTime(stack) > 0;
}

public void smeltItem() {
	if (this.canSmelt()) {
		ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[0]);

		if (this.slots[2] == null) {
			this.slots[2] = itemstack.copy();
		} else if (this.slots[2].getItem() == itemstack.getItem()) {
			this.slots[2].stackSize += itemstack.stackSize; // Forge BugFix: Results may have multiple items
		}
		--this.slots[0].stackSize;

		if (this.slots[0].stackSize <= 0) {
			this.slots[0] = null;
		}
	}
}

public boolean canSmelt() {
	if (this.slots[0] == null) {
		return false;
	} else {
		ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[0]);
		if (itemstack == null) return false;
		if (this.slots[2] == null) return true;
		if (!this.slots[2].isItemEqual(itemstack)) return false;
		int result = slots[2].stackSize + itemstack.stackSize;
		return result <= getInventoryStackLimit() && result <= this.slots[2].getMaxStackSize(); //Forge BugFix: Make it respect stack sizes properly.
	}
}

public int getBurnTime(ItemStack stack) {
	if (stack != null) {
		Item item = stack.getItem();

		if (item instanceof ItemBlock && Block.getBlockFromItem(item) != Blocks.air) {
			Block block = Block.getBlockFromItem(item);

			if (block.getMaterial() == Material.wood) {

				if (block instanceof BlockWoodSlab) return 300;
				else return 600;

			}
			if (block == Blocks.coal_block) return 32000;
			if ((item instanceof ItemTool) || (item instanceof ItemSword) || (item instanceof ItemHoe)) {
				if ((((ItemTool)item).getToolMaterialName().equals("WOOD")) || (((ItemSword)item).getToolMaterialName().equals("WOOD")) || (((ItemHoe)item).getToolMaterialName().equals("WOOD"))) return 400;
			}
			if (item == Items.stick) return 200;
			if (item == Items.coal) return 1600;
			if (item == Items.lava_bucket) return 60000;
			if (item == Item.getItemFromBlock(Blocks.sapling)) return 200;
			if (item == Items.blaze_rod) return 6200;
			if (item == Items.blaze_powder) return 3100;
			if (item == Items.nether_star) return 640000;
			return GameRegistry.getFuelValue(stack);
		}
	}

	return 0;
}

public int getProcessTimeScaled(int scale) {
	return this.machineProcessTime * scale / processTimeRequired;
}

public int getRunTimeRemainingScaled(int scale) {
	if (this.machineRunTime == 0) this.machineRunTime = this.processTimeRequired;

	return this.machineRunTime * scale / this.currentBurnTime;
}

@Override
public int[] getAccessibleSlotsFromSide(int side) {
	return side == 0 ? this.slotBottom : (side == 1 ? this.slotTop : this.slotsSides);
}

@Override
public boolean canInsertItem(int slot, ItemStack stack, int side) {
	return this.isItemValidForSlot(slot, stack);
}

@Override
public boolean canExtractItem(int slot, ItemStack item, int side) {
	return side != 0 || slot != 1 || item.getItem() == Items.bucket;
}

}

 

TileEntityMachine

package generator.net.theepictekkit.generator.common.tileentity;

import generator.api.energy.IEnergyConsumer;
import generator.net.theepictekkit.generator.common.blocks.advanced.machines.BlockMachine;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection;

public abstract class TileEntityMachine extends TileEntity implements ISidedInventory, IEnergyConsumer {

public int invSize;
String invName;
public boolean dropContentsOnClose;
public int stackLimit = 64;
public BlockMachine machine;

public boolean isActive;

public ItemStack[] slots = new ItemStack[0];

public TileEntityMachine(int slots, String name, boolean dropSlot, int stackLimit) {
	this.invSize = slots;
	this.invName = name;
	this.dropContentsOnClose = dropSlot;
	this.stackLimit = stackLimit;
}

public TileEntityMachine() {

}

public void updateEntity() {

}

@Override
public int getSizeInventory() {
	return slots.length;
}

@Override
public ItemStack getStackInSlot(int slot) {

	return slots[slot];
}

@Override
public ItemStack decrStackSize(int slot, int amount) {
	if (this.slots[slot] != null) {
		ItemStack itemstack;

		if (this.slots[slot].stackSize <= amount) {
			itemstack = this.slots[slot];
			this.slots[slot] = null;
			return itemstack;
		} else {
			itemstack = this.slots[slot].splitStack(amount);

			if (this.slots[slot].stackSize == 0) {
				this.slots[slot] = null;
			}

			return itemstack;
		}
	} else {
		return null;
	}
}

@Override
public ItemStack getStackInSlotOnClosing(int slot) {
	if (this.dropContentsOnClose) {
		if (this.slots[slot] != null) {
			ItemStack itemstack = this.slots[slot];
			this.slots[slot] = null;
			return itemstack;
		}
	} else {
		return null;
	}
	return null;
}

@Override
public void setInventorySlotContents(int slot, ItemStack item) {
	this.slots[slot] = item;

	if (item != null && item.stackSize > this.getInventoryStackLimit()) {
		item.stackSize = this.getInventoryStackLimit();
	}
}

@Override
public String getInventoryName() {
	return this.hasCustomInventoryName() ? this.invName : "container.null";
}

@Override
public boolean hasCustomInventoryName() {
	return this.invName != null && this.invName.length() > 0;
}

public void setInvName(String name) {
	this.invName = name;
}

@Override
public int getInventoryStackLimit() {
	return this.stackLimit;
}

@Override
public boolean isUseableByPlayer(EntityPlayer p_70300_1_) {
	return true;
}

@Override
public void openInventory() {

}

@Override
public void closeInventory() {

}

@Override
public abstract boolean isItemValidForSlot(int slot, ItemStack stack);



@Override
public abstract int[] getAccessibleSlotsFromSide(int side);

@Override
public abstract boolean canInsertItem(int slot, ItemStack stack, int side);

@Override
public abstract boolean canExtractItem(int slot, ItemStack item, int side);

@Override
public void setEnergyHandlerVariables() {

}

@Override
public float receiveEnergy(ForgeDirection dir, float maxReceive, boolean simulate) {
	return 0;
}

@Override
public float extractEnergy(ForgeDirection dir, float maxExtract,
		boolean simulate) {
	return 0;
}

@Override
public float getEnergyStored(ForgeDirection dir) {
	return 0;
}

@Override
public float getMaxEnergyStored(ForgeDirection dir) {
	return 0;
}

@Override
public boolean canConnect(ForgeDirection dir) {
	return false;
}

@Override
public int energyUsedToExist() {
	return 0;
}

@Override
public int energyUsedToRun() {
	return 0;
}

@Override
public void energyToExist(int energyNeeded, boolean doSomething) {

}

@Override
public void exceedMaxInput(int maxInput, boolean canRun) {

}
}
//Ignore all my energy methods, they are unused at the moment (also unfinished)

 

 

I ask complicated questions, and apparently like to write really long detailed posts. But I also help others when I can.

Link to comment
Share on other sites

At the beginning of your class, all of these declarations are shared between all blocks in the world. That means that all blocks of that type in the world, will emit the same light, are all active at the same time and they will all spawn particles in the world at the same time. You probably need to store those in the TileEntity.

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Link to comment
Share on other sites

But the vanilla furnace has 2 different blocks for those, so they wouldn't be shared.

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Link to comment
Share on other sites

So out of the variables I have in the block, which ones should I store in the tile? I know things like the modid I wouldn't, but what about things like the MachineType type variable? MachineType is an enum to store what machine this class belongs to (not needed yet, but will be useful when I have multiple machines sharing this class).

I ask complicated questions, and apparently like to write really long detailed posts. But I also help others when I can.

Link to comment
Share on other sites

Okay.

 

Update on my block; I Have moved the methods in the block class to the tileentity, as this class supports all my machines, I also have a tileentity that all my machines tileentitys extend, so I have moved them all to there, I have also moved the updateBlockState method to the tileentity too.

I ask complicated questions, and apparently like to write really long detailed posts. But I also help others when I can.

Link to comment
Share on other sites

I would also like to know how to make the ItemBlock in the players inventory render the front icon, at the moment, it just renders the blockIcon icon on all sides, and in the players hand, it renders whatever face the player is mousing over.

I ask complicated questions, and apparently like to write really long detailed posts. But I also help others when I can.

Link to comment
Share on other sites

<associatedBlock>getBlockTextureFromSide(1) {{ which calls getIcon(1, 0) }} returns that ItemBlock's texture; that is, unless you override the Icon or the getIconFromDamage(int dmg) method.

So, your block getIcon(side,meta) method should return the front icon when it sees side 1 and meta 0.

Link to comment
Share on other sites

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

    • my game crashes exit code 1. I have tried with and without mods and is still crashing, i have tried everything but no success.
    • Hi, i'm getting this error when trying to start a modded minecraft server with a personal modpack. Also getting a simmilar error when trying to create a singleplayer world. Can someone help me find which mod is causing this error? Forge: 47.2.0 Minecraft: 1.20.1   This is the crash report: Also have this link to the log, if you prefer it: https://mclo.gs/3fRVwOj
    • I was trying to play minecraft modded with my friend it worked yesterday until today we added new mods and now i cant load the world here is the crash log: ---- Minecraft Crash Report ---- // This doesn't make any sense! Time: 2024-04-28 15:34:36 Description: Exception in server tick loop java.lang.VerifyError: Bad local variable type Exception Details:   Location:     net/minecraft/server/level/ChunkMap.wrapOperation$zfm000$pehkui$convertToFullChunk$lambda$loadEntities$mixinextras$bridge$136(Lnet/minecraft/world/level/chunk/LevelChunk;Lcom/llamalad7/mixinextras/injector/wrapoperation/Operation;)V @3: aload_3   Reason:     Type top (current frame, locals[3]) is not assignable to reference type   Current Frame:     bci: @3     flags: { }     locals: { 'net/minecraft/server/level/ChunkMap', 'net/minecraft/world/level/chunk/LevelChunk', 'com/llamalad7/mixinextras/injector/wrapoperation/Operation' }     stack: { 'net/minecraft/server/level/ChunkMap', 'net/minecraft/world/level/chunk/LevelChunk', 'com/llamalad7/mixinextras/injector/wrapoperation/Operation' }   Bytecode:     0000000: 2a2b 2c2d b90b eb01 00c0 001f b70b edb1     0000010:                                             at net.minecraft.server.level.ServerChunkCache.<init>(ServerChunkCache.java:77) ~[client-1.20.1-20230612.114412-srg.jar%23313!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:pehkui.mixins.json:compat117plus.compat1201minus.ServerChunkManagerMixin,pl:mixin:A}     at net.minecraft.server.level.ServerLevel.<init>(ServerLevel.java:209) ~[client-1.20.1-20230612.114412-srg.jar%23313!/:?] {re:computing_frames,pl:accesstransformer:B,re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:betterendisland.mixins.json:ServerLevelMixin,pl:mixin:APP:citadel.mixins.json:ServerLevelMixin,pl:mixin:APP:zombieawareness.mixins.json:MixinPlaySound,pl:mixin:APP:zombieawareness.mixins.json:MixinLevelEvent,pl:mixin:APP:betterdeserttemples.mixins.json:ServerLevelMixin,pl:mixin:APP:ars_elemental.mixins.json:ServerLevelMixin,pl:mixin:APP:betterendisland.mixins.json:EndergeticExpansionMixins,pl:mixin:A}     at net.minecraft.server.MinecraftServer.m_129815_(MinecraftServer.java:337) ~[client-1.20.1-20230612.114412-srg.jar%23313!/:?] {re:mixin,pl:accesstransformer:B,xf:fml:xaerominimap:xaero_minecraftserver,re:classloading,pl:accesstransformer:B,xf:fml:xaerominimap:xaero_minecraftserver,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:mixins.essential.json:feature.sps.Mixin_IntegratedServerResourcePack,pl:mixin:APP:mixins.essential.json:server.MinecraftServerMixin_PvPGameRule,pl:mixin:APP:mixins.essential.json:server.Mixin_PublishServerStatusResponse,pl:mixin:A}     at net.minecraft.server.MinecraftServer.m_130006_(MinecraftServer.java:308) ~[client-1.20.1-20230612.114412-srg.jar%23313!/:?] {re:mixin,pl:accesstransformer:B,xf:fml:xaerominimap:xaero_minecraftserver,re:classloading,pl:accesstransformer:B,xf:fml:xaerominimap:xaero_minecraftserver,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:mixins.essential.json:feature.sps.Mixin_IntegratedServerResourcePack,pl:mixin:APP:mixins.essential.json:server.MinecraftServerMixin_PvPGameRule,pl:mixin:APP:mixins.essential.json:server.Mixin_PublishServerStatusResponse,pl:mixin:A}     at net.minecraft.client.server.IntegratedServer.m_7038_(IntegratedServer.java:83) ~[client-1.20.1-20230612.114412-srg.jar%23313!/:?] {re:mixin,xf:OptiFine:default,re:classloading,xf:OptiFine:default,pl:mixin:APP:mixins.essential.json:server.integrated.Mixin_FixDefaultOpPermissionLevel,pl:mixin:APP:mixins.essential.json:server.integrated.MixinIntegratedServer,pl:mixin:A}     at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:634) ~[client-1.20.1-20230612.114412-srg.jar%23313!/:?] {re:mixin,pl:accesstransformer:B,xf:fml:xaerominimap:xaero_minecraftserver,re:classloading,pl:accesstransformer:B,xf:fml:xaerominimap:xaero_minecraftserver,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:mixins.essential.json:feature.sps.Mixin_IntegratedServerResourcePack,pl:mixin:APP:mixins.essential.json:server.MinecraftServerMixin_PvPGameRule,pl:mixin:APP:mixins.essential.json:server.Mixin_PublishServerStatusResponse,pl:mixin:A}     at net.minecraft.server.MinecraftServer.m_206580_(MinecraftServer.java:251) ~[client-1.20.1-20230612.114412-srg.jar%23313!/:?] {re:mixin,pl:accesstransformer:B,xf:fml:xaerominimap:xaero_minecraftserver,re:classloading,pl:accesstransformer:B,xf:fml:xaerominimap:xaero_minecraftserver,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin,pl:mixin:APP:mixins.essential.json:feature.sps.Mixin_IntegratedServerResourcePack,pl:mixin:APP:mixins.essential.json:server.MinecraftServerMixin_PvPGameRule,pl:mixin:APP:mixins.essential.json:server.Mixin_PublishServerStatusResponse,pl:mixin:A}     at java.lang.Thread.run(Thread.java:833) ~[?:?] {re:mixin} A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- System Details -- Details:     Minecraft Version: 1.20.1     Minecraft Version ID: 1.20.1     Operating System: Windows 10 (amd64) version 10.0     Java Version: 17.0.8, Microsoft     Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Microsoft     Memory: 1154564648 bytes (1101 MiB) / 3254779904 bytes (3104 MiB) up to 17850957824 bytes (17024 MiB)     CPUs: 16     Processor Vendor: AuthenticAMD     Processor Name: AMD Ryzen 7 5700G with Radeon Graphics              Identifier: AuthenticAMD Family 25 Model 80 Stepping 0     Microarchitecture: Zen 3     Frequency (GHz): 3.79     Number of physical packages: 1     Number of physical CPUs: 8     Number of logical CPUs: 16     Graphics card #0 name: NVIDIA GeForce RTX 3060     Graphics card #0 vendor: NVIDIA (0x10de)     Graphics card #0 VRAM (MB): 4095.00     Graphics card #0 deviceId: 0x2504     Graphics card #0 versionInfo: DriverVersion=31.0.15.5222     Memory slot #0 capacity (MB): 16384.00     Memory slot #0 clockSpeed (GHz): 2.13     Memory slot #0 type: DDR4     Memory slot #1 capacity (MB): 16384.00     Memory slot #1 clockSpeed (GHz): 2.13     Memory slot #1 type: DDR4     Virtual memory max (MB): 46381.31     Virtual memory used (MB): 24323.54     Swap memory total (MB): 13824.00     Swap memory used (MB): 522.00     JVM Flags: 3 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx17024m -Xms256m     Server Running: true     Player Count: 0 / 8; []     Data Packs: vanilla, mod:dynamiclightsreforged (incompatible), mod:additionalentityattributes (incompatible), mod:geckolib, mod:jei, mod:graveyard (incompatible), mod:pehkui (incompatible), mod:soulbound (incompatible), mod:caelus (incompatible), mod:obscure_api (incompatible), mod:apoli (incompatible), mod:neat, mod:enlightened_end, mod:citadel (incompatible), mod:travelersbackpack, mod:zombieawareness (incompatible), mod:mixinextras (incompatible), mod:cave_dweller (incompatible), mod:depthcrawler, mod:iceandfire, mod:inventorypets (incompatible), mod:jeresources, mod:spelunkers_charm, mod:twilightforest, mod:ironchest, mod:sons_of_sins, mod:lucky (incompatible), mod:terrablender, mod:ambientsounds, mod:biomesoplenty (incompatible), mod:creativecore, mod:watching, mod:calio, mod:cataclysm (incompatible), mod:curios (incompatible), mod:ars_nouveau (incompatible), mod:origins (incompatible), mod:xaerominimap (incompatible), mod:man, mod:rats, mod:forge, mod:ars_elemental (incompatible), mod:gh, mod:ftbultimine (incompatible), mod:tombstone, mod:coroutil (incompatible), mod:architectury (incompatible), mod:ftblibrary (incompatible), mod:ftbteams (incompatible), mod:ftbchunks (incompatible), mod:ftbquests (incompatible), mod:voidscape (incompatible), mod:infiniverse (incompatible), mod:phantasm (incompatible), mod:aquamirae (incompatible), mod:essential (incompatible), mod:betterdungeons, mod:betterwitchhuts, mod:betteroceanmonuments, mod:epicfight (incompatible), mod:wom (incompatible), mod:yungsapi, mod:betterdeserttemples, mod:dixtas_armory (incompatible), mod:betterfortresses, mod:nyfsspiders (incompatible), mod:yungsbridges, mod:born_in_chaos_v1, mod:arphex, mod:yungsextras, mod:betterstrongholds, mod:yungsmenutweaks, mod:deeperdarker, mod:betterendisland, mod:deep_dark_regrowth, mod:fight_or_die, mod:bettermineshafts, mod:betterjungletemples     Enabled Feature Flags: minecraft:vanilla     World Generation: Stable     Type: Integrated Server (map_client.txt)     Is Modded: Definitely; Client brand changed to 'forge'; Server brand changed to 'forge'     Launched Version: forge-47.2.20     OptiFine Version: OptiFine_1.20.1_HD_U_I6     OptiFine Build: 20231221-120401     Render Distance Chunks: 6     Mipmaps: 4     Anisotropic Filtering: 1     Antialiasing: 0     Multitexture: false     Shaders: null     OpenGlVersion: 4.6.0 NVIDIA 552.22     OpenGlRenderer: NVIDIA GeForce RTX 3060/PCIe/SSE2     OpenGlVendor: NVIDIA Corporation     CpuCount: 16     ModLauncher: 10.0.9+10.0.9+main.dcd20f30     ModLauncher launch target: forgeclient     ModLauncher naming: srg     ModLauncher services:          mixin-0.8.5.jar mixin PLUGINSERVICE          eventbus-6.0.5.jar eventbus PLUGINSERVICE          fmlloader-1.20.1-47.2.20.jar slf4jfixer PLUGINSERVICE          fmlloader-1.20.1-47.2.20.jar object_holder_definalize PLUGINSERVICE          fmlloader-1.20.1-47.2.20.jar runtime_enum_extender PLUGINSERVICE          fmlloader-1.20.1-47.2.20.jar capability_token_subclass PLUGINSERVICE          accesstransformers-8.0.4.jar accesstransformer PLUGINSERVICE          fmlloader-1.20.1-47.2.20.jar runtimedistcleaner PLUGINSERVICE          modlauncher-10.0.9.jar mixin TRANSFORMATIONSERVICE          modlauncher-10.0.9.jar OptiFine TRANSFORMATIONSERVICE          modlauncher-10.0.9.jar essential-loader TRANSFORMATIONSERVICE          modlauncher-10.0.9.jar fml TRANSFORMATIONSERVICE      FML Language Providers:          [email protected]         lowcodefml@null         javafml@null     Mod List:          dynamiclightsreforged-1.20.1_v1.6.0.jar           |Rubidium Dynamic Lights       |dynamiclightsreforged         |1.20.1_v1.6.0       |DONE      |Manifest: NOSIGNATURE         YungsBetterDungeons-1.20-Forge-4.0.4.jar          |YUNG's Better Dungeons        |betterdungeons                |1.20-Forge-4.0.4    |DONE      |Manifest: NOSIGNATURE         YungsBetterWitchHuts-1.20-Forge-3.0.3.jar         |YUNG's Better Witch Huts      |betterwitchhuts               |1.20-Forge-3.0.3    |DONE      |Manifest: NOSIGNATURE         additionalentityattributes-forge-1.4.0.5+1.20.1.ja|Additional Entity Attributes  |additionalentityattributes    |1.4.0.5+1.20.1      |DONE      |Manifest: NOSIGNATURE         geckolib-forge-1.20.1-4.4.4.jar                   |GeckoLib 4                    |geckolib                      |4.4.4               |DONE      |Manifest: NOSIGNATURE         jei-1.20.1-forge-15.3.0.4.jar                     |Just Enough Items             |jei                           |15.3.0.4            |DONE      |Manifest: NOSIGNATURE         The_Graveyard_3.1_(FORGE)_for_1.20.1.jar          |The Graveyard                 |graveyard                     |3.1                 |DONE      |Manifest: NOSIGNATURE         Pehkui-3.8.0+1.20.1-forge.jar                     |Pehkui                        |pehkui                        |3.8.0+1.20.1-forge  |DONE      |Manifest: NOSIGNATURE         YungsBetterOceanMonuments-1.20-Forge-3.0.4.jar    |YUNG's Better Ocean Monuments |betteroceanmonuments          |1.20-Forge-3.0.4    |DONE      |Manifest: NOSIGNATURE         Soulbound-Forge-0.8+1.20.1.jar                    |Soulbound                     |soulbound                     |0.8                 |DONE      |Manifest: NOSIGNATURE         caelus-forge-3.2.0+1.20.1.jar                     |Caelus API                    |caelus                        |3.2.0+1.20.1        |DONE      |Manifest: NOSIGNATURE         obscure_api-15.jar                                |Obscure API                   |obscure_api                   |15                  |DONE      |Manifest: NOSIGNATURE         apoli-forge-1.20.1-2.9.0.6.jar                    |Apoli                         |apoli                         |1.20.1-2.9.0.6      |DONE      |Manifest: NOSIGNATURE         Neat-1.20-35-FORGE.jar                            |Neat                          |neat                          |1.20-35-FORGE       |DONE      |Manifest: NOSIGNATURE         enlightend-5.0.14-1.20.1.jar                      |Enlightend                    |enlightened_end               |5.0.14              |DONE      |Manifest: NOSIGNATURE         EpicFight-20.7.4.jar                              |Epic Fight                    |epicfight                     |20.7.4              |DONE      |Manifest: NOSIGNATURE         WeaponsOfMiracles-20.1.7.40.jar                   |Weapons of Minecraft          |wom                           |20.1.7.40           |DONE      |Manifest: NOSIGNATURE         citadel-2.5.4-1.20.1.jar                          |Citadel                       |citadel                       |2.5.4               |DONE      |Manifest: NOSIGNATURE         TravelersBackpack-1.20.1-9.1.12.jar               |Traveler's Backpack           |travelersbackpack             |9.1.12              |DONE      |Manifest: NOSIGNATURE         zombieawareness-1.20.1-1.13.1.jar                 |Zombie Awareness              |zombieawareness               |1.20.1-1.13.1       |DONE      |Manifest: NOSIGNATURE         YungsApi-1.20-Forge-4.0.4.jar                     |YUNG's API                    |yungsapi                      |1.20-Forge-4.0.4    |DONE      |Manifest: NOSIGNATURE         mixinextras-forge-0.2.0-beta.8.jar                |MixinExtras                   |mixinextras                   |0.2.0-beta.8        |DONE      |Manifest: NOSIGNATURE         YungsBetterDesertTemples-1.20-Forge-3.0.3.jar     |YUNG's Better Desert Temples  |betterdeserttemples           |1.20-Forge-3.0.3    |DONE      |Manifest: NOSIGNATURE         cave_dweller-1.20.1-1.6.4.jar                     |cave_dweller                  |cave_dweller                  |1.6.4               |DONE      |Manifest: NOSIGNATURE         deep-1.05b.jar                                    |depthcrawler                  |depthcrawler                  |1.0.0               |DONE      |Manifest: NOSIGNATURE         iceandfire-2.1.13-1.20.1-beta-4.jar               |Ice and Fire                  |iceandfire                    |2.1.13-1.20.1-beta-4|DONE      |Manifest: NOSIGNATURE         dixtas_armory-1.1.7-1.20.1-beta.jar               |dixta's Armory                |dixtas_armory                 |1.1.4-1.20.1-beta   |DONE      |Manifest: NOSIGNATURE         inventorypets-1.20.1-2.1.1.jar                    |Inventory Pets                |inventorypets                 |2.1.1               |DONE      |Manifest: NOSIGNATURE         JustEnoughResources-1.20.1-1.4.0.247.jar          |Just Enough Resources         |jeresources                   |1.4.0.247           |DONE      |Manifest: NOSIGNATURE         YungsBetterNetherFortresses-1.20-Forge-2.0.6.jar  |YUNG's Better Nether Fortresse|betterfortresses              |1.20-Forge-2.0.6    |DONE      |Manifest: NOSIGNATURE         SpelunkersCharm-3.5.9-1.20.1.jar                  |Spelunker's Charm             |spelunkers_charm              |3.5.9               |DONE      |Manifest: NOSIGNATURE         twilightforest-1.20.1-4.3.2145-universal.jar      |The Twilight Forest           |twilightforest                |4.3.2145            |DONE      |Manifest: NOSIGNATURE         ironchest-1.20.1-14.4.4.jar                       |Iron Chests                   |ironchest                     |1.20.1-14.4.4       |DONE      |Manifest: NOSIGNATURE         nyfsspiders-forge-1.20.1-2.1.1.jar                |Nyf's Spiders                 |nyfsspiders                   |2.1.1               |DONE      |Manifest: NOSIGNATURE         client-1.20.1-20230612.114412-srg.jar             |Minecraft                     |minecraft                     |1.20.1              |DONE      |Manifest: a1:d4:5e:04:4f:d3:d6:e0:7b:37:97:cf:77:b0:de:ad:4a:47:ce:8c:96:49:5f:0a:cf:8c:ae:b2:6d:4b:8a:3f         sons-of-sins-1.20.1-2.1.6.jar                     |Sons of Sins                  |sons_of_sins                  |2.1.6               |DONE      |Manifest: NOSIGNATURE         lucky-block-forge-1.20.1-13.0.jar                 |Lucky Block                   |lucky                         |1.20.1-13.0         |DONE      |Manifest: NOSIGNATURE         TerraBlender-forge-1.20.1-3.0.1.4.jar             |TerraBlender                  |terrablender                  |3.0.1.4             |DONE      |Manifest: NOSIGNATURE         AmbientSounds_FORGE_v5.3.9_mc1.20.1.jar           |AmbientSounds                 |ambientsounds                 |5.3.9               |DONE      |Manifest: NOSIGNATURE         BiomesOPlenty-1.20.1-18.0.0.592.jar               |Biomes O' Plenty              |biomesoplenty                 |18.0.0.592          |DONE      |Manifest: NOSIGNATURE         CreativeCore_FORGE_v2.11.27_mc1.20.1.jar          |CreativeCore                  |creativecore                  |2.11.27             |DONE      |Manifest: NOSIGNATURE         From-The-Fog-1.20-v1.9.2-Forge-Fabric.jar         |From The Fog                  |watching                      |1.9.2               |DONE      |Manifest: NOSIGNATURE         YungsBridges-1.20-Forge-4.0.3.jar                 |YUNG's Bridges                |yungsbridges                  |1.20-Forge-4.0.3    |DONE      |Manifest: NOSIGNATURE         born_in_chaos_[Forge]1.20.1_1.2.jar               |Born in Chaos                 |born_in_chaos_v1              |1.0.0               |DONE      |Manifest: NOSIGNATURE         calio-forge-1.20.1-1.11.0.3.jar                   |Calio                         |calio                         |1.20.1-1.11.0.3     |DONE      |Manifest: NOSIGNATURE         L_Enders_Cataclysm-1.90 -1.20.1.jar               |Cataclysm Mod                 |cataclysm                     |1.0                 |DONE      |Manifest: NOSIGNATURE         curios-forge-5.9.0+1.20.1.jar                     |Curios API                    |curios                        |5.9.0+1.20.1        |DONE      |Manifest: NOSIGNATURE         ars_nouveau-1.20.1-4.10.0-all.jar                 |Ars Nouveau                   |ars_nouveau                   |4.10.0              |DONE      |Manifest: NOSIGNATURE         origins-forge-1.20.1-1.10.0.7-all.jar             |Origins                       |origins                       |1.20.1-1.10.0.7     |DONE      |Manifest: NOSIGNATURE         Xaeros_Minimap_24.1.1_Forge_1.20.jar              |Xaero's Minimap               |xaerominimap                  |24.1.1              |DONE      |Manifest: NOSIGNATURE         The-Man-From-The-Fog-1.2.4a-1.20.1.jar            |The Man From The Fog          |man                           |1.2.4               |DONE      |Manifest: NOSIGNATURE         Rats-1.20.1-8.1.2.jar                             |Rats                          |rats                          |1.20.1-8.1.2        |DONE      |Manifest: NOSIGNATURE         forge-1.20.1-47.2.20-universal.jar                |Forge                         |forge                         |47.2.20             |DONE      |Manifest: 84:ce:76:e8:45:35:e4:0e:63:86:df:47:59:80:0f:67:6c:c1:5f:6e:5f:4d:b3:54:47:1a:9f:7f:ed:5e:f2:90         ArPhEx_1.8.12_1.20.1.jar                          |Arthropod Phobia Expansions   |arphex                        |1.8.12              |DONE      |Manifest: NOSIGNATURE         ars_elemental-1.20.1-0.6.5.jar                    |Ars Elemental                 |ars_elemental                 |1.20.1-0.6.5        |DONE      |Manifest: NOSIGNATURE         YungsExtras-1.20-Forge-4.0.3.jar                  |YUNG's Extras                 |yungsextras                   |1.20-Forge-4.0.3    |DONE      |Manifest: NOSIGNATURE         Gods-and-Heroes-1.6.1.jar                         |Gods and Heroes               |gh                            |1.6.1_Forge&Fabric  |DONE      |Manifest: NOSIGNATURE         ftb-ultimine-forge-2001.1.4.jar                   |FTB Ultimine                  |ftbultimine                   |2001.1.4            |DONE      |Manifest: NOSIGNATURE         YungsBetterStrongholds-1.20-Forge-4.0.3.jar       |YUNG's Better Strongholds     |betterstrongholds             |1.20-Forge-4.0.3    |DONE      |Manifest: NOSIGNATURE         tombstone-1.20.1-8.6.5.jar                        |Corail Tombstone              |tombstone                     |8.6.5               |DONE      |Manifest: NOSIGNATURE         YungsMenuTweaks-1.20.1-Forge-1.0.2.jar            |YUNG's Menu Tweaks            |yungsmenutweaks               |1.20.1-Forge-1.0.2  |DONE      |Manifest: NOSIGNATURE         coroutil-forge-1.20.1-1.3.7.jar                   |CoroUtil                      |coroutil                      |1.20.1-1.3.7        |DONE      |Manifest: NOSIGNATURE         deeperdarker-forge-1.20.1-1.2.1.jar               |Deeper and Darker             |deeperdarker                  |1.2.1               |DONE      |Manifest: NOSIGNATURE         architectury-9.2.14-forge.jar                     |Architectury                  |architectury                  |9.2.14              |DONE      |Manifest: NOSIGNATURE         ftb-library-forge-2001.1.5.jar                    |FTB Library                   |ftblibrary                    |2001.1.5            |DONE      |Manifest: NOSIGNATURE         ftb-teams-forge-2001.1.4.jar                      |FTB Teams                     |ftbteams                      |2001.1.4            |DONE      |Manifest: NOSIGNATURE         ftb-chunks-forge-2001.2.7.jar                     |FTB Chunks                    |ftbchunks                     |2001.2.7            |DONE      |Manifest: NOSIGNATURE         ftb-quests-forge-2001.3.5.jar                     |FTB Quests                    |ftbquests                     |2001.3.5            |DONE      |Manifest: NOSIGNATURE         YungsBetterEndIsland-1.20-Forge-2.0.6.jar         |YUNG's Better End Island      |betterendisland               |1.20-Forge-2.0.6    |DONE      |Manifest: NOSIGNATURE         Deep Dark Regrowth 1.2.5.1 - 1.20.1.jar           |Deep Dark: Regrowth           |deep_dark_regrowth            |1.2.5.1             |DONE      |Manifest: NOSIGNATURE         Voidscape-1.20.1-1.5.389.jar                      |Voidscape                     |voidscape                     |1.20.1-1.5.389      |DONE      |Manifest: NOSIGNATURE         infiniverse-1.20.1-1.0.0.5.jar                    |Infiniverse                   |infiniverse                   |1.0.0.5             |DONE      |Manifest: NOSIGNATURE         fight_or_die-1.20.1-1.1.4.jar                     |Fight or Die Mutations        |fight_or_die                  |1.20.1-1.1.4        |DONE      |Manifest: NOSIGNATURE         YungsBetterMineshafts-1.20-Forge-4.0.4.jar        |YUNG's Better Mineshafts      |bettermineshafts              |1.20-Forge-4.0.4    |DONE      |Manifest: NOSIGNATURE         phantasm-forge-0.1.jar                            |End's Phantasm                |phantasm                      |0.1                 |DONE      |Manifest: NOSIGNATURE         aquamirae-6.API15.jar                             |Aquamirae                     |aquamirae                     |6.API15             |DONE      |Manifest: NOSIGNATURE         Essential (forge_1.20.1).jar                      |Essential                     |essential                     |1.3.1.3+g88238d7752 |DONE      |Manifest: NOSIGNATURE         YungsBetterJungleTemples-1.20-Forge-2.0.4.jar     |YUNG's Better Jungle Temples  |betterjungletemples           |1.20-Forge-2.0.4    |DONE      |Manifest: NOSIGNATURE     Crash Report UUID: 093f2885-caf5-4a87-965d-511fd2c9d9ae     FML: 47.2     Forge: net.minecraftforge:47.2.20
    • I get a death message in chat every time I take damage example: [16:29:13] [Render thread/INFO]: [System] [CHAT] fall,Syndrick hit the ground too hard. I didn't die from that fall. I remember the exact moment it started happening, and what mods I had added. I have since removed said mods trying to fix it, and nothing has worked. I have also disabled a bunch of other mods that could be the cause, but that hasn't worked either. I've gone through the logs with chatgpt, and that hasn't helped either. This is my last resort, so if anyone can help me, that'd be insanely appreciated. Thank You.
    • The error is due to being unable to setup the server on the IP address or port number you specified in the server settings. (Failed to bind to port)  I usually get this myself when i have a VPN turned on, or if the server is already open in the background. If you do not have a VPN turned on then try changing the port number in the server.config file to use something other than the default 25565 port. Also check your firewall settings to make sure Minecraft is not blocked in any way Hope this helps!   
  • Topics

×
×
  • Create New...

Important Information

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