mirror of
https://github.com/wisplite/crystalline-sky.git
synced 2026-10-30 13:32:18 -05:00
Multiloader IV
client setup ported
This commit is contained in:
+14
@@ -0,0 +1,14 @@
|
||||
package io.github.slimeistdev.crystalline_sky.multiloader.neoforge;
|
||||
|
||||
import io.github.slimeistdev.crystalline_sky.annotation.multiloader.ImplClass;
|
||||
import net.minecraft.client.renderer.item.ClampedItemPropertyFunction;
|
||||
import net.minecraft.client.renderer.item.ItemProperties;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.item.Item;
|
||||
|
||||
@ImplClass
|
||||
public class ClientPlatformHelperImpl {
|
||||
public static void registerItemProperty(Item item, ResourceLocation name, ClampedItemPropertyFunction property) {
|
||||
ItemProperties.register(item, name, property);
|
||||
}
|
||||
}
|
||||
+27
@@ -1,9 +1,36 @@
|
||||
package io.github.slimeistdev.crystalline_sky.neoforge;
|
||||
|
||||
import io.github.slimeistdev.crystalline_sky.CrystallineSky;
|
||||
import io.github.slimeistdev.crystalline_sky.CrystallineSkyClient;
|
||||
import io.github.slimeistdev.crystalline_sky.registry.client.CrystallineRenderTypes;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.neoforged.api.distmarker.Dist;
|
||||
import net.neoforged.bus.api.SubscribeEvent;
|
||||
import net.neoforged.fml.common.EventBusSubscriber;
|
||||
import net.neoforged.neoforge.client.event.ClientTickEvent;
|
||||
import net.neoforged.neoforge.client.event.RegisterKeyMappingsEvent;
|
||||
import net.neoforged.neoforge.client.event.RegisterNamedRenderTypesEvent;
|
||||
|
||||
@EventBusSubscriber(value = Dist.CLIENT, modid = CrystallineSky.ID)
|
||||
public class CrystallineSkyClientImpl {
|
||||
public static void init() {
|
||||
CrystallineSkyClient.init();
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void registerNamedRenderTypes(RegisterNamedRenderTypesEvent event) {
|
||||
// NOTE: entity render type is just a placeholder, sky rendering isn't supported for entities
|
||||
event.register(CrystallineSky.id("sky"), CrystallineRenderTypes.SKY, RenderType.entitySolid(CrystallineSky.id("sky")));
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void registerBindings(RegisterKeyMappingsEvent event) {
|
||||
CrystallineSkyClient.registerKeybindings(event::register);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void onEndTick(ClientTickEvent.Post event) {
|
||||
CrystallineSkyClient.onEndTick(Minecraft.getInstance());
|
||||
}
|
||||
}
|
||||
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
package io.github.slimeistdev.crystalline_sky.neoforge.mixin.client;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import io.github.slimeistdev.crystalline_sky.mixin_ducks.client.RenderType_Duck;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import org.spongepowered.asm.mixin.Final;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Mutable;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
|
||||
@Mixin(RenderType.class)
|
||||
public class RenderTypeMixin implements RenderType_Duck {
|
||||
@Shadow
|
||||
@Final
|
||||
@Mutable
|
||||
public static ImmutableList<RenderType> CHUNK_BUFFER_LAYERS;
|
||||
|
||||
@Shadow
|
||||
public int chunkLayerId;
|
||||
|
||||
@Override
|
||||
public void crystalline_sky$markAsBlockLayer() {
|
||||
CHUNK_BUFFER_LAYERS = ImmutableList.<RenderType>builder()
|
||||
.addAll(CHUNK_BUFFER_LAYERS)
|
||||
.add((RenderType) (Object) this)
|
||||
.build();
|
||||
chunkLayerId = CHUNK_BUFFER_LAYERS.size() - 1;
|
||||
}
|
||||
}
|
||||
@@ -10,6 +10,7 @@
|
||||
"mixins": [
|
||||
],
|
||||
"client": [
|
||||
"client.RenderTypeMixin"
|
||||
],
|
||||
"server": [
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user