下面列出了怎么用net.minecraftforge.common.capabilities.CapabilityManager的API类实例代码及写法,或者点击链接到github查看源代码。
public static void init() {
registerCapabilityWithNoDefault(IEnergyContainer.class);
registerCapabilityWithNoDefault(IElectricItem.class);
registerCapabilityWithNoDefault(IWorkable.class);
registerCapabilityWithNoDefault(ICoverable.class);
registerCapabilityWithNoDefault(IControllable.class);
registerCapabilityWithNoDefault(IWrenchItem.class);
registerCapabilityWithNoDefault(IScrewdriverItem.class);
registerCapabilityWithNoDefault(ISoftHammerItem.class);
//internal capabilities
CapabilityManager.INSTANCE.register(GTWorldGenCapability.class, GTWorldGenCapability.STORAGE, GTWorldGenCapability.FACTORY);
}
public static void register() {
CapabilityManager.INSTANCE.register(PlayerCivilizationCapability.class, new PlayerCivilizationStorage(), new Callable<PlayerCivilizationCapability>() {
@Override
public PlayerCivilizationCapability call() throws Exception {
return null;
}
});
}
public void preInit() {
MinecraftForge.EVENT_BUS.register(this);
MinecraftForge.EVENT_BUS.register(WearableBackpacks.CONFIG);
MinecraftForge.EVENT_BUS.register(WearableBackpacks.CONTENT);
MinecraftForge.EVENT_BUS.register(new DyeWashingHandler());
// FIXME: BackpackCapability requires an entity for its constructor. WHAT WAS I THINKING?
CapabilityManager.INSTANCE.register(IBackpack.class,
new BackpackCapability.Storage(), BackpackCapability::new);
}
@Override
public void onPreInit(FMLPreInitializationEvent event) {
CapabilityManager.INSTANCE.register(Squashable.class, Squashable.Storage.INSTANCE, Squashable::new);
NETWORK.registerMessage(SquashEntityMessage.Handler.class, SquashEntityMessage.class, 0, Side.CLIENT);
}
public static void preInit() {
CapabilityManager.INSTANCE.register(IManaCapability.class, new ManaCapabilityStorage(), DefaultManaCapability::new);
CapabilityManager.INSTANCE.register(IMiscCapability.class, new MiscCapabilityStorage(), DefaultMiscCapability::new);
}
public static void init() {
CapabilityManager.INSTANCE.register(WizardryWorld.class, new WizardryWorldStorage(), StandardWizardryWorld::create);
}
public static void init()
{
CapabilityManager.INSTANCE.register(WizardryChunk.class, new WizardryChunkStorage(), StandardWizardryChunk::create);
}
public void preInit()
{
CapabilityManager.INSTANCE.register(ICyberwareUserData.class, CyberwareUserDataImpl.STORAGE, CyberwareUserDataImpl.class);
CyberwareContent.preInit();
CyberwarePacketHandler.preInit();
}
private void registerCapabilities() {
CapabilityManager.INSTANCE.register(ICapabilityAntiGravity.class, new StorageAntiGravity(),
ImplCapabilityAntiGravity::new);
}
private void registerCapabilities() {
CapabilityManager.INSTANCE.register(ICapabilityLastRelay.class, new StorageLastRelay(),
ImplCapabilityLastRelay::new);
}
private void registerCapabilities() {
CapabilityManager.INSTANCE.register(IValkyrienSkiesWorldData.class,
new StorageValkyrienSkiesWorldData(),
ImplValkyrienSkiesWorldData::new);
}
public static void init()
{
CapabilityManager.INSTANCE.register(ICapabilityHeat.class, CapabilityHeatManager.INSTANCE, CapabilityHeatManager.INSTANCE);
}
public static void register() {
CapabilityManager.INSTANCE.register(IDamageXp.class, INSTANCE, DamageXpHandler::new);
}
private void registerCapabilities() {
CapabilityManager.INSTANCE.register(NovaItem.class, CapabilityUtil.createStorage(
(capability, instance, side) -> instance.serializeNBT(),
(capability, instance, side, nbt) -> instance.deserializeNBT(nbt)), () -> null);
}
public static void register()
{
CapabilityManager.INSTANCE.register(IPortalCooldownCapability.class, new DefaultPortalCooldownStorage<>(), () -> new PortalCooldownCapability());
}