Implement CustomRenderLayer registration helper

This commit is contained in:
2022-08-06 21:12:44 +02:00
parent 5f32672dae
commit 34eca384e5
4 changed files with 51 additions and 1 deletions

View File

@@ -1,9 +1,13 @@
package me.hypherionmc.craterlib.platform.services;
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.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.Block;
import java.util.Collection;
import java.util.function.Supplier;
/**
@@ -16,4 +20,9 @@ public interface LibClientHelper {
public void registerItemProperty(BlockItemDyable item, String property);
public void registerCustomRenderTypes(
Collection<RegistryObject<Block>> blocks,
Collection<RegistryObject<Item>> items
);
}

View File

@@ -1,16 +1,23 @@
package me.hypherionmc.craterlib.client;
import me.hypherionmc.craterlib.api.rendering.CustomRenderType;
import me.hypherionmc.craterlib.common.item.BlockItemDyable;
import me.hypherionmc.craterlib.platform.services.LibClientHelper;
import me.hypherionmc.craterlib.systems.reg.RegistryObject;
import me.hypherionmc.craterlib.util.ColorPropertyFunction;
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.object.builder.v1.client.model.FabricModelPredicateProviderRegistry;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.Item;
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;
/**
@@ -41,4 +48,23 @@ public class FabricClientHelper implements LibClientHelper {
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());
}
});
}
}

View File

@@ -1,14 +1,20 @@
package me.hypherionmc.craterlib.client;
import me.hypherionmc.craterlib.api.rendering.CustomRenderType;
import me.hypherionmc.craterlib.common.item.BlockItemDyable;
import me.hypherionmc.craterlib.platform.services.LibClientHelper;
import me.hypherionmc.craterlib.systems.reg.RegistryObject;
import me.hypherionmc.craterlib.util.ColorPropertyFunction;
import net.minecraft.client.renderer.ItemBlockRenderTypes;
import net.minecraft.client.renderer.item.ItemProperties;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.Block;
import net.minecraftforge.fml.loading.FMLEnvironment;
import java.util.Collection;
import java.util.function.Supplier;
/**
@@ -42,4 +48,13 @@ public class ForgeClientHelper implements LibClientHelper {
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());
}
});
}
}

View File

@@ -1,7 +1,7 @@
# Project
version_major=1
version_minor=0
version_patch=9d
version_patch=10d
group=me.hypherionmc.craterlib
# Common