Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ package com.createcivilization.create_ore_deposits
import com.createcivilization.create_ore_deposits.config.Config
import com.createcivilization.create_ore_deposits.registry.block.CreateOreDepositsBlockEntities
import com.createcivilization.create_ore_deposits.registry.block.CreateOreDepositsBlocks
import com.createcivilization.create_ore_deposits.registry.datamap.CreateOreDepositsDataMaps
import com.createcivilization.create_ore_deposits.registry.fluid.CreateOreDepositsFluids
import com.createcivilization.create_ore_deposits.registry.item.CreateOreDepositsItems
import com.createcivilization.create_ore_deposits.registry.tab.CreateOreDepositsTabs
Expand All @@ -18,6 +19,7 @@ import net.neoforged.fml.common.Mod
import net.neoforged.fml.config.ModConfig
import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent
import net.neoforged.neoforge.event.server.ServerStartingEvent
import net.neoforged.neoforge.registries.datamaps.RegisterDataMapTypesEvent

import thedarkcolour.kotlinforforge.neoforge.forge.FORGE_BUS
import thedarkcolour.kotlinforforge.neoforge.forge.LOADING_CONTEXT
Expand All @@ -32,6 +34,8 @@ data object CreateOreDeposits {

init {
MOD_BUS.addListener(this::commonSetup)
MOD_BUS.addListener(this::registerDataMapTypes)

val container: ModContainer = LOADING_CONTEXT.activeContainer!!
container.registerConfig(ModConfig.Type.SERVER, Config.serverSpec)

Expand All @@ -43,6 +47,7 @@ data object CreateOreDeposits {
CreateOreDepositsBlockEntities
CreateOreDepositsFluids
CreateOreDepositsTags
CreateOreDepositsDataMaps

CreateOreDepositsTabs.register(MOD_BUS)
}
Expand All @@ -51,6 +56,11 @@ data object CreateOreDeposits {
// Some common setup code
}

private fun registerDataMapTypes(event: RegisterDataMapTypesEvent) {
event.register(CreateOreDepositsDataMaps.HARDNESS_DATA)
event.register(CreateOreDepositsDataMaps.COOLING_FACTOR_DATA)
}

@SubscribeEvent
fun onServerStarting(event: ServerStartingEvent) {
logI("Starting server...")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package com.createcivilization.create_ore_deposits.registry.block.entries.deposit_drill

import com.createcivilization.create_ore_deposits.config.Config
import com.createcivilization.create_ore_deposits.registry.datamap.CreateOreDepositsDataMaps
import com.createcivilization.create_ore_deposits.registry.datamap.CreateOreDepositsDataMaps.COOLING_FACTOR_DATA
import com.createcivilization.create_ore_deposits.registry.datamap.CreateOreDepositsDataMaps.HARDNESS_DATA
import com.createcivilization.create_ore_deposits.util.translate
import com.createcivilization.create_ore_deposits.registry.tag.CreateOreDepositsTags
import com.createcivilization.create_ore_deposits.registry.fluid.CreateOreDepositsFluids
Expand All @@ -19,7 +22,6 @@ import net.minecraft.core.registries.BuiltInRegistries
import net.minecraft.nbt.CompoundTag
import net.minecraft.network.chat.Component
import net.minecraft.server.level.ServerLevel
import net.minecraft.world.entity.vehicle.Minecart
import net.minecraft.world.item.ItemStack
import net.minecraft.world.level.Level
import net.minecraft.world.level.block.Block
Expand Down Expand Up @@ -200,8 +202,8 @@ class DepositDrillBlockEntity(
.style(ChatFormatting.GOLD)
.forGoggles(tooltip)

val fluidInCoolantTank: FluidStack = lubricantHandler.getFluidInTank(0)
if (!fluidInLubricantTank.isEmpty)
val fluidInCoolantTank: FluidStack = coolantHandler.getFluidInTank(0)
if (!fluidInCoolantTank.isEmpty)
translate("tooltip.drill.contains.coolant", Component.translatable(fluidInCoolantTank.descriptionId), fluidInCoolantTank.amount)
.style(ChatFormatting.BLUE)
.forGoggles(tooltip)
Expand Down Expand Up @@ -243,9 +245,16 @@ class DepositDrillBlockEntity(
}

fun updateTemperature() {
// TEMP VARIABLES
val blockHardness = 0.1f // Will be the current block its breaking and its hardness
val coolingFactor = 0.0f // Will be cooling factor of the coolant
val hardnessData: CreateOreDepositsDataMaps.HardnessData? = getTargetBlockState()?.blockHolder?.getData(HARDNESS_DATA)
val coolingFactorData: CreateOreDepositsDataMaps.CoolingFactorData? = coolantHandler.getFluidInTank(1).fluidHolder.getData(COOLING_FACTOR_DATA)



var blockHardness = 0.1f
var coolingFactor = 0.0f

if(hardnessData != null) blockHardness = hardnessData.hardness
if(coolingFactorData != null) coolingFactor = coolingFactorData.coolingFactor

// Non temp
val dissipation: Float = Config.SERVER.DEPOSIT_DRILL.baseCooling + coolingFactor
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,7 @@ object DataGenerator {
val lookupProvider: CompletableFuture<HolderLookup.Provider> = event.lookupProvider

generator.addProvider(event.includeServer(), DatapackProvider(packOutput, lookupProvider))
generator.addProvider(event.includeServer(), DataMapProvider(packOutput, lookupProvider))

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.createcivilization.create_ore_deposits.registry.datagen

import com.createcivilization.create_ore_deposits.registry.datamap.CreateOreDepositsDataMaps
import net.minecraft.core.HolderLookup
import net.minecraft.data.PackOutput
import net.minecraft.tags.BlockTags
import net.minecraft.tags.FluidTags
import net.neoforged.neoforge.common.data.DataMapProvider
import java.util.concurrent.CompletableFuture

class DataMapProvider(
packOutput: PackOutput,
lookupProvider: CompletableFuture<HolderLookup.Provider>
) : DataMapProvider(packOutput, lookupProvider) {

override fun gather(provider: HolderLookup.Provider) {
builder(CreateOreDepositsDataMaps.HARDNESS_DATA)
.add(BlockTags.DIRT, CreateOreDepositsDataMaps.HardnessData(0.1f), false)


builder(CreateOreDepositsDataMaps.COOLING_FACTOR_DATA)
.add(FluidTags.WATER, CreateOreDepositsDataMaps.CoolingFactorData(5f), false)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package com.createcivilization.create_ore_deposits.registry.datamap

import com.createcivilization.create_ore_deposits.CreateOreDeposits
import com.mojang.serialization.Codec
import com.mojang.serialization.codecs.RecordCodecBuilder
import net.minecraft.core.registries.Registries
import net.minecraft.resources.ResourceLocation
import net.minecraft.world.level.block.Block
import net.minecraft.world.level.material.Fluid
import net.neoforged.neoforge.registries.datamaps.DataMapType

object CreateOreDepositsDataMaps {

data class HardnessData(val hardness: Float) {
companion object {
val CODEC: Codec<HardnessData> = RecordCodecBuilder.create { instance ->
instance.group(
Codec.FLOAT.fieldOf("hardness").forGetter(HardnessData::hardness)
).apply(instance, ::HardnessData)
}
}
}

data class CoolingFactorData(val coolingFactor: Float) {
companion object {
val CODEC: Codec<CoolingFactorData> = RecordCodecBuilder.create { instance ->
instance.group(
Codec.FLOAT.fieldOf("cooling_factor").forGetter(CoolingFactorData::coolingFactor)
).apply(instance, ::CoolingFactorData)
}
}
}

val HARDNESS_DATA: DataMapType<Block?, HardnessData?> =
DataMapType.builder(
ResourceLocation.fromNamespaceAndPath(CreateOreDeposits.MOD_ID, "hardness_data"),
Registries.BLOCK,
HardnessData.CODEC
).build()

val COOLING_FACTOR_DATA: DataMapType<Fluid, CoolingFactorData> =
DataMapType.builder(
ResourceLocation.fromNamespaceAndPath(CreateOreDeposits.MOD_ID, "cooling_factor_data"),
Registries.FLUID,
CoolingFactorData.CODEC
).build()
}
Loading