Move Chest and Sign block render layer registration
This commit is contained in:
parent
3391802f8d
commit
1c0c51a6b0
4 changed files with 35 additions and 32 deletions
|
@ -8,7 +8,7 @@ yarn_mappings=6
|
||||||
loader_version=0.11.3
|
loader_version=0.11.3
|
||||||
|
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version = 0.1.4
|
mod_version = 0.1.5
|
||||||
maven_group = ru.bclib
|
maven_group = ru.bclib
|
||||||
archives_base_name = bclib
|
archives_base_name = bclib
|
||||||
|
|
||||||
|
|
11
src/main/java/ru/bclib/client/BCLibClient.java
Normal file
11
src/main/java/ru/bclib/client/BCLibClient.java
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
package ru.bclib.client;
|
||||||
|
|
||||||
|
import net.fabricmc.api.ClientModInitializer;
|
||||||
|
import ru.bclib.registry.BaseBlockEntityRenders;
|
||||||
|
|
||||||
|
public class BCLibClient implements ClientModInitializer {
|
||||||
|
@Override
|
||||||
|
public void onInitializeClient() {
|
||||||
|
BaseBlockEntityRenders.register();
|
||||||
|
}
|
||||||
|
}
|
|
@ -9,6 +9,8 @@ import com.mojang.math.Vector3f;
|
||||||
|
|
||||||
import it.unimi.dsi.fastutil.floats.Float2FloatFunction;
|
import it.unimi.dsi.fastutil.floats.Float2FloatFunction;
|
||||||
import it.unimi.dsi.fastutil.ints.Int2IntFunction;
|
import it.unimi.dsi.fastutil.ints.Int2IntFunction;
|
||||||
|
import net.fabricmc.api.EnvType;
|
||||||
|
import net.fabricmc.api.Environment;
|
||||||
import net.minecraft.client.model.geom.ModelPart;
|
import net.minecraft.client.model.geom.ModelPart;
|
||||||
import net.minecraft.client.renderer.MultiBufferSource;
|
import net.minecraft.client.renderer.MultiBufferSource;
|
||||||
import net.minecraft.client.renderer.RenderType;
|
import net.minecraft.client.renderer.RenderType;
|
||||||
|
@ -34,6 +36,7 @@ import ru.bclib.blockentities.BaseChestBlockEntity;
|
||||||
import ru.bclib.blocks.BaseChestBlock;
|
import ru.bclib.blocks.BaseChestBlock;
|
||||||
import ru.bclib.registry.BaseRegistry;
|
import ru.bclib.registry.BaseRegistry;
|
||||||
|
|
||||||
|
@Environment(EnvType.CLIENT)
|
||||||
public class BaseChestBlockEntityRenderer extends BlockEntityRenderer<BaseChestBlockEntity> {
|
public class BaseChestBlockEntityRenderer extends BlockEntityRenderer<BaseChestBlockEntity> {
|
||||||
private static final HashMap<Block, RenderType[]> LAYERS = Maps.newHashMap();
|
private static final HashMap<Block, RenderType[]> LAYERS = Maps.newHashMap();
|
||||||
private static final RenderType[] defaultLayer;
|
private static final RenderType[] defaultLayer;
|
||||||
|
@ -154,27 +157,22 @@ public class BaseChestBlockEntityRenderer extends BlockEntityRenderer<BaseChestB
|
||||||
return provider.getBuffer(getChestTexture(chestType, layers));
|
return provider.getBuffer(getChestTexture(chestType, layers));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void registerRenderLayer(BaseChestBlock block) {
|
||||||
|
ResourceLocation blockId = Registry.BLOCK.getKey(block);
|
||||||
|
String modId = blockId.getNamespace();
|
||||||
|
String path = blockId.getPath();
|
||||||
|
LAYERS.put(block, new RenderType[] {
|
||||||
|
RenderType.entityCutout(new ResourceLocation(modId, "textures/entity/chest/" + path + ".png")),
|
||||||
|
RenderType.entityCutout(new ResourceLocation(modId, "textures/entity/chest/" + path + "_left.png")),
|
||||||
|
RenderType.entityCutout(new ResourceLocation(modId, "textures/entity/chest/" + path + "_right.png"))
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
static {
|
static {
|
||||||
defaultLayer = new RenderType[] {
|
defaultLayer = new RenderType[] {
|
||||||
RenderType.entityCutout(new ResourceLocation("textures/entity/chest/normal.png")),
|
RenderType.entityCutout(new ResourceLocation("textures/entity/chest/normal.png")),
|
||||||
RenderType.entityCutout(new ResourceLocation("textures/entity/chest/normal_left.png")),
|
RenderType.entityCutout(new ResourceLocation("textures/entity/chest/normal_left.png")),
|
||||||
RenderType.entityCutout(new ResourceLocation("textures/entity/chest/normal_right.png"))
|
RenderType.entityCutout(new ResourceLocation("textures/entity/chest/normal_right.png"))
|
||||||
};
|
};
|
||||||
|
|
||||||
BaseRegistry.getModBlocks().forEach((item) -> {
|
|
||||||
if (item instanceof BlockItem) {
|
|
||||||
Block block = ((BlockItem) item).getBlock();
|
|
||||||
if (block instanceof BaseChestBlock) {
|
|
||||||
ResourceLocation blockId = Registry.BLOCK.getKey(block);
|
|
||||||
String modId = blockId.getNamespace();
|
|
||||||
String path = blockId.getPath();
|
|
||||||
LAYERS.put(block, new RenderType[] {
|
|
||||||
RenderType.entityCutout(new ResourceLocation(modId, "textures/entity/chest/" + path + ".png")),
|
|
||||||
RenderType.entityCutout(new ResourceLocation(modId, "textures/entity/chest/" + path + "_left.png")),
|
|
||||||
RenderType.entityCutout(new ResourceLocation(modId, "textures/entity/chest/" + path + "_right.png"))
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,6 +28,7 @@ import net.minecraft.world.level.block.StandingSignBlock;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
import net.minecraft.world.level.block.state.properties.WoodType;
|
import net.minecraft.world.level.block.state.properties.WoodType;
|
||||||
import ru.bclib.blockentities.BaseSignBlockEntity;
|
import ru.bclib.blockentities.BaseSignBlockEntity;
|
||||||
|
import ru.bclib.blocks.BaseChestBlock;
|
||||||
import ru.bclib.blocks.BaseSignBlock;
|
import ru.bclib.blocks.BaseSignBlock;
|
||||||
import ru.bclib.registry.BaseRegistry;
|
import ru.bclib.registry.BaseRegistry;
|
||||||
|
|
||||||
|
@ -102,21 +103,14 @@ public class BaseSignBlockEntityRenderer extends BlockEntityRenderer<BaseSignBlo
|
||||||
return provider.getBuffer(LAYERS.getOrDefault(block, defaultLayer));
|
return provider.getBuffer(LAYERS.getOrDefault(block, defaultLayer));
|
||||||
}
|
}
|
||||||
|
|
||||||
static {
|
public static void registerRenderLayer(BaseSignBlock block) {
|
||||||
defaultLayer = RenderType.entitySolid(new ResourceLocation("textures/entity/sign/oak.png"));
|
ResourceLocation blockId = Registry.BLOCK.getKey(block);
|
||||||
|
RenderType layer = RenderType.entitySolid(new ResourceLocation(blockId.getNamespace(),
|
||||||
BaseRegistry.getModBlocks().forEach((item) -> {
|
"textures/entity/sign/" + blockId.getPath() + ".png"));
|
||||||
if (item instanceof BlockItem) {
|
LAYERS.put(block, layer);
|
||||||
Block block = ((BlockItem) item).getBlock();
|
|
||||||
if (block instanceof BaseSignBlock) {
|
|
||||||
ResourceLocation blockId = Registry.BLOCK.getKey(block);
|
|
||||||
RenderType layer = RenderType.entitySolid(new ResourceLocation(blockId.getNamespace(),
|
|
||||||
"textures/entity/sign/" + blockId.getPath() + ".png"));
|
|
||||||
LAYERS.put(block, layer);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static {
|
||||||
|
defaultLayer = RenderType.entitySolid(new ResourceLocation("textures/entity/sign/oak.png"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue