diff --git a/Common/build.gradle b/Common/build.gradle index 5746322..6e9d7ed 100644 --- a/Common/build.gradle +++ b/Common/build.gradle @@ -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 { diff --git a/Common/src/main/java/me/hypherionmc/hyperlighting/client/init/ClientRegistration.java b/Common/src/main/java/me/hypherionmc/hyperlighting/client/init/ClientRegistration.java index 41c3cc9..23e65f7 100644 --- a/Common/src/main/java/me/hypherionmc/hyperlighting/client/init/ClientRegistration.java +++ b/Common/src/main/java/me/hypherionmc/hyperlighting/client/init/ClientRegistration.java @@ -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() { diff --git a/Common/src/main/java/me/hypherionmc/hyperlighting/common/init/CommonRegistration.java b/Common/src/main/java/me/hypherionmc/hyperlighting/common/init/CommonRegistration.java index cc36b4e..46aa7b3 100644 --- a/Common/src/main/java/me/hypherionmc/hyperlighting/common/init/CommonRegistration.java +++ b/Common/src/main/java/me/hypherionmc/hyperlighting/common/init/CommonRegistration.java @@ -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(); } } diff --git a/Common/src/main/java/me/hypherionmc/hyperlighting/integration/HyperLightingIntegrations.java b/Common/src/main/java/me/hypherionmc/hyperlighting/integration/HyperLightingIntegrations.java new file mode 100644 index 0000000..076061e --- /dev/null +++ b/Common/src/main/java/me/hypherionmc/hyperlighting/integration/HyperLightingIntegrations.java @@ -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(); + } + } + +} diff --git a/Common/src/main/java/me/hypherionmc/hyperlighting/integration/shimmer/HyperLightingShimmer.java b/Common/src/main/java/me/hypherionmc/hyperlighting/integration/shimmer/HyperLightingShimmer.java new file mode 100644 index 0000000..bbf283d --- /dev/null +++ b/Common/src/main/java/me/hypherionmc/hyperlighting/integration/shimmer/HyperLightingShimmer.java @@ -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; + }); + } + +} diff --git a/Fabric/build.gradle b/Fabric/build.gradle index b0daf4f..95346f4 100644 --- a/Fabric/build.gradle +++ b/Fabric/build.gradle @@ -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 { diff --git a/Forge/build.gradle b/Forge/build.gradle index 8344afe..9ae351a 100644 --- a/Forge/build.gradle +++ b/Forge/build.gradle @@ -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) { diff --git a/build.gradle b/build.gradle index 5dc023e..a693ae1 100644 --- a/build.gradle +++ b/build.gradle @@ -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' + } } diff --git a/gradle.properties b/gradle.properties index 16a69e3..562eb2b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -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