Implement CustomRenderLayer registration helper
This commit is contained in:
@@ -1,9 +1,13 @@
|
|||||||
package me.hypherionmc.craterlib.platform.services;
|
package me.hypherionmc.craterlib.platform.services;
|
||||||
|
|
||||||
import me.hypherionmc.craterlib.common.item.BlockItemDyable;
|
import me.hypherionmc.craterlib.common.item.BlockItemDyable;
|
||||||
|
import me.hypherionmc.craterlib.systems.reg.RegistryObject;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
import net.minecraft.world.item.CreativeModeTab;
|
||||||
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -16,4 +20,9 @@ public interface LibClientHelper {
|
|||||||
|
|
||||||
public void registerItemProperty(BlockItemDyable item, String property);
|
public void registerItemProperty(BlockItemDyable item, String property);
|
||||||
|
|
||||||
|
public void registerCustomRenderTypes(
|
||||||
|
Collection<RegistryObject<Block>> blocks,
|
||||||
|
Collection<RegistryObject<Item>> items
|
||||||
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -1,16 +1,23 @@
|
|||||||
package me.hypherionmc.craterlib.client;
|
package me.hypherionmc.craterlib.client;
|
||||||
|
|
||||||
|
import me.hypherionmc.craterlib.api.rendering.CustomRenderType;
|
||||||
import me.hypherionmc.craterlib.common.item.BlockItemDyable;
|
import me.hypherionmc.craterlib.common.item.BlockItemDyable;
|
||||||
import me.hypherionmc.craterlib.platform.services.LibClientHelper;
|
import me.hypherionmc.craterlib.platform.services.LibClientHelper;
|
||||||
|
import me.hypherionmc.craterlib.systems.reg.RegistryObject;
|
||||||
import me.hypherionmc.craterlib.util.ColorPropertyFunction;
|
import me.hypherionmc.craterlib.util.ColorPropertyFunction;
|
||||||
import net.fabricmc.api.EnvType;
|
import net.fabricmc.api.EnvType;
|
||||||
|
import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap;
|
||||||
import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder;
|
import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder;
|
||||||
import net.fabricmc.fabric.api.object.builder.v1.client.model.FabricModelPredicateProviderRegistry;
|
import net.fabricmc.fabric.api.object.builder.v1.client.model.FabricModelPredicateProviderRegistry;
|
||||||
import net.fabricmc.loader.api.FabricLoader;
|
import net.fabricmc.loader.api.FabricLoader;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
import net.minecraft.world.item.CreativeModeTab;
|
||||||
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
import net.minecraft.world.level.material.Fluid;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -41,4 +48,23 @@ public class FabricClientHelper implements LibClientHelper {
|
|||||||
FabricModelPredicateProviderRegistry.register(item, new ResourceLocation(property), new ColorPropertyFunction(item));
|
FabricModelPredicateProviderRegistry.register(item, new ResourceLocation(property), new ColorPropertyFunction(item));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerCustomRenderTypes(Collection<RegistryObject<Block>> blocks, Collection<RegistryObject<Item>> items) {
|
||||||
|
blocks.forEach(blk -> {
|
||||||
|
if (blk.get() instanceof CustomRenderType type) {
|
||||||
|
BlockRenderLayerMap.INSTANCE.putBlock(blk.get(), type.getCustomRenderType());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
items.forEach(itm -> {
|
||||||
|
if (itm.get() instanceof BlockItemDyable dyable && dyable.getBlock() instanceof CustomRenderType customRenderType) {
|
||||||
|
BlockRenderLayerMap.INSTANCE.putItem(itm.get(), customRenderType.getCustomRenderType());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (itm.get() instanceof CustomRenderType customRenderType) {
|
||||||
|
BlockRenderLayerMap.INSTANCE.putItem(itm.get(), customRenderType.getCustomRenderType());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,14 +1,20 @@
|
|||||||
package me.hypherionmc.craterlib.client;
|
package me.hypherionmc.craterlib.client;
|
||||||
|
|
||||||
|
import me.hypherionmc.craterlib.api.rendering.CustomRenderType;
|
||||||
import me.hypherionmc.craterlib.common.item.BlockItemDyable;
|
import me.hypherionmc.craterlib.common.item.BlockItemDyable;
|
||||||
import me.hypherionmc.craterlib.platform.services.LibClientHelper;
|
import me.hypherionmc.craterlib.platform.services.LibClientHelper;
|
||||||
|
import me.hypherionmc.craterlib.systems.reg.RegistryObject;
|
||||||
import me.hypherionmc.craterlib.util.ColorPropertyFunction;
|
import me.hypherionmc.craterlib.util.ColorPropertyFunction;
|
||||||
|
import net.minecraft.client.renderer.ItemBlockRenderTypes;
|
||||||
import net.minecraft.client.renderer.item.ItemProperties;
|
import net.minecraft.client.renderer.item.ItemProperties;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
import net.minecraft.world.item.CreativeModeTab;
|
||||||
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
import net.minecraftforge.fml.loading.FMLEnvironment;
|
import net.minecraftforge.fml.loading.FMLEnvironment;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -42,4 +48,13 @@ public class ForgeClientHelper implements LibClientHelper {
|
|||||||
ItemProperties.register(item, new ResourceLocation(property), new ColorPropertyFunction(item));
|
ItemProperties.register(item, new ResourceLocation(property), new ColorPropertyFunction(item));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerCustomRenderTypes(Collection<RegistryObject<Block>> blocks, Collection<RegistryObject<Item>> items) {
|
||||||
|
blocks.forEach(blk -> {
|
||||||
|
if (blk.get() instanceof CustomRenderType type) {
|
||||||
|
ItemBlockRenderTypes.setRenderLayer(blk.get(), type.getCustomRenderType());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
# Project
|
# Project
|
||||||
version_major=1
|
version_major=1
|
||||||
version_minor=0
|
version_minor=0
|
||||||
version_patch=9d
|
version_patch=10d
|
||||||
group=me.hypherionmc.craterlib
|
group=me.hypherionmc.craterlib
|
||||||
|
|
||||||
# Common
|
# Common
|
||||||
|
Reference in New Issue
Block a user