Jump to content

Recommended Posts

Posted (edited)

I blindly stumbled my way through making a capability and I have no idea if it did it right. I'm putting a couple questions into one post.

  1. How do I make my capability save a different value for each itemstack. The code I have right now seems like it would make every Item (of its type) the same thing. (I think, doesn't minecraft only have one instance of every item but its used in different itemstacks?)
  2. How would I add a tooltip that will change (specifically when I craft it with a specific Item)?

 

Current capability code:

Spoiler

@CapabilityInject(value = Sharpenedness.class)
	public static final Capability<Sharpenedness> SHARPENED = null;
	
	private Sharpenedness instance = SHARPENED.getDefaultInstance();
	
	@Override
	public ICapabilityProvider initCapabilities(ItemStack stack, NBTTagCompound nbt) {
		return new ICapabilitySerializable<NBTBase>() {

			@Override
			public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
				return (capability == SHARPENED);
			}

			@Override
			public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
				return capability == SHARPENED ? SHARPENED.<T> cast(instance) : null;
			}

			@Override
			public void deserializeNBT(NBTBase nbt) {
				SHARPENED.getStorage().readNBT(SHARPENED, instance, null, nbt);
				
			}

			@Override
			public NBTBase serializeNBT() {
				return SHARPENED.getStorage().writeNBT(SHARPENED, instance, null);
			}
		};
	}

 

Spoiler

public class Sharpenedness {
	
	public int progress;
	
	public Sharpenedness() {
		progress = 0;
	}
	
	public Sharpenedness(int number) {
		progress = number;
	}
	
	public int getProgress() {
		return progress;
	}
	
	public void setProgress(int number) {
		progress = number;
	}
	
	public void addProgress(int amount) {
		progress += amount;
	}
	
}

 

Spoiler

 


public class SharpenednessFactory implements Callable<Sharpenedness>{

	@Override
	public Sharpenedness call() throws Exception {
		return new Sharpenedness();
	}

}
Spoiler

public class SharpenednessStorage implements IStorage<Sharpenedness>{

	@Override
	public NBTBase writeNBT(Capability<Sharpenedness> capability, Sharpenedness instance, EnumFacing side) {
		return new NBTTagLong(instance.getProgress());
	}

	@Override
	public void readNBT(Capability<Sharpenedness> capability, Sharpenedness instance, EnumFacing side, NBTBase nbt) {
		
	}

}

 

Spoiler

@EventHandler
	public static void init(FMLInitializationEvent event) {
		ModRecipes.init();
		CapabilityManager.INSTANCE.register(Sharpenedness.class, new SharpenednessStorage(), new SharpenednessFactory());
	}

 

 

Here's a little background

Edited by TheGoldenProof

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

    • seguridad seguridad
    • I am creating a server with mods but when i try tostart it it say in the logs:   [29Jan2025 20:36:50.715] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /server/libraries/net/minecraftforge/fmlcore/1.20.1-47.3.27/fmlcore-1.20.1-47.3.27.jar is missing mods.toml file 159[29Jan2025 20:36:50.717] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Considering mod file candidate /server/libraries/net/minecraftforge/javafmllanguage/1.20.1-47.3.27/javafmllanguage-1.20.1-47.3.27.jar 160[29Jan2025 20:36:50.717] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /server/libraries/net/minecraftforge/javafmllanguage/1.20.1-47.3.27/javafmllanguage-1.20.1-47.3.27.jar is missing mods.toml file 161[29Jan2025 20:36:50.718] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Considering mod file candidate /server/libraries/net/minecraftforge/lowcodelanguage/1.20.1-47.3.27/lowcodelanguage-1.20.1-47.3.27.jar 162[29Jan2025 20:36:50.718] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /server/libraries/net/minecraftforge/lowcodelanguage/1.20.1-47.3.27/lowcodelanguage-1.20.1-47.3.27.jar is missing mods.toml file 163[29Jan2025 20:36:50.719] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Considering mod file candidate /server/libraries/net/minecraftforge/mclanguage/1.20.1-47.3.27/mclanguage-1.20.1-47.3.27.jar 164[29Jan2025 20:36:50.719] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /server/libraries/net/minecraftforge/mclanguage/1.20.1-47.3.27/mclanguage-1.20.1-47.3.27.jar is missing mods.toml file
    • How do you configure the entity reach of a custom weapon? Asking for 1.21 Minecraft parchment
    • This topic is over a year old. If you are having an issue, please read the FAQ for the proper way to post logs, and create your own thread.
    • hello i have been trying to put this specific pack for a while now but ive been hit with a new error everytime. no matter if its a previous version or if i change the pack format it will just not work please help latest log:https://mclo.gs/b6Qra5d <----- this is with pack version 1.20 no changes done to it debug log: https://mclo.gs/jczkfRK
  • Topics

  • Who's Online (See full list)

    • There are no registered users currently online
×
×
  • Create New...

Important Information

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