forked from mirrors/cobblemon
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
448605b273 |
@@ -188,6 +188,7 @@ object Cobblemon {
|
||||
implementation.registerEntityAttributes()
|
||||
implementation.registerBlockEntityTypes()
|
||||
implementation.registerWorldGenFeatures()
|
||||
implementation.registerFoliagePlacers()
|
||||
implementation.registerParticles()
|
||||
|
||||
DropEntry.register("command", CommandDropEntry::class.java)
|
||||
|
||||
@@ -106,6 +106,8 @@ interface CobblemonImplementation {
|
||||
*/
|
||||
fun registerWorldGenFeatures()
|
||||
|
||||
fun registerFoliagePlacers()
|
||||
|
||||
fun registerParticles()
|
||||
|
||||
/**
|
||||
|
||||
+60
@@ -0,0 +1,60 @@
|
||||
package com.cobblemon.mod.common.world.foliage
|
||||
|
||||
import com.cobblemon.mod.common.util.cobblemonResource
|
||||
import com.mojang.serialization.codecs.RecordCodecBuilder
|
||||
import net.minecraft.util.math.intprovider.IntProvider
|
||||
import net.minecraft.util.math.random.Random
|
||||
import net.minecraft.world.TestableWorld
|
||||
import net.minecraft.world.gen.feature.TreeFeatureConfig
|
||||
import net.minecraft.world.gen.foliage.FoliagePlacer
|
||||
|
||||
class ApricornFoliagePlacer(
|
||||
val radius: IntProvider,
|
||||
val offset: IntProvider
|
||||
) : FoliagePlacer(radius, offset) {
|
||||
override fun getType() = CobblemonFoliagePlacers.APRICORN_FOLIAGE_PLACER_TYPE
|
||||
|
||||
override fun generate(
|
||||
world: TestableWorld?,
|
||||
placer: BlockPlacer?,
|
||||
random: Random?,
|
||||
config: TreeFeatureConfig?,
|
||||
trunkHeight: Int,
|
||||
treeNode: TreeNode?,
|
||||
foliageHeight: Int,
|
||||
radius: Int,
|
||||
offset: Int
|
||||
) {
|
||||
println("Generating Apricorn Foliage")
|
||||
}
|
||||
|
||||
override fun getRandomHeight(
|
||||
random: Random?,
|
||||
trunkHeight: Int,
|
||||
config: TreeFeatureConfig?
|
||||
): Int {
|
||||
return 0
|
||||
}
|
||||
|
||||
override fun isInvalidForLeaves(
|
||||
random: Random?,
|
||||
dx: Int,
|
||||
y: Int,
|
||||
dz: Int,
|
||||
radius: Int,
|
||||
giantTrunk: Boolean
|
||||
): Boolean {
|
||||
return false
|
||||
}
|
||||
|
||||
companion object {
|
||||
val CODEC = RecordCodecBuilder.mapCodec {
|
||||
it.group(
|
||||
IntProvider.createValidatingCodec(0, 16).fieldOf("radius").forGetter<ApricornFoliagePlacer> {it.radius},
|
||||
IntProvider.createValidatingCodec(0, 16).fieldOf("offset").forGetter<ApricornFoliagePlacer> {it.offset}
|
||||
).apply(it, ::ApricornFoliagePlacer)
|
||||
}
|
||||
val ID = cobblemonResource("apricorn_foliage_placer")
|
||||
}
|
||||
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
package com.cobblemon.mod.common.world.foliage
|
||||
|
||||
import com.cobblemon.mod.common.platform.PlatformRegistry
|
||||
import net.minecraft.registry.Registries
|
||||
import net.minecraft.registry.Registry
|
||||
import net.minecraft.registry.RegistryKey
|
||||
import net.minecraft.registry.RegistryKeys
|
||||
import net.minecraft.world.gen.foliage.FoliagePlacerType
|
||||
|
||||
/**
|
||||
* Wow what a cool class
|
||||
*
|
||||
* @author Apion
|
||||
* @since May 23, 2024
|
||||
*/
|
||||
object CobblemonFoliagePlacers : PlatformRegistry<Registry<FoliagePlacerType<*>>, RegistryKey<Registry<FoliagePlacerType<*>>>, FoliagePlacerType<*>>() {
|
||||
val APRICORN_FOLIAGE_PLACER_TYPE = this.create("apricorn_foliage_placer", FoliagePlacerType(ApricornFoliagePlacer.CODEC.codec()))
|
||||
|
||||
override val registry = Registries.FOLIAGE_PLACER_TYPE
|
||||
override val registryKey = RegistryKeys.FOLIAGE_PLACER_TYPE
|
||||
}
|
||||
@@ -98,4 +98,6 @@ transitive-accessible class net/minecraft/client/model/ModelPart$Quad
|
||||
transitive-accessible method net/minecraft/entity/ai/brain/Activity <init> (Ljava/lang/String;)V
|
||||
#accessible method net/minecraft/client/render/RenderLayer$MultiPhase (Ljava/lang/String;Lnet/minecraft/client/render/VertexFormat;Lnet/minecraft/client/render/VertexFormat$DrawMode;IZZLnet/minecraft/client/render/RenderLayer$MultiPhaseParameters;)Lnet/minecraft/client/render/RenderLayer$MultiPhase;
|
||||
|
||||
transitive-accessible method net/minecraft/world/gen/foliage/FoliagePlacerType <init> (Lcom/mojang/serialization/Codec;)V
|
||||
|
||||
#String name, VertexFormat vertexFormat, VertexFormat.DrawMode drawMode, int expectedBufferSize, boolean hasCrumbling, boolean translucent, MultiPhaseParameters phases
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.cobblemon.mod.common.util.didSleep
|
||||
import com.cobblemon.mod.common.util.endsWith
|
||||
import com.cobblemon.mod.common.world.CobblemonStructures
|
||||
import com.cobblemon.mod.common.world.feature.CobblemonFeatures
|
||||
import com.cobblemon.mod.common.world.foliage.CobblemonFoliagePlacers
|
||||
import com.cobblemon.mod.common.world.placementmodifier.CobblemonPlacementModifierTypes
|
||||
import com.cobblemon.mod.common.world.predicate.CobblemonBlockPredicates
|
||||
import com.cobblemon.mod.common.world.structureprocessors.CobblemonProcessorTypes
|
||||
@@ -239,6 +240,10 @@ object CobblemonFabric : CobblemonImplementation {
|
||||
CobblemonFeatures.register { identifier, feature -> Registry.register(CobblemonFeatures.registry, identifier, feature) }
|
||||
}
|
||||
|
||||
override fun registerFoliagePlacers() {
|
||||
CobblemonFoliagePlacers.register { identifier, foliagePlacerType -> Registry.register(CobblemonFoliagePlacers.registry, identifier, foliagePlacerType) }
|
||||
}
|
||||
|
||||
override fun registerParticles() {
|
||||
CobblemonParticles.register { identifier, particleType -> Registry.register(CobblemonParticles.registry, identifier, particleType) }
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.cobblemon.mod.common.util.didSleep
|
||||
import com.cobblemon.mod.common.util.endsWith
|
||||
import com.cobblemon.mod.common.world.CobblemonStructures
|
||||
import com.cobblemon.mod.common.world.feature.CobblemonFeatures
|
||||
import com.cobblemon.mod.common.world.foliage.CobblemonFoliagePlacers
|
||||
import com.cobblemon.mod.common.world.placementmodifier.CobblemonPlacementModifierTypes
|
||||
import com.cobblemon.mod.common.world.predicate.CobblemonBlockPredicates
|
||||
import com.cobblemon.mod.common.world.structureprocessors.CobblemonProcessorTypes
|
||||
@@ -166,6 +167,7 @@ class CobblemonForge : CobblemonImplementation {
|
||||
ForgeRegistries.ACTIVITIES.register(cobblemonResource(it.id), it)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun onDataPackSync(event: OnDatapackSyncEvent) {
|
||||
@@ -280,6 +282,16 @@ class CobblemonForge : CobblemonImplementation {
|
||||
}
|
||||
}
|
||||
|
||||
override fun registerFoliagePlacers() {
|
||||
MOD_BUS.addListener<RegisterEvent> { event ->
|
||||
event.register(RegistryKeys.FOLIAGE_PLACER_TYPE) {
|
||||
CobblemonFoliagePlacers.register {id, entry ->
|
||||
it.register(id, entry)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun addFeatureToWorldGen(feature: RegistryKey<PlacedFeature>, step: GenerationStep.Feature, validTag: TagKey<Biome>?) {
|
||||
CobblemonBiomeModifiers.add(feature, step, validTag)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user