81d3a2eba4
+most of the stuff is working
94 lines
3.9 KiB
Kotlin
94 lines
3.9 KiB
Kotlin
package mods.betterfoliage
|
|
|
|
import me.zeroeightsix.fiber.JanksonSettings
|
|
import mods.betterfoliage.chunk.ChunkOverlayManager
|
|
import mods.betterfoliage.config.BlockConfig
|
|
import mods.betterfoliage.config.MainConfig
|
|
import mods.betterfoliage.render.ShadersModIntegration
|
|
import mods.betterfoliage.render.block.vanilla.*
|
|
import mods.betterfoliage.render.particle.LeafParticleRegistry
|
|
import mods.betterfoliage.render.particle.RisingSoulParticle
|
|
import mods.betterfoliage.resource.discovery.BakeWrapperManager
|
|
import mods.betterfoliage.resource.discovery.BlockTypeCache
|
|
import mods.betterfoliage.resource.generated.GeneratedBlockTexturePack
|
|
import net.fabricmc.api.ClientModInitializer
|
|
import net.fabricmc.fabric.api.resource.ResourceManagerHelper
|
|
import net.fabricmc.fabric.mixin.resource.loader.ResourcePackManagerAccessor
|
|
import net.fabricmc.loader.api.FabricLoader
|
|
import net.minecraft.block.BlockState
|
|
import net.minecraft.client.MinecraftClient
|
|
import net.minecraft.resource.ResourceType
|
|
import net.minecraft.util.Identifier
|
|
import org.apache.logging.log4j.Level
|
|
import org.apache.logging.log4j.LogManager
|
|
import org.apache.logging.log4j.simple.SimpleLogger
|
|
import org.apache.logging.log4j.util.PropertiesUtil
|
|
import java.io.File
|
|
import java.io.PrintStream
|
|
import java.util.*
|
|
|
|
|
|
object BetterFoliage : ClientModInitializer {
|
|
const val MOD_ID = "betterfoliage"
|
|
|
|
val detailLogStream = PrintStream(File("logs/betterfoliage.log").apply {
|
|
parentFile.mkdirs()
|
|
if (!exists()) createNewFile()
|
|
})
|
|
|
|
fun logger(obj: Any) = LogManager.getLogger(obj)
|
|
fun detailLogger(obj: Any) = SimpleLogger(
|
|
obj::class.java.simpleName, Level.DEBUG, false, true, true, false, "yyyy-MM-dd HH:mm:ss", null, PropertiesUtil(Properties()), detailLogStream
|
|
)
|
|
|
|
val configFile get() = File(FabricLoader.getInstance().configDirectory, "BetterFoliage.json")
|
|
|
|
val config = MainConfig().apply {
|
|
if (configFile.exists()) JanksonSettings().deserialize(fiberNode, configFile.inputStream())
|
|
else JanksonSettings().serialize(fiberNode, configFile.outputStream(), false)
|
|
}
|
|
|
|
val blockConfig = BlockConfig()
|
|
val generatedPack = GeneratedBlockTexturePack(Identifier(MOD_ID, "generated"), "betterfoliage-generated", "Better Foliage", "Generated leaf textures")
|
|
|
|
/** List of recognized [BlockState]s */
|
|
var blockTypes = BlockTypeCache()
|
|
|
|
override fun onInitializeClient() {
|
|
// Register generated resource pack
|
|
ResourceManagerHelper.get(ResourceType.CLIENT_RESOURCES).registerReloadListener(generatedPack.reloader)
|
|
(MinecraftClient.getInstance().resourcePackManager as ResourcePackManagerAccessor)
|
|
.providers.add(generatedPack.finder)
|
|
|
|
ResourceManagerHelper.get(ResourceType.CLIENT_RESOURCES).registerReloadListener(blockConfig)
|
|
|
|
// Add standard block support
|
|
BakeWrapperManager.discoverers.add(StandardCactusDiscovery)
|
|
BakeWrapperManager.discoverers.add(StandardDirtDiscovery)
|
|
BakeWrapperManager.discoverers.add(StandardGrassDiscovery)
|
|
BakeWrapperManager.discoverers.add(StandardLeafDiscovery)
|
|
BakeWrapperManager.discoverers.add(StandardLilypadDiscovery)
|
|
BakeWrapperManager.discoverers.add(StandardMyceliumDiscovery)
|
|
BakeWrapperManager.discoverers.add(StandardNetherrackDiscovery)
|
|
BakeWrapperManager.discoverers.add(StandardRoundLogDiscovery)
|
|
BakeWrapperManager.discoverers.add(StandardSandDiscovery)
|
|
|
|
// Init overlay layers
|
|
ChunkOverlayManager.layers.add(RoundLogOverlayLayer)
|
|
|
|
// Init singletons
|
|
LeafParticleRegistry
|
|
StandardLeafModel.Companion
|
|
StandardGrassModel.Companion
|
|
StandardRoundLogModel.Companion
|
|
StandardCactusModel.Companion
|
|
StandardLilypadModel.Companion
|
|
DirtModel.Companion
|
|
StandardSandModel.Companion
|
|
StandardMyceliumModel.Companion
|
|
StandardNetherrackModel.Companion
|
|
RisingSoulParticle.Companion
|
|
ShadersModIntegration
|
|
}
|
|
|
|
} |