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;
});
}
}

View File

@@ -20,6 +20,18 @@ dependencies {
modApi("com.terraformersmc:modmenu:${mod_menu_version}") {
exclude(group: "net.fabricmc.fabric-api")
}
// Sodium
modImplementation ("curse.maven:sodium-394468:${sodium_version}") {
exclude(group: "net.fabricmc.fabric-api")
}
// This is a dependency of Sodium....
implementation 'org.joml:joml:1.10.4'
// Shimmer
modImplementation ("com.lowdragmc.shimmer:Shimmer-fabric-1.19.1:${shimmer_version}") {
exclude(group: "net.fabricmc.fabric-api")
}
}
loom {

View File

@@ -84,6 +84,12 @@ dependencies {
compileOnly project(":Common")
annotationProcessor 'org.spongepowered:mixin:0.8.4-SNAPSHOT:processor'
implementation fg.deobf("me.hypherionmc.craterlib:CraterLib-forge-1.19.1:${craterlib_version}")
// Rubidium
implementation fg.deobf("curse.maven:rubidium-574856:${ribidium_version}")
// Shimmer
implementation fg.deobf("com.lowdragmc.shimmer:Shimmer-forge-1.19.1:${shimmer_version}")
}
tasks.withType(JavaCompile) {

View File

@@ -42,13 +42,21 @@ subprojects {
url = 'https://repo.spongepowered.org/repository/maven-public/'
}
maven {
name = 'First Dark Dev Maven'
name = 'First Dark Dev Maven Snapshots'
url = 'https://maven.firstdarkdev.xyz/snapshots'
}
maven {
name = 'First Dark Dev Maven Releases'
url = 'https://maven.firstdarkdev.xyz/releases'
}
maven {
name = "TerraformersMC Maven"
url = "https://maven.terraformersmc.com/releases"
}
maven {
name = "Curseforge Maven"
url 'https://cfa2.cursemaven.com'
}
}

View File

@@ -28,5 +28,8 @@ org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false
#dependencies
craterlib_version=1.0.5d
craterlib_version=1.0.6d
mod_menu_version=4.0.5
shimmer_version=0.1.11d
sodium_version=3820973
ribidium_version=3864138