feat: fake block models

- Instead of registering a block for the jukebox top, we can now render models without a block being registered at all
- This opens up a lot of interesting new visuals in the near future :)
This commit is contained in:
Martin Prokoph
2025-01-26 14:29:21 +01:00
parent 9dd620515c
commit 1ae9580315
52 changed files with 78 additions and 108 deletions

View File

@@ -1,5 +1,6 @@
package eu.midnightdust.visualoverhaul.neoforge;
import eu.midnightdust.visualoverhaul.FakeBlocks;
import eu.midnightdust.visualoverhaul.IconicButtons;
import eu.midnightdust.visualoverhaul.block.model.FurnaceWoodenPlanksModel;
import eu.midnightdust.visualoverhaul.block.renderer.BrewingStandBlockEntityRenderer;
@@ -49,6 +50,7 @@ public class VisualOverhaulClientEvents {
@Override
public void reload(ResourceManager manager) {
IconicButtons.reload(manager);
FakeBlocks.reload(manager);
}
}
@SubscribeEvent

View File

@@ -1,7 +1,6 @@
package eu.midnightdust.visualoverhaul.neoforge;
import eu.midnightdust.visualoverhaul.VisualOverhaulClient;
import eu.midnightdust.visualoverhaul.block.JukeboxTop;
import eu.midnightdust.visualoverhaul.config.VOConfig;
import eu.midnightdust.visualoverhaul.util.VOColorUtil;
import net.minecraft.block.Block;
@@ -12,14 +11,12 @@ import net.minecraft.client.render.RenderLayer;
import net.minecraft.client.render.RenderLayers;
import net.minecraft.registry.Registries;
import net.minecraft.resource.ResourcePackProfile;
import net.neoforged.fml.ModLoadingContext;
import net.neoforged.neoforge.client.event.ClientTickEvent;
import net.neoforged.neoforge.common.NeoForge;
import net.neoforged.neoforge.registries.DeferredRegister;
import org.apache.commons.compress.utils.Lists;
import java.util.List;
import java.util.Objects;
import static eu.midnightdust.visualoverhaul.VisualOverhaulClient.*;
import static eu.midnightdust.visualoverhaul.VisualOverhaulCommon.*;
@@ -32,12 +29,6 @@ public class VisualOverhaulClientForge {
public static void initClient() {
VisualOverhaulClient.onInitializeClient();
// Block only registered on client, because it's just used for the renderer //
BLOCKS.register(Objects.requireNonNull(ModLoadingContext.get().getActiveContainer().getEventBus()));
BLOCKS.register("jukebox_top", () -> {
VisualOverhaulClient.JukeBoxTop = new JukeboxTop();
return VisualOverhaulClient.JukeBoxTop;
});
NeoForge.EVENT_BUS.addListener(VisualOverhaulClientForge::doClientTick);
RenderLayers.setRenderLayer(Blocks.JUKEBOX, RenderLayer.getCutout());