Initial Shimmer Colored Lighting Integration

This commit is contained in:
2022-08-07 15:46:51 +02:00
parent 20454e6d0a
commit 609d8ac66a
9 changed files with 104 additions and 2 deletions

View File

@@ -25,6 +25,7 @@ minecraft {
dependencies {
compileOnly group:'org.spongepowered', name:'mixin', version:'0.8.5'
compileOnly("me.hypherionmc.craterlib:CraterLib-common-1.19.1:${craterlib_version}")
compileOnly("com.lowdragmc.shimmer:Shimmer-common-1.19.1:${shimmer_version}")
}
processResources {

View File

@@ -7,6 +7,7 @@ import me.hypherionmc.craterlib.events.CraterEventBus;
import me.hypherionmc.craterlib.platform.Services;
import me.hypherionmc.hyperlighting.common.init.HLBlocks;
import me.hypherionmc.hyperlighting.common.init.HLItems;
import me.hypherionmc.hyperlighting.integration.HyperLightingIntegrations;
import net.minecraft.client.renderer.ItemBlockRenderTypes;
/**
@@ -17,6 +18,7 @@ public class ClientRegistration {
public void registerAll() {
Services.CLIENT_HELPER.registerCustomRenderTypes(HLBlocks.BLOCKS.getEntries(), HLItems.ITEMS.getEntries());
HyperLightingIntegrations.registerClient();
}
public void registerEvents() {

View File

@@ -2,6 +2,7 @@ package me.hypherionmc.hyperlighting.common.init;
import me.hypherionmc.craterlib.client.gui.tabs.CreativeTabBuilder;
import me.hypherionmc.hyperlighting.common.config.HyperLightingConfig;
import me.hypherionmc.hyperlighting.integration.HyperLightingIntegrations;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.ItemStack;
@@ -18,6 +19,7 @@ public class CommonRegistration {
HLBlocks.loadAll();
HLItems.loadAll();
HLEntities.loadAll();
HyperLightingIntegrations.registerCommon();
}
}

View File

@@ -0,0 +1,22 @@
package me.hypherionmc.hyperlighting.integration;
import me.hypherionmc.craterlib.platform.Services;
import me.hypherionmc.hyperlighting.integration.shimmer.HyperLightingShimmer;
/**
* @author HypherionSA
* @date 07/08/2022
*/
public class HyperLightingIntegrations {
public static void registerCommon() {
}
public static void registerClient() {
if (Services.PLATFORM.isModLoaded("shimmer")) {
HyperLightingShimmer.registerAll();
}
}
}

View File

@@ -0,0 +1,46 @@
package me.hypherionmc.hyperlighting.integration.shimmer;
import com.lowdragmc.shimmer.client.light.ColorPointLight;
import com.lowdragmc.shimmer.client.light.LightManager;
import me.hypherionmc.craterlib.common.item.BlockItemDyable;
import me.hypherionmc.craterlib.util.RenderUtils;
import me.hypherionmc.hyperlighting.common.blocks.AdvancedLanternBlock;
import me.hypherionmc.hyperlighting.common.blocks.AdvancedTorchBlock;
import me.hypherionmc.hyperlighting.common.init.HLBlocks;
import net.minecraft.world.item.DyeColor;
/**
* @author HypherionSA
* @date 07/08/2022
*/
public class HyperLightingShimmer {
public static void registerAll() {
registerBlocks();
registerItems();
}
private static void registerItems() {
LightManager.INSTANCE.registerItemLight(HLBlocks.ADVANCED_TORCH.asItem(), stack -> new ColorPointLight.Template(stack.getCount() / 10 + 6, RenderUtils.alphaColorFromDye(((BlockItemDyable)stack.getItem()).getColor(stack), 1f)));
LightManager.INSTANCE.registerItemLight(HLBlocks.ADVANCED_LANTERN.asItem(), stack -> new ColorPointLight.Template(stack.getCount() / 10 + 6, RenderUtils.alphaColorFromDye(((BlockItemDyable)stack.getItem()).getColor(stack), 1f)));
}
private static void registerBlocks() {
LightManager.INSTANCE.registerBlockLight(HLBlocks.ADVANCED_TORCH.get(), (state, blockPos) -> {
if (state.getValue(AdvancedTorchBlock.LIT)) {
DyeColor color = state.getValue(AdvancedTorchBlock.COLOR);
return new ColorPointLight.Template(10, RenderUtils.alphaColorFromDye(color, 1f));
}
return null;
});
LightManager.INSTANCE.registerBlockLight(HLBlocks.ADVANCED_LANTERN.get(), (state, blockPos) -> {
if (state.getValue(AdvancedLanternBlock.LIT)) {
DyeColor color = state.getValue(AdvancedLanternBlock.COLOR);
return new ColorPointLight.Template(10, RenderUtils.alphaColorFromDye(color, 1f));
}
return null;
});
}
}