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
3 changes: 2 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ plugins {
}

group = "io.github.solid-resourcepack"
version = "1.0.5"
version = "1.0.6"

repositories {
mavenCentral()
Expand All @@ -22,6 +22,7 @@ dependencies {
testImplementation(rootProject.libs.kotlinTest)
implementation(rootProject.libs.kotlinJvm)
compileOnly(libs.paper)
api(libs.soldiMaterial)
api(libs.bundles.creative)
}

Expand Down
2 changes: 2 additions & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ shadow = "8.1.1"
paper = "1.21-R0.1-SNAPSHOT"
creative = "1.7.2"
sonatypeCentralPortalPublisher = "1.2.3"
solidMaterial = "1.21"

[libraries]
kotlinJvm = { module = "org.jetbrains.kotlin:kotlin-stdlib-jdk8", version.ref = "kotlin" }
Expand All @@ -14,6 +15,7 @@ paper = { module = "io.papermc.paper:paper-api", version.ref = "paper" }

creativeApi = { module = "team.unnamed:creative-api", version.ref = "creative" }
creativeSerializer = { module = "team.unnamed:creative-serializer-minecraft", version.ref = "creative" }
soldiMaterial = { module = "io.github.solid-resourcepack:material-api", version.ref = "solidMaterial" }

[bundles]
creative = [
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package io.github.solid.resourcepack.api.builder.config

import io.github.solid.resourcepack.api.builder.feature.PredicateConfig
import io.github.solid.resourcepack.api.material.SolidMaterial
import io.github.solid.resourcepack.api.predicate.PredicateIncrementor
import io.github.solid.resourcepack.api.predicate.PredicateIncrementorType
import io.github.solid.resourcepack.material.SolidBlockMaterial
import io.github.solid.resourcepack.material.SolidMaterial
import net.kyori.adventure.key.Key
import org.bukkit.Material


object Predicate {
Expand Down Expand Up @@ -35,7 +35,7 @@ object Predicate {
}

fun noteBlock(): PredicateBuilder {
return builder().type(PredicateIncrementorType.NOTE_BLOCK).target(SolidMaterial.from(Material.NOTE_BLOCK)!!)
return builder().type(PredicateIncrementorType.NOTE_BLOCK).target(SolidBlockMaterial.NOTE_BLOCK.toGeneric())
}
}

Expand Down Expand Up @@ -90,7 +90,7 @@ class PredicateBuilder : ConfigBuilder<PredicateConfig> {

override fun build(): PredicateConfig {
if (target == null) {
target = SolidMaterial.from(key!!, parent, textures)
target = SolidMaterial(key!!, parent, textures)
}

return PredicateConfig(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,26 +1,27 @@
package io.github.solid.resourcepack.api.builder.config

import io.github.solid.resourcepack.api.builder.feature.SolidModelConfig
import io.github.solid.resourcepack.api.material.SolidMaterial
import io.github.solid.resourcepack.api.predicate.PredicateIncrementor
import io.github.solid.resourcepack.api.predicate.PredicateIncrementorType
import io.github.solid.resourcepack.material.SolidItemMaterial
import io.github.solid.resourcepack.material.SolidMaterial
import net.kyori.adventure.key.Key
import team.unnamed.creative.base.Writable
import team.unnamed.creative.texture.Texture

object SolidModel {

fun itemModel(target: SolidMaterial, model: Key): SolidModelBuilder {
return SolidModelBuilder().target(target).key(model).incrementor(PredicateIncrementorType.CUSTOM_MODEL_DATA)
fun itemModel(target: SolidItemMaterial, model: Key): SolidModelBuilder {
return SolidModelBuilder().target(target.toGeneric()).key(model).incrementor(PredicateIncrementorType.CUSTOM_MODEL_DATA)
}

fun itemModel(target: SolidMaterial, model: Key, writable: Writable): SolidModelBuilder {
return SolidModelBuilder().target(target).key(model).data(writable)
fun itemModel(target: SolidItemMaterial, model: Key, writable: Writable): SolidModelBuilder {
return SolidModelBuilder().target(target.toGeneric()).key(model).data(writable)
.incrementor(PredicateIncrementorType.CUSTOM_MODEL_DATA)
}

fun itemModel(target: SolidMaterial, vararg textures: Texture): SolidModelBuilder {
return SolidModelBuilder().target(target).variants(*textures)
fun itemModel(target: SolidItemMaterial, vararg textures: Texture): SolidModelBuilder {
return SolidModelBuilder().target(target.toGeneric()).variants(*textures)
.incrementor(PredicateIncrementorType.CUSTOM_MODEL_DATA)
}

Expand Down Expand Up @@ -122,7 +123,7 @@ class SolidModelBuilder : ConfigBuilder<SolidModelConfig> {

override fun build(): SolidModelConfig {
if (this.target == null) {
this.target = SolidMaterial.from(this.key, this.targetParent, this.targetTextures)
this.target = SolidMaterial(this.key, this.targetParent, this.targetTextures)
}
return SolidModelConfig(
writable = writable,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package io.github.solid.resourcepack.api.builder.feature

import io.github.solid.resourcepack.api.builder.ResourcePackFeature
import io.github.solid.resourcepack.api.material.SolidMaterial
import io.github.solid.resourcepack.api.predicate.PredicateGenerator
import io.github.solid.resourcepack.api.predicate.PredicateIncrementor
import io.github.solid.resourcepack.material.SolidMaterial
import net.kyori.adventure.key.Key
import team.unnamed.creative.ResourcePack
import team.unnamed.creative.model.Model
Expand All @@ -12,10 +12,10 @@ import team.unnamed.creative.model.ModelTextures

class PredicateFeature : ResourcePackFeature<PredicateConfig, Unit> {
override fun apply(config: PredicateConfig, pack: ResourcePack) {
val model = pack.model(config.target.minecraftKey) ?: Model.model().parent(config.target.minecraftParent)
.key(config.target.minecraftKey).textures(
val model = pack.model(config.target.key) ?: Model.model().parent(config.target.parent)
.key(config.target.key).textures(
ModelTextures.builder().let {
config.target.minecraftTextures.forEach { texture ->
config.target.textures.forEach { texture ->
it.addVariable(
texture.key,
ModelTexture.ofKey(texture.value)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import io.github.solid.resourcepack.api.builder.ResourcePackFeature
import io.github.solid.resourcepack.api.builder.config.ModelModifier
import io.github.solid.resourcepack.api.builder.config.ModelVariant
import io.github.solid.resourcepack.api.builder.config.Predicate
import io.github.solid.resourcepack.api.material.SolidMaterial
import io.github.solid.resourcepack.api.predicate.PredicateIncrementor
import io.github.solid.resourcepack.material.SolidMaterial
import net.kyori.adventure.key.Key
import team.unnamed.creative.ResourcePack
import team.unnamed.creative.base.Writable
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package io.github.solid.resourcepack.api.material

import io.github.solid.resourcepack.material.SolidBlockMaterial
import io.github.solid.resourcepack.material.SolidItemMaterial
import io.github.solid.resourcepack.material.SolidMaterial
import org.bukkit.Material
import org.jetbrains.annotations.ApiStatus.Experimental

object SolidMaterialMapper {

/**
* Converts a [Material] to a [SolidMaterial]
* IMPORTANT: Only works in a server context
*/
@Experimental
fun from(material: Material): SolidMaterial {
if (material.isItem) {
return SolidItemMaterial.valueOf(material.name).toGeneric()
}
if (material.isBlock) {
return SolidBlockMaterial.valueOf(material.name).toGeneric()
}
throw IllegalArgumentException("Material $material is not supported")
}

fun from(material: Material, type: MaterialType): SolidMaterial {
val returned = mutableListOf<SolidMaterial>()
if (type == MaterialType.ITEM || type == MaterialType.BOTH) {
try {
returned.add(SolidItemMaterial.valueOf(material.name).toGeneric())
} catch (ignored: Exception) {
}
}

if (type == MaterialType.BLOCK || type == MaterialType.BOTH) {
try {
returned.add(SolidBlockMaterial.valueOf(material.name).toGeneric())
} catch (ignored: Exception) {
}
}

if (returned.size != 1) throw IllegalArgumentException("Material $material is not supported")
return returned.first()
}
}

enum class MaterialType {
ITEM,
BLOCK,
BOTH;
}
4 changes: 2 additions & 2 deletions src/test/kotlin/PredicateTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import io.github.solid.resourcepack.api.builder.config.ModelVariant
import io.github.solid.resourcepack.api.builder.config.Predicate
import io.github.solid.resourcepack.api.key.KeyType
import io.github.solid.resourcepack.api.key.SolidKey
import io.github.solid.resourcepack.api.material.SolidMaterial
import io.github.solid.resourcepack.material.SolidMaterial
import net.kyori.adventure.key.Key
import org.bukkit.Material
import team.unnamed.creative.ResourcePack
Expand All @@ -13,7 +13,7 @@ fun main() {
val pack = AdvancedResourcePack(ResourcePack.resourcePack())
pack.apply(
Predicate.customModelData(
SolidMaterial.from(
SolidMaterial(
SolidKey.from(Material.POPPED_CHORUS_FRUIT, KeyType.ITEM),
SolidKey.ITEM_GENERATED,
ModelVariant.Textures.generic(SolidKey.from(Material.POPPED_CHORUS_FRUIT, KeyType.ITEM))
Expand Down