Multiplatform minecraft library
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

;uylkrjteztdrf

sery 3cb15854 83a0fbc8

+114 -41
+13 -8
build.gradle.kts
··· 8 8 plugins { 9 9 java 10 10 kotlin("jvm") version "2.0.21" 11 - id("earth.terrarium.cloche") version "0.8.1" 11 + id("earth.terrarium.cloche") version "0.8.6" 12 12 `maven-publish` 13 13 } 14 14 ··· 40 40 fun kotlinx(module: String, version: String) = "org.jetbrains.kotlinx:kotlinx-$module:$version" 41 41 42 42 cloche { 43 + minecraftVersion = minecraft_version 43 44 metadata { 44 45 modId = prop("mod_id") 45 46 name = prop("mod_name") ··· 57 58 } 58 59 59 60 common { 60 - minecraftVersion = minecraft_version 61 - 62 61 client { 63 62 val main = sourceSets.getByName("main") 64 63 sourceSet.compileClasspath += main.compileClasspath ··· 67 66 } 68 67 69 68 dependencies { 69 + api(kotlin("stdlib")) 70 + api(kotlin("stdlib-jdk8")) 70 71 api(kotlin("reflect")) 71 72 api(kotlinx("coroutines-core", "1.10.1")) 72 73 //modCompileOnly("net.fabricmc.fabric-api:fabric-transitive-access-wideners-v1:4.3.1+1802ada577") ··· 74 75 accessWideners.from(file("src/main/kritter.accesswidener")) 75 76 } 76 77 77 - fabric("fabric:$minecraft_version") { 78 + fabric("fabric") { 78 79 loaderVersion = prop("fabric_loader_version") 79 - minecraftVersion = minecraft_version 80 + //minecraftVersion = minecraft_version 80 81 81 82 dependencies { 82 83 fabricApi(prop("fabric_version")!!) ··· 101 102 } 102 103 } 103 104 104 - accessWideners.from(file("src/fabric/1.20.1/kritter_fabric.accesswidener")) 105 + accessWideners.from(file("src/fabric/kritter_fabric.accesswidener")) 105 106 } 106 107 107 - forge("forge:$minecraft_version") { 108 + forge("forge") { 108 109 loaderVersion = prop("forge_version") 109 - minecraftVersion = minecraft_version 110 + //minecraftVersion = minecraft_version 110 111 111 112 runs { 112 113 client() ··· 118 119 } 119 120 } 120 121 122 + } 123 + 124 + kotlin { 125 + jvmToolchain(17) 121 126 } 122 127 123 128 java {
+28 -20
kritter-datagen/build.gradle.kts
··· 1 - 2 - repositories { 3 - mavenLocal() 4 - 5 - gradlePluginPortal() 6 - 7 - maven(url = "https://maven.msrandom.net/repository/root") 8 - } 9 - 10 - 11 - plugins { 12 - java 13 - kotlin("jvm") version "2.0.21" 14 - id("earth.terrarium.cloche") version "0.8.1" 15 - `maven-publish` 16 - } 17 - 18 - dependencies { 19 - implementation(rootProject) 20 - } 1 + // 2 + //repositories { 3 + // mavenLocal() 4 + // 5 + // gradlePluginPortal() 6 + // 7 + // maven(url = "https://maven.msrandom.net/repository/root") 8 + //} 9 + // 10 + // 11 + //plugins { 12 + // java 13 + // kotlin("jvm") version "2.0.21" 14 + // id("earth.terrarium.cloche") version "0.8.3" 15 + // `maven-publish` 16 + //} 17 + // 18 + //dependencies { 19 + // implementation(rootProject) 20 + //} 21 + // 22 + //cloche { 23 + // common { 24 + // dependencies { 25 + // implementation(dependencyFactory.create(rootProject)) 26 + // } 27 + // } 28 + //}
src/fabric/1.20.1/client/kotlin/uwu/serenity/kritter/client/internal/LibClientPlatform.kt src/fabric/client/kotlin/uwu/serenity/kritter/client/internal/LibClientPlatform.kt
src/fabric/1.20.1/kritter_fabric.accesswidener src/fabric/kritter_fabric.accesswidener
+1
src/fabric/1.20.1/main/kotlin/uwu/serenity/kritter/RegistryManagerFabric.kt src/fabric/main/kotlin/uwu/serenity/kritter/RegistryManagerFabric.kt
··· 1 1 package uwu.serenity.kritter 2 2 3 3 import uwu.serenity.kritter.fabric.RegistryManagerImpl 4 + import uwu.serenity.kritter.RegistryManager 4 5 5 6 @Suppress("ACTUAL_WITHOUT_EXPECT") 6 7 public actual fun RegistryManager(modid: String): RegistryManager = RegistryManagerImpl(modid)
+2
src/fabric/1.20.1/main/kotlin/uwu/serenity/kritter/api/creative/CreativeTabsFabric.kt src/fabric/main/kotlin/uwu/serenity/kritter/api/creative/CreativeTabsFabric.kt
··· 4 4 import net.minecraft.resources.ResourceKey 5 5 import net.minecraft.world.item.CreativeModeTab 6 6 import uwu.serenity.kritter.fabric.CreativeTabContextImpl 7 + import uwu.serenity.kritter.api.creative.CreativeTabContext 7 8 import uwu.serenity.kritter.utils.plus 8 9 import java.util.concurrent.ConcurrentHashMap 9 10 10 11 private val tabCallbacks: MutableMap<ResourceKey<CreativeModeTab>, (CreativeTabContext) -> Unit> = ConcurrentHashMap() 11 12 13 + @Suppress("ACTUAL_WITHOUT_EXPECT") 12 14 public actual fun ResourceKey<CreativeModeTab>.modify(modifier: CreativeTabContext.() -> Unit) { 13 15 if(!tabCallbacks.containsKey(this)) { 14 16 ItemGroupEvents.modifyEntriesEvent(this).register {
+2 -2
src/fabric/1.20.1/main/kotlin/uwu/serenity/kritter/fabric/CreativeTabContextImpl.kt src/fabric/main/kotlin/uwu/serenity/kritter/fabric/CreativeTabContextImpl.kt
··· 38 38 visibility: TabVisibility 39 39 ) { 40 40 when (placement) { 41 - TabPlacement.START -> entries.selectStacks(visibility) { addAll(stacks) } 42 - TabPlacement.END -> entries.selectStacks(visibility) { addAll(0, stacks) } 41 + TabPlacement.START -> entries.selectStacks(visibility) { addAll(0, stacks) } 42 + TabPlacement.END -> entries.acceptAll(stacks, visibility) 43 43 is TabPlacement.BEFORE -> entries.addBefore(placement.predicate, stacks, visibility) 44 44 is TabPlacement.AFTER -> entries.addAfter(placement.predicate, stacks, visibility) 45 45 }
+1
src/fabric/1.20.1/main/kotlin/uwu/serenity/kritter/fabric/RegistryManager.kt src/fabric/main/kotlin/uwu/serenity/kritter/fabric/RegistryManager.kt
··· 6 6 import net.minecraft.core.Registry 7 7 import net.minecraft.core.registries.BuiltInRegistries 8 8 import net.minecraft.resources.ResourceKey 9 + import net.minecraft.world.entity.SpawnPlacements 9 10 import uwu.serenity.kritter.RegistryManager 10 11 import uwu.serenity.kritter.api.Registrar 11 12 import uwu.serenity.kritter.internal.InternalKritterAPI
+1
src/fabric/1.20.1/main/kotlin/uwu/serenity/kritter/internal/Internal.kt src/fabric/main/kotlin/uwu/serenity/kritter/internal/Internal.kt
··· 9 9 import net.minecraft.world.item.Item 10 10 import net.minecraft.world.item.SpawnEggItem 11 11 import uwu.serenity.kritter.RegistryManager 12 + import uwu.serenity.kritter.internal.InternalKritterAPI 12 13 13 14 @InternalKritterAPI 14 15 public actual object LibPlatform {
+1
src/fabric/1.20.1/main/kotlin/uwu/serenity/kritter/platform/Fabric.kt src/fabric/main/kotlin/uwu/serenity/kritter/platform/Fabric.kt
··· 3 3 4 4 import net.fabricmc.api.EnvType 5 5 import net.fabricmc.loader.api.FabricLoader 6 + import uwu.serenity.kritter.platform.Environment 6 7 import java.nio.file.Path 7 8 8 9 public actual val GAME_DIRECTORY: Path = FabricLoader.getInstance().gameDir
+1 -1
src/forge/1.20.1/main/kotlin/uwu/serenity/kritter/RegistryManagerForge.kt src/forge/kotlin/uwu/serenity/kritter/RegistryManagerForge.kt
··· 12 12 set(value) { (this as RegistryManagerImpl).eventBus = value } 13 13 14 14 @Mod("kritter") 15 - public object KritterForge 15 + public class KritterForge
+2
src/forge/1.20.1/main/kotlin/uwu/serenity/kritter/api/creative/CreativeTabsForge.kt src/forge/kotlin/uwu/serenity/kritter/api/creative/CreativeTabsForge.kt
··· 1 1 package uwu.serenity.kritter.api.creative 2 2 3 + import com.google.common.collect.MapMaker 4 + import com.mojang.serialization.RecordBuilder.MapBuilder 3 5 import net.minecraft.resources.ResourceKey 4 6 import net.minecraft.world.item.CreativeModeTab 5 7 import uwu.serenity.kritter.utils.plus
src/forge/1.20.1/main/kotlin/uwu/serenity/kritter/client/internal/LibClientPlatform.kt src/forge/kotlin/uwu/serenity/kritter/client/internal/LibClientPlatform.kt
src/forge/1.20.1/main/kotlin/uwu/serenity/kritter/forge/CreativeTabContextImpl.kt src/forge/kotlin/uwu/serenity/kritter/forge/CreativeTabContextImpl.kt
src/forge/1.20.1/main/kotlin/uwu/serenity/kritter/forge/KritterForgeEvents.kt src/forge/kotlin/uwu/serenity/kritter/forge/KritterForgeEvents.kt
src/forge/1.20.1/main/kotlin/uwu/serenity/kritter/forge/RegistryManagers.kt src/forge/kotlin/uwu/serenity/kritter/forge/RegistryManagers.kt
src/forge/1.20.1/main/kotlin/uwu/serenity/kritter/internal/Internal.kt src/forge/kotlin/uwu/serenity/kritter/internal/Internal.kt
src/forge/1.20.1/main/kotlin/uwu/serenity/kritter/platform/Forge.kt src/forge/kotlin/uwu/serenity/kritter/platform/Forge.kt
+1 -1
src/main/kotlin/uwu/serenity/kritter/api/Registrar.kt
··· 78 78 ) : Registrar<T> { 79 79 80 80 private val registry: RegistryHolder<T> = RegistryHolder(registry) 81 - private var isCustomRegistry: Boolean = BuiltInRegistries.REGISTRY.containsKey(key.location()) 81 + private var isCustomRegistry: Boolean = !BuiltInRegistries.REGISTRY.containsKey(key.location()) 82 82 83 83 private val entries: MutableMap<ResourceKey<T>, RegistryEntry<out T>> = ConcurrentHashMap() 84 84 private val siblings: MutableMap<ResourceKey<*>, Registrar<*>> = Object2ObjectOpenHashMap()
+7 -6
src/main/kotlin/uwu/serenity/kritter/stdlib/BlockEntities.kt
··· 72 72 public interface BlockEntityBlock<out BE : BlockEntity> : EntityBlock { 73 73 74 74 /** 75 - * This block's block entity type 75 + * The block's block entity's class 76 76 */ 77 - public val blockEntityType: BlockEntityType<out BE> 77 + public val blockEntityClass: KClass<out BE> 78 78 79 79 /** 80 - * The block's block entity's class 80 + * This block's block entity type 81 + * Is a method to guarantee this is not accessed during instantation of the block 81 82 */ 82 - public val blockEntityClass: KClass<out BE> 83 + public fun getBlockEntityType(): BlockEntityType<out BE> 83 84 84 85 /** 85 86 * Extension function to get a block entity with the specidic type 86 87 */ 87 88 @Suppress("UNCHECKED_CAST") 88 89 public fun Level.getBlockEntityOfType(pos: BlockPos): BE? = getBlockEntity(pos)?.let { 89 - if(blockEntityClass.isInstance(it) && it.type === blockEntityType) it as BE else null 90 + if(blockEntityClass.isInstance(it) && it.type === getBlockEntityType()) it as BE else null 90 91 } 91 92 92 93 override fun <T : BlockEntity> getListener(level: ServerLevel, blockEntity: T): GameEventListener? ··· 102 103 } else null 103 104 104 105 105 - override fun newBlockEntity(pos: BlockPos, state: BlockState): BlockEntity? = blockEntityType.create(pos, state) 106 + override fun newBlockEntity(pos: BlockPos, state: BlockState): BlockEntity? = getBlockEntityType().create(pos, state) 106 107 } 107 108 108 109 public interface TickableBlockEntity {
+1 -1
src/main/kotlin/uwu/serenity/kritter/stdlib/Blocks.kt
··· 46 46 47 47 public inline fun <I : BlockItem> item( 48 48 noinline factory: (Block, Item.Properties) -> I, 49 - name: String = "", 49 + name: String = this.name, 50 50 builder: ItemBuilder<I>.() -> Unit = {} 51 51 ) { 52 52 val items = owner.sibling(Registries.ITEM)
+1 -2
src/main/kotlin/uwu/serenity/kritter/stdlib/Entities.kt
··· 17 17 import uwu.serenity.kritter.api.builders.Builder 18 18 import uwu.serenity.kritter.api.builders.BuilderCallback 19 19 import uwu.serenity.kritter.api.creative.TabPlacement 20 - import uwu.serenity.kritter.api.entry.RegistryEntry 21 20 import uwu.serenity.kritter.internal.InternalKritterAPI 22 21 import uwu.serenity.kritter.internal.LibPlatform 23 22 import uwu.serenity.kritter.utils.plus ··· 58 57 } 59 58 60 59 public fun <E : Mob> EntityBuilder<E>.spawnPlacement(decorator: SpawnPlacements.Type, heightmap: Heightmap.Types, predicate: SpawnPredicate<E>) { 61 - // onRegister { SpawnPlacements.register(it, decorator, heightmap, predicate) } 60 + onRegister { SpawnPlacements.register(it, decorator, heightmap, predicate) } 62 61 } 63 62 64 63 @OptIn(InternalKritterAPI::class)
+52
testmod/build.gradle.kts
··· 1 + plugins { 2 + java 3 + kotlin("jvm") version "2.0.21" 4 + id("earth.terrarium.cloche") version "0.8.6" 5 + idea 6 + } 7 + 8 + repositories { 9 + maven(url = "https://maven.parchmentmc.org") { name = "Parchment" } 10 + maven(url = "https://maven.fabricmc.net") { name = "FabricMC" } 11 + maven(url = "https://maven.msrandom.net/repository/root") { name = "Ashley"} 12 + maven(url = "https://maven.terraformersmc.com/releases/") { name = "TerraformersMC" } 13 + maven(url = "https://thedarkcolour.github.io/KotlinForForge/") { name = "KotlinForForge" } 14 + mavenCentral() 15 + } 16 + 17 + cloche { 18 + minecraftVersion = "1.20.1" 19 + common { 20 + dependencies { 21 + implementation(project(":")) 22 + } 23 + } 24 + 25 + fabric { 26 + loaderVersion = "0.16.9" 27 + includedClient() 28 + 29 + runs { 30 + client() 31 + server() 32 + } 33 + 34 + dependencies { 35 + fabricApi("0.92.2+1.20.1") 36 + modImplementation("net.fabricmc:fabric-language-kotlin:1.12.3+kotlin.2.0.21") 37 + } 38 + } 39 + 40 + forge { 41 + loaderVersion = "47.1.3" 42 + 43 + runs { 44 + client() 45 + server() 46 + } 47 + 48 + dependencies { 49 + implementation("thedarkcolour:kotlinforforge:4.11.0") 50 + } 51 + } 52 + }