1 Commits

Author SHA1 Message Date
Martin Prokoph
b2a9161120 feat: start working on Geyser compat 2025-01-29 20:43:17 +01:00
73 changed files with 1106 additions and 823 deletions

View File

@@ -1,5 +1,5 @@
plugins { plugins {
id 'fabric-loom' version '1.11-SNAPSHOT' id 'fabric-loom' version '1.9-SNAPSHOT'
id 'maven-publish' id 'maven-publish'
id "me.shedaniel.unified-publishing" version "0.1.+" id "me.shedaniel.unified-publishing" version "0.1.+"
} }
@@ -27,6 +27,9 @@ repositories {
url = "https://api.modrinth.com/maven" url = "https://api.modrinth.com/maven"
} }
maven { url 'https://maven.nucleoid.xyz' } maven { url 'https://maven.nucleoid.xyz' }
maven {
url = uri("https://repo.opencollab.dev/main/")
}
} }
dependencies { dependencies {
@@ -47,6 +50,7 @@ dependencies {
modImplementation ("eu.pb4:polymer-virtual-entity:${polymer_version}") modImplementation ("eu.pb4:polymer-virtual-entity:${polymer_version}")
modImplementation ("eu.pb4:polymer-autohost:${polymer_version}") modImplementation ("eu.pb4:polymer-autohost:${polymer_version}")
modImplementation ("eu.pb4:factorytools:${factorytools_version}") modImplementation ("eu.pb4:factorytools:${factorytools_version}")
compileOnly('org.geysermc.geyser:api:2.4.2-SNAPSHOT')
} }
processResources { processResources {

View File

@@ -3,12 +3,12 @@ org.gradle.jvmargs=-Xmx2G
# Fabric Properties # Fabric Properties
# check these on https://fabricmc.net/use # check these on https://fabricmc.net/use
minecraft_version=1.21.10 minecraft_version=1.21.4
yarn_mappings=1.21.10+build.1 yarn_mappings=1.21.4+build.4
loader_version=0.17.3 loader_version=0.16.9
# Mod Properties # Mod Properties
mod_version = 1.9.4+1.21.10 mod_version = 1.9.1
maven_group = eu.midnightdust.motschen maven_group = eu.midnightdust.motschen
archives_base_name = rocks archives_base_name = rocks
release_type=release release_type=release
@@ -17,7 +17,7 @@ org.gradle.jvmargs=-Xmx2G
# Dependencies # Dependencies
# currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api
fabric_version=0.136.0+1.21.10 fabric_version=0.113.0+1.21.4
midnightlib_version=1.8.3+1.21.9-fabric midnightlib_version=1.6.6-fabric
polymer_version=0.14.3+1.21.10 polymer_version=0.11.3+1.21.4
factorytools_version=0.8.2+1.21.10 factorytools_version=0.5.0+1.21.4

View File

@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.11-bin.zip
networkTimeout=10000 networkTimeout=10000
validateDistributionUrl=true validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME

View File

@@ -2,7 +2,8 @@
"variants": { "variants": {
"variation=large": [ "variation=large": [
{ {
"model": "rocks:block/acacia_stick_large" "model": "rocks:block/acacia_stick_large",
"y": 0
}, },
{ {
"model": "rocks:block/acacia_stick_large", "model": "rocks:block/acacia_stick_large",
@@ -19,7 +20,8 @@
], ],
"variation=medium": [ "variation=medium": [
{ {
"model": "rocks:block/acacia_stick_medium" "model": "rocks:block/acacia_stick_medium",
"y": 0
}, },
{ {
"model": "rocks:block/acacia_stick_medium", "model": "rocks:block/acacia_stick_medium",
@@ -36,7 +38,8 @@
], ],
"variation=small": [ "variation=small": [
{ {
"model": "rocks:block/acacia_stick_small" "model": "rocks:block/acacia_stick_small",
"y": 0
}, },
{ {
"model": "rocks:block/acacia_stick_small", "model": "rocks:block/acacia_stick_small",

View File

@@ -2,7 +2,8 @@
"variants": { "variants": {
"variation=large": [ "variation=large": [
{ {
"model": "rocks:block/andesite_rock_large" "model": "rocks:block/andesite_rock_large",
"y": 0
}, },
{ {
"model": "rocks:block/andesite_rock_large", "model": "rocks:block/andesite_rock_large",
@@ -19,7 +20,8 @@
], ],
"variation=medium": [ "variation=medium": [
{ {
"model": "rocks:block/andesite_rock_medium" "model": "rocks:block/andesite_rock_medium",
"y": 0
}, },
{ {
"model": "rocks:block/andesite_rock_medium", "model": "rocks:block/andesite_rock_medium",
@@ -36,7 +38,8 @@
], ],
"variation=small": [ "variation=small": [
{ {
"model": "rocks:block/andesite_rock_small" "model": "rocks:block/andesite_rock_small",
"y": 0
}, },
{ {
"model": "rocks:block/andesite_rock_small", "model": "rocks:block/andesite_rock_small",
@@ -53,7 +56,8 @@
], ],
"variation=tiny": [ "variation=tiny": [
{ {
"model": "rocks:block/andesite_rock_tiny" "model": "rocks:block/andesite_rock_tiny",
"y": 0
}, },
{ {
"model": "rocks:block/andesite_rock_tiny", "model": "rocks:block/andesite_rock_tiny",

View File

@@ -2,7 +2,8 @@
"variants": { "variants": {
"variation=large": [ "variation=large": [
{ {
"model": "rocks:block/bamboo_stick_large" "model": "rocks:block/bamboo_stick_large",
"y": 0
}, },
{ {
"model": "rocks:block/bamboo_stick_large", "model": "rocks:block/bamboo_stick_large",
@@ -19,7 +20,8 @@
], ],
"variation=medium": [ "variation=medium": [
{ {
"model": "rocks:block/bamboo_stick_medium" "model": "rocks:block/bamboo_stick_medium",
"y": 0
}, },
{ {
"model": "rocks:block/bamboo_stick_medium", "model": "rocks:block/bamboo_stick_medium",
@@ -36,7 +38,8 @@
], ],
"variation=small": [ "variation=small": [
{ {
"model": "rocks:block/bamboo_stick_small" "model": "rocks:block/bamboo_stick_small",
"y": 0
}, },
{ {
"model": "rocks:block/bamboo_stick_small", "model": "rocks:block/bamboo_stick_small",

View File

@@ -2,7 +2,8 @@
"variants": { "variants": {
"variation=large": [ "variation=large": [
{ {
"model": "rocks:block/birch_stick_large" "model": "rocks:block/birch_stick_large",
"y": 0
}, },
{ {
"model": "rocks:block/birch_stick_large", "model": "rocks:block/birch_stick_large",
@@ -19,7 +20,8 @@
], ],
"variation=medium": [ "variation=medium": [
{ {
"model": "rocks:block/birch_stick_medium" "model": "rocks:block/birch_stick_medium",
"y": 0
}, },
{ {
"model": "rocks:block/birch_stick_medium", "model": "rocks:block/birch_stick_medium",
@@ -36,7 +38,8 @@
], ],
"variation=small": [ "variation=small": [
{ {
"model": "rocks:block/birch_stick_small" "model": "rocks:block/birch_stick_small",
"y": 0
}, },
{ {
"model": "rocks:block/birch_stick_small", "model": "rocks:block/birch_stick_small",

View File

@@ -2,7 +2,8 @@
"variants": { "variants": {
"variation=large": [ "variation=large": [
{ {
"model": "rocks:block/cherry_stick_large" "model": "rocks:block/cherry_stick_large",
"y": 0
}, },
{ {
"model": "rocks:block/cherry_stick_large", "model": "rocks:block/cherry_stick_large",
@@ -19,7 +20,8 @@
], ],
"variation=medium": [ "variation=medium": [
{ {
"model": "rocks:block/cherry_stick_medium" "model": "rocks:block/cherry_stick_medium",
"y": 0
}, },
{ {
"model": "rocks:block/cherry_stick_medium", "model": "rocks:block/cherry_stick_medium",
@@ -36,7 +38,8 @@
], ],
"variation=small": [ "variation=small": [
{ {
"model": "rocks:block/cherry_stick_small" "model": "rocks:block/cherry_stick_small",
"y": 0
}, },
{ {
"model": "rocks:block/cherry_stick_small", "model": "rocks:block/cherry_stick_small",

View File

@@ -2,7 +2,8 @@
"variants": { "variants": {
"variation=large": [ "variation=large": [
{ {
"model": "rocks:block/crimson_stick_large" "model": "rocks:block/crimson_stick_large",
"y": 0
}, },
{ {
"model": "rocks:block/crimson_stick_large", "model": "rocks:block/crimson_stick_large",
@@ -19,7 +20,8 @@
], ],
"variation=medium": [ "variation=medium": [
{ {
"model": "rocks:block/crimson_stick_medium" "model": "rocks:block/crimson_stick_medium",
"y": 0
}, },
{ {
"model": "rocks:block/crimson_stick_medium", "model": "rocks:block/crimson_stick_medium",
@@ -36,7 +38,8 @@
], ],
"variation=small": [ "variation=small": [
{ {
"model": "rocks:block/crimson_stick_small" "model": "rocks:block/crimson_stick_small",
"y": 0
}, },
{ {
"model": "rocks:block/crimson_stick_small", "model": "rocks:block/crimson_stick_small",

View File

@@ -2,7 +2,8 @@
"variants": { "variants": {
"variation=large": [ "variation=large": [
{ {
"model": "rocks:block/dark_oak_stick_large" "model": "rocks:block/dark_oak_stick_large",
"y": 0
}, },
{ {
"model": "rocks:block/dark_oak_stick_large", "model": "rocks:block/dark_oak_stick_large",
@@ -19,7 +20,8 @@
], ],
"variation=medium": [ "variation=medium": [
{ {
"model": "rocks:block/dark_oak_stick_medium" "model": "rocks:block/dark_oak_stick_medium",
"y": 0
}, },
{ {
"model": "rocks:block/dark_oak_stick_medium", "model": "rocks:block/dark_oak_stick_medium",
@@ -36,7 +38,8 @@
], ],
"variation=small": [ "variation=small": [
{ {
"model": "rocks:block/dark_oak_stick_small" "model": "rocks:block/dark_oak_stick_small",
"y": 0
}, },
{ {
"model": "rocks:block/dark_oak_stick_small", "model": "rocks:block/dark_oak_stick_small",

View File

@@ -2,7 +2,8 @@
"variants": { "variants": {
"variation=large": [ "variation=large": [
{ {
"model": "rocks:block/diorite_rock_large" "model": "rocks:block/diorite_rock_large",
"y": 0
}, },
{ {
"model": "rocks:block/diorite_rock_large", "model": "rocks:block/diorite_rock_large",
@@ -19,7 +20,8 @@
], ],
"variation=medium": [ "variation=medium": [
{ {
"model": "rocks:block/diorite_rock_medium" "model": "rocks:block/diorite_rock_medium",
"y": 0
}, },
{ {
"model": "rocks:block/diorite_rock_medium", "model": "rocks:block/diorite_rock_medium",
@@ -36,7 +38,8 @@
], ],
"variation=small": [ "variation=small": [
{ {
"model": "rocks:block/diorite_rock_small" "model": "rocks:block/diorite_rock_small",
"y": 0
}, },
{ {
"model": "rocks:block/diorite_rock_small", "model": "rocks:block/diorite_rock_small",
@@ -53,7 +56,8 @@
], ],
"variation=tiny": [ "variation=tiny": [
{ {
"model": "rocks:block/diorite_rock_tiny" "model": "rocks:block/diorite_rock_tiny",
"y": 0
}, },
{ {
"model": "rocks:block/diorite_rock_tiny", "model": "rocks:block/diorite_rock_tiny",

View File

@@ -2,7 +2,8 @@
"variants": { "variants": {
"variation=large": [ "variation=large": [
{ {
"model": "rocks:block/end_stone_rock_large" "model": "rocks:block/end_stone_rock_large",
"y": 0
}, },
{ {
"model": "rocks:block/end_stone_rock_large", "model": "rocks:block/end_stone_rock_large",
@@ -19,7 +20,8 @@
], ],
"variation=medium": [ "variation=medium": [
{ {
"model": "rocks:block/end_stone_rock_medium" "model": "rocks:block/end_stone_rock_medium",
"y": 0
}, },
{ {
"model": "rocks:block/end_stone_rock_medium", "model": "rocks:block/end_stone_rock_medium",
@@ -36,7 +38,8 @@
], ],
"variation=small": [ "variation=small": [
{ {
"model": "rocks:block/end_stone_rock_small" "model": "rocks:block/end_stone_rock_small",
"y": 0
}, },
{ {
"model": "rocks:block/end_stone_rock_small", "model": "rocks:block/end_stone_rock_small",
@@ -53,7 +56,8 @@
], ],
"variation=tiny": [ "variation=tiny": [
{ {
"model": "rocks:block/end_stone_rock_tiny" "model": "rocks:block/end_stone_rock_tiny",
"y": 0
}, },
{ {
"model": "rocks:block/end_stone_rock_tiny", "model": "rocks:block/end_stone_rock_tiny",

View File

@@ -2,7 +2,8 @@
"variants": { "variants": {
"variation=large": [ "variation=large": [
{ {
"model": "rocks:block/granite_rock_large" "model": "rocks:block/granite_rock_large",
"y": 0
}, },
{ {
"model": "rocks:block/granite_rock_large", "model": "rocks:block/granite_rock_large",
@@ -19,7 +20,8 @@
], ],
"variation=medium": [ "variation=medium": [
{ {
"model": "rocks:block/granite_rock_medium" "model": "rocks:block/granite_rock_medium",
"y": 0
}, },
{ {
"model": "rocks:block/granite_rock_medium", "model": "rocks:block/granite_rock_medium",
@@ -36,7 +38,8 @@
], ],
"variation=small": [ "variation=small": [
{ {
"model": "rocks:block/granite_rock_small" "model": "rocks:block/granite_rock_small",
"y": 0
}, },
{ {
"model": "rocks:block/granite_rock_small", "model": "rocks:block/granite_rock_small",
@@ -53,7 +56,8 @@
], ],
"variation=tiny": [ "variation=tiny": [
{ {
"model": "rocks:block/granite_rock_tiny" "model": "rocks:block/granite_rock_tiny",
"y": 0
}, },
{ {
"model": "rocks:block/granite_rock_tiny", "model": "rocks:block/granite_rock_tiny",

View File

@@ -2,7 +2,8 @@
"variants": { "variants": {
"variation=large": [ "variation=large": [
{ {
"model": "rocks:block/gravel_rock_large" "model": "rocks:block/gravel_rock_large",
"y": 0
}, },
{ {
"model": "rocks:block/gravel_rock_large", "model": "rocks:block/gravel_rock_large",
@@ -19,7 +20,8 @@
], ],
"variation=medium": [ "variation=medium": [
{ {
"model": "rocks:block/gravel_rock_medium" "model": "rocks:block/gravel_rock_medium",
"y": 0
}, },
{ {
"model": "rocks:block/gravel_rock_medium", "model": "rocks:block/gravel_rock_medium",
@@ -36,7 +38,8 @@
], ],
"variation=small": [ "variation=small": [
{ {
"model": "rocks:block/gravel_rock_small" "model": "rocks:block/gravel_rock_small",
"y": 0
}, },
{ {
"model": "rocks:block/gravel_rock_small", "model": "rocks:block/gravel_rock_small",
@@ -53,7 +56,8 @@
], ],
"variation=tiny": [ "variation=tiny": [
{ {
"model": "rocks:block/gravel_rock_tiny" "model": "rocks:block/gravel_rock_tiny",
"y": 0
}, },
{ {
"model": "rocks:block/gravel_rock_tiny", "model": "rocks:block/gravel_rock_tiny",

View File

@@ -2,7 +2,8 @@
"variants": { "variants": {
"variation=large": [ "variation=large": [
{ {
"model": "rocks:block/ice_rock_large" "model": "rocks:block/ice_rock_large",
"y": 0
}, },
{ {
"model": "rocks:block/ice_rock_large", "model": "rocks:block/ice_rock_large",
@@ -19,7 +20,8 @@
], ],
"variation=medium": [ "variation=medium": [
{ {
"model": "rocks:block/ice_rock_medium" "model": "rocks:block/ice_rock_medium",
"y": 0
}, },
{ {
"model": "rocks:block/ice_rock_medium", "model": "rocks:block/ice_rock_medium",
@@ -36,7 +38,8 @@
], ],
"variation=small": [ "variation=small": [
{ {
"model": "rocks:block/ice_rock_small" "model": "rocks:block/ice_rock_small",
"y": 0
}, },
{ {
"model": "rocks:block/ice_rock_small", "model": "rocks:block/ice_rock_small",
@@ -53,7 +56,8 @@
], ],
"variation=tiny": [ "variation=tiny": [
{ {
"model": "rocks:block/ice_rock_tiny" "model": "rocks:block/ice_rock_tiny",
"y": 0
}, },
{ {
"model": "rocks:block/ice_rock_tiny", "model": "rocks:block/ice_rock_tiny",

View File

@@ -2,7 +2,8 @@
"variants": { "variants": {
"variation=large": [ "variation=large": [
{ {
"model": "rocks:block/jungle_stick_large" "model": "rocks:block/jungle_stick_large",
"y": 0
}, },
{ {
"model": "rocks:block/jungle_stick_large", "model": "rocks:block/jungle_stick_large",
@@ -19,7 +20,8 @@
], ],
"variation=medium": [ "variation=medium": [
{ {
"model": "rocks:block/jungle_stick_medium" "model": "rocks:block/jungle_stick_medium",
"y": 0
}, },
{ {
"model": "rocks:block/jungle_stick_medium", "model": "rocks:block/jungle_stick_medium",
@@ -36,7 +38,8 @@
], ],
"variation=small": [ "variation=small": [
{ {
"model": "rocks:block/jungle_stick_small" "model": "rocks:block/jungle_stick_small",
"y": 0
}, },
{ {
"model": "rocks:block/jungle_stick_small", "model": "rocks:block/jungle_stick_small",

View File

@@ -2,7 +2,8 @@
"variants": { "variants": {
"variation=large": [ "variation=large": [
{ {
"model": "rocks:block/mangrove_stick_large" "model": "rocks:block/mangrove_stick_large",
"y": 0
}, },
{ {
"model": "rocks:block/mangrove_stick_large", "model": "rocks:block/mangrove_stick_large",
@@ -19,7 +20,8 @@
], ],
"variation=medium": [ "variation=medium": [
{ {
"model": "rocks:block/mangrove_stick_medium" "model": "rocks:block/mangrove_stick_medium",
"y": 0
}, },
{ {
"model": "rocks:block/mangrove_stick_medium", "model": "rocks:block/mangrove_stick_medium",
@@ -36,7 +38,8 @@
], ],
"variation=small": [ "variation=small": [
{ {
"model": "rocks:block/mangrove_stick_small" "model": "rocks:block/mangrove_stick_small",
"y": 0
}, },
{ {
"model": "rocks:block/mangrove_stick_small", "model": "rocks:block/mangrove_stick_small",

View File

@@ -2,7 +2,8 @@
"variants": { "variants": {
"variation=large": [ "variation=large": [
{ {
"model": "rocks:block/netherrack_rock_large" "model": "rocks:block/netherrack_rock_large",
"y": 0
}, },
{ {
"model": "rocks:block/netherrack_rock_large", "model": "rocks:block/netherrack_rock_large",
@@ -19,7 +20,8 @@
], ],
"variation=medium": [ "variation=medium": [
{ {
"model": "rocks:block/netherrack_rock_medium" "model": "rocks:block/netherrack_rock_medium",
"y": 0
}, },
{ {
"model": "rocks:block/netherrack_rock_medium", "model": "rocks:block/netherrack_rock_medium",
@@ -36,7 +38,8 @@
], ],
"variation=small": [ "variation=small": [
{ {
"model": "rocks:block/netherrack_rock_small" "model": "rocks:block/netherrack_rock_small",
"y": 0
}, },
{ {
"model": "rocks:block/netherrack_rock_small", "model": "rocks:block/netherrack_rock_small",
@@ -53,7 +56,8 @@
], ],
"variation=tiny": [ "variation=tiny": [
{ {
"model": "rocks:block/netherrack_rock_tiny" "model": "rocks:block/netherrack_rock_tiny",
"y": 0
}, },
{ {
"model": "rocks:block/netherrack_rock_tiny", "model": "rocks:block/netherrack_rock_tiny",

View File

@@ -2,7 +2,8 @@
"variants": { "variants": {
"variation=large": [ "variation=large": [
{ {
"model": "rocks:block/oak_stick_large" "model": "rocks:block/oak_stick_large",
"y": 0
}, },
{ {
"model": "rocks:block/oak_stick_large", "model": "rocks:block/oak_stick_large",
@@ -19,7 +20,8 @@
], ],
"variation=medium": [ "variation=medium": [
{ {
"model": "rocks:block/oak_stick_medium" "model": "rocks:block/oak_stick_medium",
"y": 0
}, },
{ {
"model": "rocks:block/oak_stick_medium", "model": "rocks:block/oak_stick_medium",
@@ -36,7 +38,8 @@
], ],
"variation=small": [ "variation=small": [
{ {
"model": "rocks:block/oak_stick_small" "model": "rocks:block/oak_stick_small",
"y": 0
}, },
{ {
"model": "rocks:block/oak_stick_small", "model": "rocks:block/oak_stick_small",

View File

@@ -2,7 +2,8 @@
"variants": { "variants": {
"variation=large": [ "variation=large": [
{ {
"model": "rocks:block/pale_oak_stick_large" "model": "rocks:block/pale_oak_stick_large",
"y": 0
}, },
{ {
"model": "rocks:block/pale_oak_stick_large", "model": "rocks:block/pale_oak_stick_large",
@@ -19,7 +20,8 @@
], ],
"variation=medium": [ "variation=medium": [
{ {
"model": "rocks:block/pale_oak_stick_medium" "model": "rocks:block/pale_oak_stick_medium",
"y": 0
}, },
{ {
"model": "rocks:block/pale_oak_stick_medium", "model": "rocks:block/pale_oak_stick_medium",
@@ -36,7 +38,8 @@
], ],
"variation=small": [ "variation=small": [
{ {
"model": "rocks:block/pale_oak_stick_small" "model": "rocks:block/pale_oak_stick_small",
"y": 0
}, },
{ {
"model": "rocks:block/pale_oak_stick_small", "model": "rocks:block/pale_oak_stick_small",

View File

@@ -2,7 +2,8 @@
"variants": { "variants": {
"variation=large": [ "variation=large": [
{ {
"model": "rocks:block/red_sand_rock_large" "model": "rocks:block/red_sand_rock_large",
"y": 0
}, },
{ {
"model": "rocks:block/red_sand_rock_large", "model": "rocks:block/red_sand_rock_large",
@@ -19,7 +20,8 @@
], ],
"variation=medium": [ "variation=medium": [
{ {
"model": "rocks:block/red_sand_rock_medium" "model": "rocks:block/red_sand_rock_medium",
"y": 0
}, },
{ {
"model": "rocks:block/red_sand_rock_medium", "model": "rocks:block/red_sand_rock_medium",
@@ -36,7 +38,8 @@
], ],
"variation=small": [ "variation=small": [
{ {
"model": "rocks:block/red_sand_rock_small" "model": "rocks:block/red_sand_rock_small",
"y": 0
}, },
{ {
"model": "rocks:block/red_sand_rock_small", "model": "rocks:block/red_sand_rock_small",
@@ -53,7 +56,8 @@
], ],
"variation=tiny": [ "variation=tiny": [
{ {
"model": "rocks:block/red_sand_rock_tiny" "model": "rocks:block/red_sand_rock_tiny",
"y": 0
}, },
{ {
"model": "rocks:block/red_sand_rock_tiny", "model": "rocks:block/red_sand_rock_tiny",

View File

@@ -2,7 +2,8 @@
"variants": { "variants": {
"variation=large": [ "variation=large": [
{ {
"model": "rocks:block/rock_large" "model": "rocks:block/rock_large",
"y": 0
}, },
{ {
"model": "rocks:block/rock_large", "model": "rocks:block/rock_large",
@@ -19,7 +20,8 @@
], ],
"variation=medium": [ "variation=medium": [
{ {
"model": "rocks:block/rock_medium" "model": "rocks:block/rock_medium",
"y": 0
}, },
{ {
"model": "rocks:block/rock_medium", "model": "rocks:block/rock_medium",
@@ -36,7 +38,8 @@
], ],
"variation=small": [ "variation=small": [
{ {
"model": "rocks:block/rock_small" "model": "rocks:block/rock_small",
"y": 0
}, },
{ {
"model": "rocks:block/rock_small", "model": "rocks:block/rock_small",
@@ -53,7 +56,8 @@
], ],
"variation=tiny": [ "variation=tiny": [
{ {
"model": "rocks:block/rock_tiny" "model": "rocks:block/rock_tiny",
"y": 0
}, },
{ {
"model": "rocks:block/rock_tiny", "model": "rocks:block/rock_tiny",

View File

@@ -2,7 +2,8 @@
"variants": { "variants": {
"variation=large": [ "variation=large": [
{ {
"model": "rocks:block/sand_rock_large" "model": "rocks:block/sand_rock_large",
"y": 0
}, },
{ {
"model": "rocks:block/sand_rock_large", "model": "rocks:block/sand_rock_large",
@@ -19,7 +20,8 @@
], ],
"variation=medium": [ "variation=medium": [
{ {
"model": "rocks:block/sand_rock_medium" "model": "rocks:block/sand_rock_medium",
"y": 0
}, },
{ {
"model": "rocks:block/sand_rock_medium", "model": "rocks:block/sand_rock_medium",
@@ -36,7 +38,8 @@
], ],
"variation=small": [ "variation=small": [
{ {
"model": "rocks:block/sand_rock_small" "model": "rocks:block/sand_rock_small",
"y": 0
}, },
{ {
"model": "rocks:block/sand_rock_small", "model": "rocks:block/sand_rock_small",
@@ -53,7 +56,8 @@
], ],
"variation=tiny": [ "variation=tiny": [
{ {
"model": "rocks:block/sand_rock_tiny" "model": "rocks:block/sand_rock_tiny",
"y": 0
}, },
{ {
"model": "rocks:block/sand_rock_tiny", "model": "rocks:block/sand_rock_tiny",

View File

@@ -2,7 +2,8 @@
"variants": { "variants": {
"variation=large": [ "variation=large": [
{ {
"model": "rocks:block/soul_soil_rock_large" "model": "rocks:block/soul_soil_rock_large",
"y": 0
}, },
{ {
"model": "rocks:block/soul_soil_rock_large", "model": "rocks:block/soul_soil_rock_large",
@@ -19,7 +20,8 @@
], ],
"variation=medium": [ "variation=medium": [
{ {
"model": "rocks:block/soul_soil_rock_medium" "model": "rocks:block/soul_soil_rock_medium",
"y": 0
}, },
{ {
"model": "rocks:block/soul_soil_rock_medium", "model": "rocks:block/soul_soil_rock_medium",
@@ -36,7 +38,8 @@
], ],
"variation=small": [ "variation=small": [
{ {
"model": "rocks:block/soul_soil_rock_small" "model": "rocks:block/soul_soil_rock_small",
"y": 0
}, },
{ {
"model": "rocks:block/soul_soil_rock_small", "model": "rocks:block/soul_soil_rock_small",
@@ -53,7 +56,8 @@
], ],
"variation=tiny": [ "variation=tiny": [
{ {
"model": "rocks:block/soul_soil_rock_tiny" "model": "rocks:block/soul_soil_rock_tiny",
"y": 0
}, },
{ {
"model": "rocks:block/soul_soil_rock_tiny", "model": "rocks:block/soul_soil_rock_tiny",

View File

@@ -2,7 +2,8 @@
"variants": { "variants": {
"variation=large": [ "variation=large": [
{ {
"model": "rocks:block/spruce_stick_large" "model": "rocks:block/spruce_stick_large",
"y": 0
}, },
{ {
"model": "rocks:block/spruce_stick_large", "model": "rocks:block/spruce_stick_large",
@@ -19,7 +20,8 @@
], ],
"variation=medium": [ "variation=medium": [
{ {
"model": "rocks:block/spruce_stick_medium" "model": "rocks:block/spruce_stick_medium",
"y": 0
}, },
{ {
"model": "rocks:block/spruce_stick_medium", "model": "rocks:block/spruce_stick_medium",
@@ -36,7 +38,8 @@
], ],
"variation=small": [ "variation=small": [
{ {
"model": "rocks:block/spruce_stick_small" "model": "rocks:block/spruce_stick_small",
"y": 0
}, },
{ {
"model": "rocks:block/spruce_stick_small", "model": "rocks:block/spruce_stick_small",

View File

@@ -2,7 +2,8 @@
"variants": { "variants": {
"variation=large": [ "variation=large": [
{ {
"model": "rocks:block/warped_stick_large" "model": "rocks:block/warped_stick_large",
"y": 0
}, },
{ {
"model": "rocks:block/warped_stick_large", "model": "rocks:block/warped_stick_large",
@@ -19,7 +20,8 @@
], ],
"variation=medium": [ "variation=medium": [
{ {
"model": "rocks:block/warped_stick_medium" "model": "rocks:block/warped_stick_medium",
"y": 0
}, },
{ {
"model": "rocks:block/warped_stick_medium", "model": "rocks:block/warped_stick_medium",
@@ -36,7 +38,8 @@
], ],
"variation=small": [ "variation=small": [
{ {
"model": "rocks:block/warped_stick_small" "model": "rocks:block/warped_stick_small",
"y": 0
}, },
{ {
"model": "rocks:block/warped_stick_small", "model": "rocks:block/warped_stick_small",

View File

@@ -6,21 +6,21 @@
{ {
"model": { "model": {
"type": "minecraft:model", "type": "minecraft:model",
"model": "rocks:item/starfish_red" "model": "rocks:block/starfish_red"
}, },
"when": "red" "when": "red"
}, },
{ {
"model": { "model": {
"type": "minecraft:model", "type": "minecraft:model",
"model": "rocks:item/starfish_pink" "model": "rocks:block/starfish_pink"
}, },
"when": "pink" "when": "pink"
}, },
{ {
"model": { "model": {
"type": "minecraft:model", "type": "minecraft:model",
"model": "rocks:item/starfish_orange" "model": "rocks:block/starfish_orange"
}, },
"when": "orange" "when": "orange"
} }

View File

@@ -33,7 +33,7 @@
"item.rocks.bamboo_stick": "Bambusstock", "item.rocks.bamboo_stick": "Bambusstock",
"item.rocks.birch_stick": "Birkenstock", "item.rocks.birch_stick": "Birkenstock",
"item.rocks.cherry_stick": "Kirschstock", "item.rocks.cherry_stick": "Kirschstock",
"item.rocks.cobblestone_splitter": "Bruchsteinsplitter", "item.rocks.cobblestone_splitter": "Steinsplitter",
"item.rocks.crimson_stick": "Karmesinstock", "item.rocks.crimson_stick": "Karmesinstock",
"item.rocks.dark_oak_stick": "Schwarzeichenstock", "item.rocks.dark_oak_stick": "Schwarzeichenstock",
"item.rocks.diorite_rock": "Dioritbrocken", "item.rocks.diorite_rock": "Dioritbrocken",
@@ -74,8 +74,6 @@
"rocks.midnightconfig.category.sticks": "Stöcke", "rocks.midnightconfig.category.sticks": "Stöcke",
"rocks.midnightconfig.enablePolymerMode": "Aktiviere Polymer-Modus", "rocks.midnightconfig.enablePolymerMode": "Aktiviere Polymer-Modus",
"rocks.midnightconfig.enablePolymerMode.tooltip": "Erlaubt der Mod, komplett serverseitig zu funktionieren, wenn Polymer und FactoryTools installiert sind", "rocks.midnightconfig.enablePolymerMode.tooltip": "Erlaubt der Mod, komplett serverseitig zu funktionieren, wenn Polymer und FactoryTools installiert sind",
"rocks.midnightconfig.forcePolymerMode": "Erzwinge Polymer-Modus",
"rocks.midnightconfig.forcePolymerMode.tooltip": "Aktiviert den Polymer-Modus auch für Clients, die die ThisRocks! installiert haben",
"rocks.midnightconfig.geyserLevitation": "Geysir Schwebeeffekt", "rocks.midnightconfig.geyserLevitation": "Geysir Schwebeeffekt",
"rocks.midnightconfig.needs_restart": "§cStarte das Spiel neu, nachdem du Änderungen vorgenommen hast!", "rocks.midnightconfig.needs_restart": "§cStarte das Spiel neu, nachdem du Änderungen vorgenommen hast!",
"rocks.midnightconfig.needs_restart1": "§cStarte das Spiel neu, nachdem du Änderungen vorgenommen hast!", "rocks.midnightconfig.needs_restart1": "§cStarte das Spiel neu, nachdem du Änderungen vorgenommen hast!",

View File

@@ -29,39 +29,39 @@
"block.rocks.warped_stick": "Warped Stick", "block.rocks.warped_stick": "Warped Stick",
"item.rocks.acacia_stick": "Acacia Stick", "item.rocks.acacia_stick": "Acacia Stick",
"item.rocks.andesite_rock": "Andesite Rock", "item.rocks.andesite_rock": "Andesite Rock",
"item.rocks.andesite_splitter": "Andesite Fragment", "item.rocks.andesite_splitter": "Andesite Splitter",
"item.rocks.bamboo_stick": "Bamboo Stick", "item.rocks.bamboo_stick": "Bamboo Stick",
"item.rocks.birch_stick": "Birch Stick", "item.rocks.birch_stick": "Birch Stick",
"item.rocks.cherry_stick": "Cherry Stick", "item.rocks.cherry_stick": "Cherry Stick",
"item.rocks.cobblestone_splitter": "Cobblestone Fragment", "item.rocks.cobblestone_splitter": "Stone Splitter",
"item.rocks.crimson_stick": "Crimson Stick", "item.rocks.crimson_stick": "Crimson Stick",
"item.rocks.dark_oak_stick": "Dark Oak Stick", "item.rocks.dark_oak_stick": "Dark Oak Stick",
"item.rocks.diorite_rock": "Diorite Rock", "item.rocks.diorite_rock": "Diorite Rock",
"item.rocks.diorite_splitter": "Diorite Fragment", "item.rocks.diorite_splitter": "Diorite Splitter",
"item.rocks.end_stone_rock": "End Stone Rock", "item.rocks.end_stone_rock": "End Stone Rock",
"item.rocks.end_stone_splitter": "End Stone Fragment", "item.rocks.end_stone_splitter": "End Stone Splitter",
"item.rocks.geyser": "Geyser", "item.rocks.geyser": "Geyser",
"item.rocks.granite_rock": "Granite Rock", "item.rocks.granite_rock": "Granite Rock",
"item.rocks.granite_splitter": "Granite Fragment", "item.rocks.granite_splitter": "Granite Splitter",
"item.rocks.gravel_rock": "Gravel Rock", "item.rocks.gravel_rock": "Gravel Rock",
"item.rocks.ice_rock": "Ice Rock", "item.rocks.ice_rock": "Ice Rock",
"item.rocks.ice_splitter": "Ice Fragment", "item.rocks.ice_splitter": "Ice Splitter",
"item.rocks.jungle_stick": "Jungle Stick", "item.rocks.jungle_stick": "Jungle Stick",
"item.rocks.mangrove_stick": "Mangrove Stick", "item.rocks.mangrove_stick": "Mangrove Stick",
"item.rocks.nether_geyser": "Nether Geyser", "item.rocks.nether_geyser": "Nether Geyser",
"item.rocks.netherrack_rock": "Netherrack Rock", "item.rocks.netherrack_rock": "Netherrack Rock",
"item.rocks.netherrack_splitter": "Netherrack Fragment", "item.rocks.netherrack_splitter": "Netherrack Splitter",
"item.rocks.oak_stick": "Oak Stick", "item.rocks.oak_stick": "Oak Stick",
"item.rocks.pale_oak_stick": "Pale Oak Stick", "item.rocks.pale_oak_stick": "Pale Oak Stick",
"item.rocks.pinecone": "Pinecone", "item.rocks.pinecone": "Pinecone",
"item.rocks.red_sand_rock": "Red Sandstone Rock", "item.rocks.red_sand_rock": "Red Sandstone Rock",
"item.rocks.red_sandstone_splitter": "Red Sandstone Fragment", "item.rocks.red_sandstone_splitter": "Red Sandstone Splitter",
"item.rocks.rock": "Stone Rock", "item.rocks.rock": "Stone Rock",
"item.rocks.sand_rock": "Sandstone Rock", "item.rocks.sand_rock": "Sandstone Rock",
"item.rocks.sandstone_splitter": "Sandstone Fragment", "item.rocks.sandstone_splitter": "Sandstone Splitter",
"item.rocks.seashell": "Seashell", "item.rocks.seashell": "Seashell",
"item.rocks.soul_soil_rock": "Soul Soil Rock", "item.rocks.soul_soil_rock": "Soul Soil Rock",
"item.rocks.soul_soil_splitter": "Soul Soil Fragment", "item.rocks.soul_soil_splitter": "Soul Soil Splitter",
"item.rocks.spruce_stick": "Spruce Stick", "item.rocks.spruce_stick": "Spruce Stick",
"item.rocks.starfish": "Starfish", "item.rocks.starfish": "Starfish",
"item.rocks.warped_stick": "Warped Stick", "item.rocks.warped_stick": "Warped Stick",
@@ -74,8 +74,6 @@
"rocks.midnightconfig.category.sticks": "Sticks", "rocks.midnightconfig.category.sticks": "Sticks",
"rocks.midnightconfig.enablePolymerMode": "Enable Polymer Mode", "rocks.midnightconfig.enablePolymerMode": "Enable Polymer Mode",
"rocks.midnightconfig.enablePolymerMode.tooltip": "Allows the mod to work fully server-sided when used in combination with Polymer and FactoryTools", "rocks.midnightconfig.enablePolymerMode.tooltip": "Allows the mod to work fully server-sided when used in combination with Polymer and FactoryTools",
"rocks.midnightconfig.forcePolymerMode": "Force Polymer Mode",
"rocks.midnightconfig.forcePolymerMode.tooltip": "Also enables Polymer mode for clients that have ThisRocks! installed",
"rocks.midnightconfig.geyserLevitation": "Geyser Levitation", "rocks.midnightconfig.geyserLevitation": "Geyser Levitation",
"rocks.midnightconfig.needs_restart": "§cRestart the game after changing options here!", "rocks.midnightconfig.needs_restart": "§cRestart the game after changing options here!",
"rocks.midnightconfig.needs_restart1": "§cRestart the game after changing options here!", "rocks.midnightconfig.needs_restart1": "§cRestart the game after changing options here!",

View File

@@ -1,6 +1,6 @@
{ {
"parent": "rocks:item/splitter_base", "parent": "rocks:item/splitter_base",
"textures": { "textures": {
"0": "minecraft:block/cobblestone" "0": "minecraft:block/stone"
} }
} }

View File

@@ -13,7 +13,7 @@
}, },
"has_the_recipe": { "has_the_recipe": {
"conditions": { "conditions": {
"recipe": "rocks:andesite_from_splitter" "recipe": "minecraft:andesite_from_splitter"
}, },
"trigger": "minecraft:recipe_unlocked" "trigger": "minecraft:recipe_unlocked"
} }
@@ -26,7 +26,7 @@
], ],
"rewards": { "rewards": {
"recipes": [ "recipes": [
"rocks:andesite_from_splitter" "minecraft:andesite_from_splitter"
] ]
} }
} }

View File

@@ -13,7 +13,7 @@
}, },
"has_the_recipe": { "has_the_recipe": {
"conditions": { "conditions": {
"recipe": "rocks:diorite_from_splitter" "recipe": "minecraft:diorite_from_splitter"
}, },
"trigger": "minecraft:recipe_unlocked" "trigger": "minecraft:recipe_unlocked"
} }
@@ -26,7 +26,7 @@
], ],
"rewards": { "rewards": {
"recipes": [ "recipes": [
"rocks:diorite_from_splitter" "minecraft:diorite_from_splitter"
] ]
} }
} }

View File

@@ -13,7 +13,7 @@
}, },
"has_the_recipe": { "has_the_recipe": {
"conditions": { "conditions": {
"recipe": "rocks:end_stone_from_splitter" "recipe": "minecraft:end_stone_from_splitter"
}, },
"trigger": "minecraft:recipe_unlocked" "trigger": "minecraft:recipe_unlocked"
} }
@@ -26,7 +26,7 @@
], ],
"rewards": { "rewards": {
"recipes": [ "recipes": [
"rocks:end_stone_from_splitter" "minecraft:end_stone_from_splitter"
] ]
} }
} }

View File

@@ -13,7 +13,7 @@
}, },
"has_the_recipe": { "has_the_recipe": {
"conditions": { "conditions": {
"recipe": "rocks:granite_from_splitter" "recipe": "minecraft:granite_from_splitter"
}, },
"trigger": "minecraft:recipe_unlocked" "trigger": "minecraft:recipe_unlocked"
} }
@@ -26,7 +26,7 @@
], ],
"rewards": { "rewards": {
"recipes": [ "recipes": [
"rocks:granite_from_splitter" "minecraft:granite_from_splitter"
] ]
} }
} }

View File

@@ -13,7 +13,7 @@
}, },
"has_the_recipe": { "has_the_recipe": {
"conditions": { "conditions": {
"recipe": "rocks:ice_from_splitter" "recipe": "minecraft:ice_from_splitter"
}, },
"trigger": "minecraft:recipe_unlocked" "trigger": "minecraft:recipe_unlocked"
} }
@@ -26,7 +26,7 @@
], ],
"rewards": { "rewards": {
"recipes": [ "recipes": [
"rocks:ice_from_splitter" "minecraft:ice_from_splitter"
] ]
} }
} }

View File

@@ -13,7 +13,7 @@
}, },
"has_the_recipe": { "has_the_recipe": {
"conditions": { "conditions": {
"recipe": "rocks:netherrack_from_splitter" "recipe": "minecraft:netherrack_from_splitter"
}, },
"trigger": "minecraft:recipe_unlocked" "trigger": "minecraft:recipe_unlocked"
} }
@@ -26,7 +26,7 @@
], ],
"rewards": { "rewards": {
"recipes": [ "recipes": [
"rocks:netherrack_from_splitter" "minecraft:netherrack_from_splitter"
] ]
} }
} }

View File

@@ -13,7 +13,7 @@
}, },
"has_the_recipe": { "has_the_recipe": {
"conditions": { "conditions": {
"recipe": "rocks:red_sandstone_from_splitter" "recipe": "minecraft:red_sandstone_from_splitter"
}, },
"trigger": "minecraft:recipe_unlocked" "trigger": "minecraft:recipe_unlocked"
} }
@@ -26,7 +26,7 @@
], ],
"rewards": { "rewards": {
"recipes": [ "recipes": [
"rocks:red_sandstone_from_splitter" "minecraft:red_sandstone_from_splitter"
] ]
} }
} }

View File

@@ -13,7 +13,7 @@
}, },
"has_the_recipe": { "has_the_recipe": {
"conditions": { "conditions": {
"recipe": "rocks:sandstone_from_splitter" "recipe": "minecraft:sandstone_from_splitter"
}, },
"trigger": "minecraft:recipe_unlocked" "trigger": "minecraft:recipe_unlocked"
} }
@@ -26,7 +26,7 @@
], ],
"rewards": { "rewards": {
"recipes": [ "recipes": [
"rocks:sandstone_from_splitter" "minecraft:sandstone_from_splitter"
] ]
} }
} }

View File

@@ -13,7 +13,7 @@
}, },
"has_the_recipe": { "has_the_recipe": {
"conditions": { "conditions": {
"recipe": "rocks:soul_soil_from_splitter" "recipe": "minecraft:soul_soil_from_splitter"
}, },
"trigger": "minecraft:recipe_unlocked" "trigger": "minecraft:recipe_unlocked"
} }
@@ -26,7 +26,7 @@
], ],
"rewards": { "rewards": {
"recipes": [ "recipes": [
"rocks:soul_soil_from_splitter" "minecraft:soul_soil_from_splitter"
] ]
} }
} }

View File

@@ -13,7 +13,7 @@
}, },
"has_the_recipe": { "has_the_recipe": {
"conditions": { "conditions": {
"recipe": "rocks:cobblestone_from_splitter" "recipe": "minecraft:stone_from_splitter"
}, },
"trigger": "minecraft:recipe_unlocked" "trigger": "minecraft:recipe_unlocked"
} }
@@ -26,7 +26,7 @@
], ],
"rewards": { "rewards": {
"recipes": [ "recipes": [
"rocks:cobblestone_from_splitter" "minecraft:stone_from_splitter"
] ]
} }
} }

View File

@@ -9,6 +9,6 @@
], ],
"result": { "result": {
"count": 1, "count": 1,
"id": "minecraft:cobblestone" "id": "minecraft:stone"
} }
} }

View File

@@ -11,6 +11,7 @@ import eu.midnightdust.motschen.rocks.config.RocksConfig;
import eu.midnightdust.motschen.rocks.networking.HelloPayload; import eu.midnightdust.motschen.rocks.networking.HelloPayload;
import eu.midnightdust.motschen.rocks.util.RockType; import eu.midnightdust.motschen.rocks.util.RockType;
import eu.midnightdust.motschen.rocks.util.StickType; import eu.midnightdust.motschen.rocks.util.StickType;
import eu.midnightdust.motschen.rocks.util.geyser.GeyserUtil;
import eu.midnightdust.motschen.rocks.util.polymer.PolyUtil; import eu.midnightdust.motschen.rocks.util.polymer.PolyUtil;
import eu.midnightdust.motschen.rocks.world.*; import eu.midnightdust.motschen.rocks.world.*;
import net.fabricmc.api.ModInitializer; import net.fabricmc.api.ModInitializer;
@@ -19,6 +20,7 @@ import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry;
import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents; import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents;
import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@@ -43,6 +45,7 @@ import static eu.midnightdust.motschen.rocks.util.polymer.PolyUtil.*;
public class RocksMain implements ModInitializer { public class RocksMain implements ModInitializer {
public static final String MOD_ID = "rocks"; public static final String MOD_ID = "rocks";
public static boolean polymerMode = hasRequiredPolymerModules(); public static boolean polymerMode = hasRequiredPolymerModules();
public static boolean hasGeyserMC = PlatformFunctions.isModLoaded("geyser-fabric") || PlatformFunctions.isModLoaded("geyser-neoforge");
public static List<ServerPlayerEntity> playersWithMod = new ArrayList<>(); public static List<ServerPlayerEntity> playersWithMod = new ArrayList<>();
public static final EnumProperty<RockVariation> ROCK_VARIATION = EnumProperty.of("variation", RockVariation.class); public static final EnumProperty<RockVariation> ROCK_VARIATION = EnumProperty.of("variation", RockVariation.class);
@@ -73,27 +76,26 @@ public class RocksMain implements ModInitializer {
@Override @Override
public void onInitialize() { public void onInitialize() {
RocksConfig.init(MOD_ID, RocksConfig.class); RocksConfig.init(MOD_ID, RocksConfig.class);
if (polymerMode) polymerMode = RocksConfig.enablePolymerMode && (RocksConfig.forcePolymerMode || !PlatformFunctions.isClientEnv()); if (polymerMode) polymerMode = RocksConfig.enablePolymerMode && !PlatformFunctions.isClientEnv();
PayloadTypeRegistry.playC2S().register(HelloPayload.PACKET_ID, HelloPayload.codec); PayloadTypeRegistry.playC2S().register(HelloPayload.PACKET_ID, HelloPayload.codec);
ServerPlayNetworking.registerGlobalReceiver(HelloPayload.PACKET_ID, (payload, context) -> { ServerPlayNetworking.registerGlobalReceiver(HelloPayload.PACKET_ID, (payload, context) -> {
if (!RocksConfig.forcePolymerMode) { playersWithMod.add(context.player());
playersWithMod.add(context.player()); if (polymerMode) PolyUtil.hideElementHolders(context.player());
if (polymerMode) PolyUtil.hideElementHolders(context.player());
}
}); });
ServerPlayConnectionEvents.DISCONNECT.register((playNetworkHandler, server) -> { ServerPlayConnectionEvents.DISCONNECT.register((playNetworkHandler, server) -> {
playersWithMod.remove(playNetworkHandler.player); playersWithMod.remove(playNetworkHandler.player);
}); });
if (polymerMode) PolyUtil.init(); if (polymerMode) PolyUtil.init();
if (hasGeyserMC) GeyserUtil.init(this);
for (RockType type : RockType.values()) { for (RockType type : RockType.values()) {
Identifier id = id(type.getName()); Identifier id = id(type.getName());
rocksByType.put(type, registerBlockWithItem(id, polymerMode ? newRockPolymer(id) : new Rock(id))); rocksByType.put(type, registerBlockWithItem(id, polymerMode ? newRockPolymer(id) : new Rock(id)));
if (type != RockType.GRAVEL) if (type != RockType.GRAVEL)
splittersByType.put(type, registerItem(id(type.getFragment().getName()), simpleItem(id(type.getFragment().getName())))); splittersByType.put(type, registerItem(id(type.getSplitterName()), simpleItem(id(type.getSplitterName()))));
} }
for (StickType type : StickType.values()) { for (StickType type : StickType.values()) {
Identifier id = id(type.getName()+"_stick"); Identifier id = id(type.getName()+"_stick");
@@ -138,4 +140,7 @@ public class RocksMain implements ModInitializer {
Registry.register(Registries.ITEM_GROUP, ROCKS_GROUP, RocksGroup); Registry.register(Registries.ITEM_GROUP, ROCKS_GROUP, RocksGroup);
} }
} }
public static boolean isOnBedrock(PlayerEntity player) {
return player != null && hasGeyserMC && GeyserUtil.isOnBedrock(player.getUuid());
}
} }

View File

@@ -22,7 +22,7 @@ public class NetherGeyserBlockEntity extends BlockEntity {
} }
public static void tick(World world, BlockPos pos, BlockState state, NetherGeyserBlockEntity blockEntity) { public static void tick(World world, BlockPos pos, BlockState state, NetherGeyserBlockEntity blockEntity) {
if (world == null || world.isClient()) return; if (world == null || world.isClient) return;
if (world.getBlockState(pos).getBlock() == RocksMain.NetherGeyser) { if (world.getBlockState(pos).getBlock() == RocksMain.NetherGeyser) {
PlayerEntity player = world.getClosestPlayer(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 3, true); PlayerEntity player = world.getClosestPlayer(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 3, true);
PlayerEntity player2 = world.getClosestPlayer(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 1, true); PlayerEntity player2 = world.getClosestPlayer(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 1, true);

View File

@@ -26,12 +26,12 @@ public class OverworldGeyserBlockEntity extends BlockEntity {
} }
public static void tick(World world, BlockPos pos, BlockState state, OverworldGeyserBlockEntity blockEntity) { public static void tick(World world, BlockPos pos, BlockState state, OverworldGeyserBlockEntity blockEntity) {
if (world == null || world.isClient()) return; if (world == null || world.isClient) return;
if (world.getBlockState(pos).getBlock() == RocksMain.Geyser) { if (world.getBlockState(pos).getBlock() == RocksMain.Geyser) {
PlayerEntity player = world.getClosestPlayer(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 3, true); PlayerEntity player = world.getClosestPlayer(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 3, true);
PlayerEntity player2 = world.getClosestPlayer(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 8, true); PlayerEntity player2 = world.getClosestPlayer(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 8, true);
if (RocksConfig.geyserLevitation && player2 != null && (player2.getBlockPos().equals(pos) || world.raycast(new BlockStateRaycastContext(pos.toCenterPos(), player2.getEntityPos(), blockState -> !blockState.isAir() && !blockState.isOf(RocksMain.Geyser))).getType() == HitResult.Type.MISS) && player2.getY() >= pos.getY() && player2.getY() <= pos.getY() + 5 && (pos.getX() <= player2.getX() && pos.getX() + 1 >= player2.getX()) && (pos.getZ() <= player2.getZ() && pos.getZ() + 1 >= player2.getZ())) { if (RocksConfig.geyserLevitation && player2 != null && (player2.getBlockPos().equals(pos) || world.raycast(new BlockStateRaycastContext(pos.toCenterPos(), player2.getPos(), blockState -> !blockState.isAir() && !blockState.isOf(RocksMain.Geyser))).getType() == HitResult.Type.MISS) && player2.getY() >= pos.getY() && player2.getY() <= pos.getY() + 5 && (pos.getX() <= player2.getX() && pos.getX() + 1 >= player2.getX()) && (pos.getZ() <= player2.getZ() && pos.getZ() + 1 >= player2.getZ())) {
player2.addStatusEffect(new StatusEffectInstance(StatusEffects.LEVITATION, 2, 10, true, false, false)); player2.addStatusEffect(new StatusEffectInstance(StatusEffects.LEVITATION, 2, 10, true, false, false));
} }

View File

@@ -30,6 +30,7 @@ public class ItemDisplayNetherGeyserModel extends ConditionalBlockModel {
this.main.setDisplaySize(1, 1); this.main.setDisplaySize(1, 1);
this.main.setScale(new Vector3f(2)); this.main.setScale(new Vector3f(2));
int rotation = pos.hashCode() % 360; int rotation = pos.hashCode() % 360;
System.out.println(pos.hashCode() + " " + rotation + " " + pos.hashCode() % 360);
this.main.setRightRotation(RotationAxis.POSITIVE_Y.rotationDegrees(rotation)); this.main.setRightRotation(RotationAxis.POSITIVE_Y.rotationDegrees(rotation));
this.main.setViewRange(0.75f * (RocksConfig.polymerViewDistance / 100f)); this.main.setViewRange(0.75f * (RocksConfig.polymerViewDistance / 100f));
this.addElement(this.main); this.addElement(this.main);

View File

@@ -13,18 +13,27 @@ import net.minecraft.util.math.RotationAxis;
import net.minecraft.util.math.Vec3d; import net.minecraft.util.math.Vec3d;
import org.joml.Vector3f; import org.joml.Vector3f;
import static eu.midnightdust.motschen.rocks.RocksMain.id; import java.util.HashSet;
import java.util.Set;
import static eu.midnightdust.motschen.rocks.util.polymer.PolyUtil.polymerId;
public class ItemDisplayStarfishModel extends ConditionalBlockModel { public class ItemDisplayStarfishModel extends ConditionalBlockModel {
private final ItemDisplayElement arm; private final Set<ItemDisplayElement> arms = HashSet.newHashSet(5);
public static ItemStack RED; public static ItemStack RED;
public static ItemStack ORANGE; public static ItemStack ORANGE;
public static ItemStack PINK; public static ItemStack PINK;
public static ItemStack RED_FIRST;
public static ItemStack ORANGE_FIRST;
public static ItemStack PINK_FIRST;
public static void initModels() { public static void initModels() {
RED = ItemDisplayElementUtil.getModel(id("block/starfish_red")); RED = ItemDisplayElementUtil.getModel(polymerId("block/starfish_red_arm"));
ORANGE = ItemDisplayElementUtil.getModel(id("block/starfish_orange")); ORANGE = ItemDisplayElementUtil.getModel(polymerId("block/starfish_orange_arm"));
PINK = ItemDisplayElementUtil.getModel(id("block/starfish_pink")); PINK = ItemDisplayElementUtil.getModel(polymerId("block/starfish_pink_arm"));
RED_FIRST = ItemDisplayElementUtil.getModel(polymerId("block/starfish_red_first_arm"));
ORANGE_FIRST = ItemDisplayElementUtil.getModel(polymerId("block/starfish_orange_first_arm"));
PINK_FIRST = ItemDisplayElementUtil.getModel(polymerId("block/starfish_pink_first_arm"));
} }
public ItemDisplayStarfishModel(BlockState state, BlockPos pos) { public ItemDisplayStarfishModel(BlockState state, BlockPos pos) {
@@ -32,13 +41,16 @@ public class ItemDisplayStarfishModel extends ConditionalBlockModel {
int baseRotation = pos.hashCode() % 360; int baseRotation = pos.hashCode() % 360;
double xOffset = ((pos.hashCode() + pos.getX()) % 250 - 125) / 1000f; double xOffset = ((pos.hashCode() + pos.getX()) % 250 - 125) / 1000f;
double zOffset = ((pos.hashCode() + pos.getZ()) % 250 - 125) / 1000f; double zOffset = ((pos.hashCode() + pos.getZ()) % 250 - 125) / 1000f;
arm = ItemDisplayElementUtil.createSimple(modelStack); for (int i = 0; i < 5; i++) {
arm.setDisplaySize(1, 1); var arm = ItemDisplayElementUtil.createSimple(i != 0 ? modelStack : getFirstModel(state));
arm.setScale(new Vector3f(1)); arm.setDisplaySize(1, 1);
arm.setRightRotation(RotationAxis.POSITIVE_Y.rotationDegrees(baseRotation)); arm.setScale(new Vector3f(1));
arm.setOffset(new Vec3d(xOffset, 0, zOffset)); arm.setRightRotation(RotationAxis.POSITIVE_Y.rotationDegrees(baseRotation + 72.5f * i));
arm.setViewRange(0.4f * (RocksConfig.polymerViewDistance / 100f)); arm.setOffset(new Vec3d(xOffset, 0, zOffset));
this.addElement(arm); arm.setViewRange(0.4f * (RocksConfig.polymerViewDistance / 100f));
arms.add(arm);
this.addElement(arm);
}
} }
@Override @Override
@@ -46,7 +58,8 @@ public class ItemDisplayStarfishModel extends ConditionalBlockModel {
if (updateType == BlockAwareAttachment.BLOCK_STATE_UPDATE) { if (updateType == BlockAwareAttachment.BLOCK_STATE_UPDATE) {
var state = this.blockState(); var state = this.blockState();
ItemStack modelStack = getModel(state); ItemStack modelStack = getModel(state);
arm.setItem(modelStack); this.arms.forEach(arm -> arm.setItem(modelStack));
this.arms.stream().findFirst().orElseThrow().setItem(getFirstModel(state));
this.tick(); this.tick();
} }
@@ -58,4 +71,11 @@ public class ItemDisplayStarfishModel extends ConditionalBlockModel {
case PINK -> PINK; case PINK -> PINK;
}; };
} }
private ItemStack getFirstModel(BlockState state) {
return switch (state.get(RocksMain.STARFISH_VARIATION)) {
case RED -> RED_FIRST;
case ORANGE -> ORANGE_FIRST;
case PINK -> PINK_FIRST;
};
}
} }

View File

@@ -52,8 +52,6 @@ public class RocksConfig extends MidnightConfig {
@Entry(category = effects) public static boolean netherGeyserDamage = true; @Entry(category = effects) public static boolean netherGeyserDamage = true;
@Entry(category = effects) public static boolean enablePolymerMode = true; @Entry(category = effects) public static boolean enablePolymerMode = true;
@Entry(category = effects) public static boolean forcePolymerMode = false; @Entry(category = effects, requiredMod = "factorytools", min = 0, max = 200, isSlider = true) public static int polymerViewDistance = 100;
@Condition(requiredModId = "factorytools")
@Entry(category = effects, min = 0, max = 200, isSlider = true) public static int polymerViewDistance = 100;
@Entry(category = effects) public static List<String> biomeExclusions = new ArrayList<>(); @Entry(category = effects) public static List<String> biomeExclusions = new ArrayList<>();
} }

View File

@@ -66,9 +66,8 @@ public abstract class Language extends FabricLanguageProvider {
addBlock(translationBuilder, block, baseTranslation+rockWord); addBlock(translationBuilder, block, baseTranslation+rockWord);
if (type != RockType.GRAVEL) { if (type != RockType.GRAVEL) {
String splitterBaseTranslation = langHelper.translate(type.getFragment().getStoneBlock().getTranslationKey()); Item splitter = Registries.ITEM.get(RocksMain.id(type.getSplitterName()));
Item splitter = Registries.ITEM.get(RocksMain.id(type.getFragment().getName())); translationBuilder.add(splitter, baseTranslation+splitterWord);
translationBuilder.add(splitter, splitterBaseTranslation+splitterWord);
} }
} }
for (StickType type : StickType.values()) { for (StickType type : StickType.values()) {
@@ -95,7 +94,7 @@ public abstract class Language extends FabricLanguageProvider {
public void generateTranslations(RegistryWrapper.WrapperLookup registryLookup, TranslationBuilder translationBuilder) { public void generateTranslations(RegistryWrapper.WrapperLookup registryLookup, TranslationBuilder translationBuilder) {
translationBuilder.add("itemGroup.rocks.rocks","This Rocks!"); translationBuilder.add("itemGroup.rocks.rocks","This Rocks!");
createRepeatedTranslations(translationBuilder, " Rock", " Fragment", " Stick"); createRepeatedTranslations(translationBuilder, " Rock", " Splitter", " Stick");
addBlock(translationBuilder, RocksMain.Geyser, "Geyser"); addBlock(translationBuilder, RocksMain.Geyser, "Geyser");
addBlock(translationBuilder, RocksMain.NetherGeyser, "Nether Geyser"); addBlock(translationBuilder, RocksMain.NetherGeyser, "Nether Geyser");
@@ -126,8 +125,6 @@ public abstract class Language extends FabricLanguageProvider {
midnightconfig(translationBuilder, "enablePolymerMode", "Enable Polymer Mode"); midnightconfig(translationBuilder, "enablePolymerMode", "Enable Polymer Mode");
midnightconfig(translationBuilder, "enablePolymerMode.tooltip", "Allows the mod to work fully server-sided when used in combination with Polymer and FactoryTools"); midnightconfig(translationBuilder, "enablePolymerMode.tooltip", "Allows the mod to work fully server-sided when used in combination with Polymer and FactoryTools");
midnightconfig(translationBuilder, "forcePolymerMode", "Force Polymer Mode");
midnightconfig(translationBuilder, "forcePolymerMode.tooltip", "Also enables Polymer mode for clients that have ThisRocks! installed");
midnightconfig(translationBuilder, "polymerViewDistance", "Polymer View Distance"); midnightconfig(translationBuilder, "polymerViewDistance", "Polymer View Distance");
} }
} }
@@ -173,8 +170,6 @@ public abstract class Language extends FabricLanguageProvider {
midnightconfig(translationBuilder, "enablePolymerMode", "Aktiviere Polymer-Modus"); midnightconfig(translationBuilder, "enablePolymerMode", "Aktiviere Polymer-Modus");
midnightconfig(translationBuilder, "enablePolymerMode.tooltip", "Erlaubt der Mod, komplett serverseitig zu funktionieren, wenn Polymer und FactoryTools installiert sind"); midnightconfig(translationBuilder, "enablePolymerMode.tooltip", "Erlaubt der Mod, komplett serverseitig zu funktionieren, wenn Polymer und FactoryTools installiert sind");
midnightconfig(translationBuilder, "forcePolymerMode", "Erzwinge Polymer-Modus");
midnightconfig(translationBuilder, "forcePolymerMode.tooltip", "Aktiviert den Polymer-Modus auch für Clients, die die ThisRocks! installiert haben");
midnightconfig(translationBuilder, "polymerViewDistance", "Polymer-Sichtweite"); midnightconfig(translationBuilder, "polymerViewDistance", "Polymer-Sichtweite");
} }
} }

View File

@@ -9,13 +9,9 @@ import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.client.data.*; import net.minecraft.client.data.*;
import net.minecraft.client.render.item.model.ItemModel; import net.minecraft.client.render.item.model.ItemModel;
import net.minecraft.client.render.model.json.ModelVariant;
import net.minecraft.client.render.model.json.WeightedVariant;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.registry.Registries; import net.minecraft.registry.Registries;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import net.minecraft.util.collection.Pool;
import net.minecraft.util.math.AxisRotation;
import java.util.*; import java.util.*;
@@ -53,8 +49,8 @@ public class Models extends FabricModelProvider {
registerParentedItemModel(itemModelGenerator, item, getItemId("rock_base"), type.getStoneBlock()); registerParentedItemModel(itemModelGenerator, item, getItemId("rock_base"), type.getStoneBlock());
if (type != RockType.GRAVEL) { if (type != RockType.GRAVEL) {
Item splitter = Registries.ITEM.get(RocksMain.id(type.getFragment().getName())); Item splitter = Registries.ITEM.get(RocksMain.id(type.getSplitterName()));
registerParentedItemModel(itemModelGenerator, splitter, getItemId("splitter_base"), type.getFragment().getStoneBlock()); registerParentedItemModel(itemModelGenerator, splitter, getItemId("splitter_base"), type.getStoneBlock());
} }
} }
for (StickType type : StickType.values()) { for (StickType type : StickType.values()) {
@@ -76,18 +72,18 @@ public class Models extends FabricModelProvider {
public final void registerStarfishItemVariations(ItemModelGenerator modelGenerator, Block starfish) { public final void registerStarfishItemVariations(ItemModelGenerator modelGenerator, Block starfish) {
Map<StarfishVariation, ItemModel.Unbaked> variantMap = new HashMap<>(); Map<StarfishVariation, ItemModel.Unbaked> variantMap = new HashMap<>();
for (StarfishVariation variation : StarfishVariation.values()) { for (StarfishVariation variation : StarfishVariation.values()) {
variantMap.put(variation, ItemModels.basic(ModelIds.getItemSubModelId(starfish.asItem(), "_"+variation.toString()))); variantMap.put(variation, ItemModels.basic(ModelIds.getBlockSubModelId(starfish, "_"+variation.toString())));
} }
modelGenerator.output.accept(starfish.asItem(), ItemModels.select(RocksMain.STARFISH_VARIATION, ItemModels.basic(ModelIds.getItemModelId(starfish.asItem())), variantMap)); modelGenerator.output.accept(starfish.asItem(), ItemModels.select(RocksMain.STARFISH_VARIATION, ItemModels.basic(ModelIds.getItemModelId(starfish.asItem())), variantMap));
} }
public static WeightedVariant getRandomRotationWeightedVariant(Identifier modelId) { public static <T> List<BlockStateVariant> getRandomRotationVariants(VariantSetting<T> baseSettings, T value) {
Pool.Builder<ModelVariant> list = Pool.builder(); List<BlockStateVariant> list = new ArrayList<>();
for (AxisRotation rotation : AxisRotation.values()) { for (VariantSettings.Rotation rotation : VariantSettings.Rotation.values()) {
ModelVariant rotatedVariant = new ModelVariant(modelId, ModelVariant.ModelState.DEFAULT.setRotationY(rotation)); BlockStateVariant rotatedVariant = BlockStateVariant.create().put(baseSettings, value);
list.add(rotatedVariant); list.add(rotatedVariant.put(VariantSettings.Y, rotation));
} }
return new WeightedVariant(list.build()); return list;
} }
private static class RockModel { private static class RockModel {
@@ -101,10 +97,10 @@ public class Models extends FabricModelProvider {
modelGenerator.blockStateCollector.accept(createBlockState(rockBlock, new Identifier[]{largeRock, mediumRock, smallRock, tinyRock})); modelGenerator.blockStateCollector.accept(createBlockState(rockBlock, new Identifier[]{largeRock, mediumRock, smallRock, tinyRock}));
} }
private static BlockModelDefinitionCreator createBlockState(Block rockBlock, Identifier[] modelIds) { private static BlockStateSupplier createBlockState(Block rockBlock, Identifier[] modelIds) {
return VariantsBlockModelDefinitionCreator.of(rockBlock) return VariantsBlockStateSupplier.create(rockBlock)
.with(BlockStateVariantMap.models(RocksMain.ROCK_VARIATION) .coordinate(BlockStateVariantMap.create(RocksMain.ROCK_VARIATION)
.generate(variation -> getRandomRotationWeightedVariant(modelIds[3 - variation.ordinal()])) .registerVariants(variation -> getRandomRotationVariants(VariantSettings.MODEL, modelIds[3 - variation.ordinal()]))
); );
} }
} }
@@ -118,10 +114,10 @@ public class Models extends FabricModelProvider {
modelGenerator.blockStateCollector.accept(createBlockState(stickBlock, new Identifier[]{largeRock, mediumRock, smallRock})); modelGenerator.blockStateCollector.accept(createBlockState(stickBlock, new Identifier[]{largeRock, mediumRock, smallRock}));
} }
private static BlockModelDefinitionCreator createBlockState(Block stickBlock, Identifier[] modelIds) { private static BlockStateSupplier createBlockState(Block stickBlock, Identifier[] modelIds) {
return VariantsBlockModelDefinitionCreator.of(stickBlock) return VariantsBlockStateSupplier.create(stickBlock)
.with(BlockStateVariantMap.models(RocksMain.STICK_VARIATION) .coordinate(BlockStateVariantMap.create(RocksMain.STICK_VARIATION)
.generate(variation -> getRandomRotationWeightedVariant(modelIds[2 - variation.ordinal()])) .registerVariants(variation -> getRandomRotationVariants(VariantSettings.MODEL, modelIds[2 - variation.ordinal()]))
); );
} }
} }

View File

@@ -39,12 +39,11 @@ public class Recipes extends FabricRecipeProvider {
} }
private void generateCrafting(RecipeExporter exporter) { private void generateCrafting(RecipeExporter exporter) {
RocksMain.splittersByType.forEach(((rockType, splitter) -> { RocksMain.splittersByType.forEach(((rockType, splitter) -> {
Identifier stoneID = rockType.getFragment().getStoneId();
ShapelessRecipeJsonBuilder.create(registries.getOrThrow(RegistryKeys.ITEM), RecipeCategory.BUILDING_BLOCKS, Registries.BLOCK.get(stoneID).asItem()) ShapelessRecipeJsonBuilder.create(registries.getOrThrow(RegistryKeys.ITEM), RecipeCategory.BUILDING_BLOCKS, Registries.BLOCK.get(Identifier.ofVanilla(rockType.name().toLowerCase())).asItem())
.input(splitter, 4) .input(splitter, 4)
.criterion(RecipeGenerator.hasItem(splitter), this.conditionsFromItem(splitter)) .criterion(RecipeGenerator.hasItem(splitter), this.conditionsFromItem(splitter))
.offerTo(exporter, stoneID.getPath()+"_from_splitter"); .offerTo(exporter, rockType.name().toLowerCase()+"_from_splitter");
})); }));
} }
} }

View File

@@ -14,8 +14,8 @@ import net.minecraft.util.Identifier;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import xyz.nucleoid.packettweaker.PacketContext; import xyz.nucleoid.packettweaker.PacketContext;
import static eu.midnightdust.motschen.rocks.RocksMain.id;
import static eu.midnightdust.motschen.rocks.util.polymer.PolyUtil.hasModOnClient; import static eu.midnightdust.motschen.rocks.util.polymer.PolyUtil.hasModOnClient;
import static eu.midnightdust.motschen.rocks.util.polymer.PolyUtil.polymerId;
public class StarfishItemPolymer extends BlockItem implements PolymerItem { public class StarfishItemPolymer extends BlockItem implements PolymerItem {
private final Item polymerItem; private final Item polymerItem;
@@ -30,7 +30,7 @@ public class StarfishItemPolymer extends BlockItem implements PolymerItem {
var state = itemStack.getComponents().get(DataComponentTypes.BLOCK_STATE); var state = itemStack.getComponents().get(DataComponentTypes.BLOCK_STATE);
if (state != null && !state.isEmpty()) { if (state != null && !state.isEmpty()) {
StarfishVariation variation = state.getValue(RocksMain.STARFISH_VARIATION); StarfishVariation variation = state.getValue(RocksMain.STARFISH_VARIATION);
if (variation != null) return ResourcePackExtras.bridgeModel(id("item/starfish_"+variation)); if (variation != null) return ResourcePackExtras.bridgeModel(polymerId("item/"+variation + "_starfish"));
} }
return itemStack.get(DataComponentTypes.ITEM_MODEL); return itemStack.get(DataComponentTypes.ITEM_MODEL);
} }

View File

@@ -0,0 +1,22 @@
package eu.midnightdust.motschen.rocks.mixin;
import com.google.gson.JsonObject;
import net.minecraft.client.render.model.json.ModelElement;
import net.minecraft.util.JsonHelper;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
@Mixin(value = ModelElement.Deserializer.class, priority = 2000)
public class MixinModelElementDeserializer {
/**
* @author Motschen
* @reason Not cancellable
* Unlimited rotation angles for starfish
* Inspired by <a href="https://github.com/CottonMC/ModelsUnlocked/blob/master/src/main/java/io/github/cottonmc/modelsunlocked/mixin/ModelElementDeserializerMixin.java">ModelsUnlocked</a>
*/
@Overwrite
private float deserializeRotationAngle(JsonObject json) {
return (JsonHelper.getFloat(json, "angle"));
}
}

View File

@@ -23,11 +23,14 @@ public enum RockType {
public String getName() { public String getName() {
return this.name; return this.name;
} }
public String getSplitterName() {
String splitterName = this.name().toLowerCase()+ "_splitter";
if (this.equals(RockType.STONE)) splitterName = "cobblestone_splitter";
return splitterName;
}
public Identifier getStoneId() { public Identifier getStoneId() {
return Identifier.ofVanilla(this.toString().toLowerCase()); return Identifier.ofVanilla(this.toString().toLowerCase());
} }
public Block getStoneBlock() { public Block getStoneBlock() {
return Registries.BLOCK.get(getStoneId()); return Registries.BLOCK.get(getStoneId());
} }
@@ -50,29 +53,4 @@ public enum RockType {
.replace("large_", "") .replace("large_", "")
.equals(type.getName())).findFirst().orElse(RockType.STONE); .equals(type.getName())).findFirst().orElse(RockType.STONE);
} }
public Fragment getFragment() {
return new Fragment(this);
}
public static class Fragment {
private final RockType type;
Fragment(RockType type) {
this.type = type;
}
public String getName() {
String splitterName = type.name().toLowerCase()+ "_splitter";
if (type.equals(RockType.STONE)) splitterName = "cobblestone_splitter";
return splitterName;
}
public Identifier getStoneId() {
if (type==STONE) return Identifier.ofVanilla("cobblestone");
return Identifier.ofVanilla(type.toString().toLowerCase());
}
public Block getStoneBlock() {
return Registries.BLOCK.get(getStoneId());
}
}
} }

View File

@@ -0,0 +1,104 @@
package eu.midnightdust.motschen.rocks.util.geyser;
import eu.midnightdust.motschen.rocks.RocksMain;
import eu.midnightdust.motschen.rocks.blockstates.RockVariation;
import eu.midnightdust.motschen.rocks.util.RockType;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.registry.Registries;
import net.minecraft.state.property.Properties;
import org.geysermc.event.subscribe.Subscribe;
import org.geysermc.geyser.api.block.custom.CustomBlockData;
import org.geysermc.geyser.api.block.custom.CustomBlockPermutation;
import org.geysermc.geyser.api.block.custom.NonVanillaCustomBlockData;
import org.geysermc.geyser.api.block.custom.component.BoxComponent;
import org.geysermc.geyser.api.block.custom.component.CustomBlockComponents;
import org.geysermc.geyser.api.block.custom.component.GeometryComponent;
import org.geysermc.geyser.api.block.custom.component.MaterialInstance;
import org.geysermc.geyser.api.block.custom.nonvanilla.JavaBlockState;
import org.geysermc.geyser.api.event.lifecycle.GeyserDefineCustomBlocksEvent;
import org.geysermc.geyser.api.extension.Extension;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
import java.util.stream.Collectors;
import static eu.midnightdust.motschen.rocks.RocksMain.*;
public class GeyserBlocks implements Extension {
static final BoxComponent SHAPE = new BoxComponent(-8, 0, -8, 8, 2, 8);
static final BoxComponent SHAPE_LARGE = new BoxComponent(-8, 0, -8, 8, 3, 8);
/*
Bedrock follows a very different design than Java.
A rock here will contain a property that defines its stone material type, rather than the variation.
Each variation will be registered as one such rock block.
*/
@Subscribe
public void onDefineCustomBlocks(GeyserDefineCustomBlocksEvent event) {
for (RockVariation variation : RockVariation.values()) {
CustomBlockComponents components = CustomBlockComponents.builder()
.collisionBox(BoxComponent.emptyBox())
.selectionBox(variation == RockVariation.LARGE ? SHAPE_LARGE : SHAPE)
.geometry(GeometryComponent.builder()
.identifier(String.format("geometry.rocks.%s_rock", variation.asString()))
.build())
.lightEmission(0)
.lightDampening(0)
.friction(1f)
.build();
CustomBlockData rockVariant = NonVanillaCustomBlockData.builder()
.name(variation.asString()+"_rock")
.namespace(MOD_ID)
.stringProperty("TYPE", Arrays.stream(RockType.values()).map(RockType::getName).collect(Collectors.toList()))
.components(components)
.permutations(createRockPermutations())
.includedInCreativeInventory(true)
.build();
event.register(rockVariant);
event.registerItemOverride(id(RockType.STONE.getName()).toString(), rockVariant);
for (RockType type : RockType.values()) {
String javaIdentifier = String.format("%s:%s[variation=%s]", MOD_ID, type.getName(), variation.asString());
BlockState state = RocksMain.rocksByType.get(type).getDefaultState().with(ROCK_VARIATION, variation);
JavaBlockState javaBlockState = JavaBlockState.builder()
.javaId(Block.getRawIdFromState(state))
.identifier(javaIdentifier)
.stateGroupId(Registries.BLOCK.getRawId(rocksByType.get(type)))
.waterlogged(state.contains(Properties.WATERLOGGED) && state.get(Properties.WATERLOGGED))
.canBreakWithHand(true)
.build();
event.registerOverride(javaBlockState, rockVariant.blockStateBuilder()
.stringProperty("TYPE", type.getName())
.build());
}
}
}
private List<CustomBlockPermutation> createRockPermutations() {
List<CustomBlockPermutation> permutations = new ArrayList<>();
for (RockType type : RockType.values()) {
MaterialInstance material = MaterialInstance.builder()
.texture(String.format("minecraft.%s", type.name().toLowerCase(Locale.ROOT)))
.renderMethod("opaque")
.ambientOcclusion(true)
.build();
CustomBlockComponents components = CustomBlockComponents.builder()
.materialInstance("up", material)
.materialInstance("down", material)
.materialInstance("north", material)
.materialInstance("south", material)
.materialInstance("east", material)
.materialInstance("west", material)
.build();
String condition = String.format("query.block_property('%s') == %s", "TYPE", type.getName());
permutations.add(new CustomBlockPermutation(components, condition));
}
return permutations;
}
}

View File

@@ -0,0 +1,40 @@
package eu.midnightdust.motschen.rocks.util.geyser;
import eu.midnightdust.motschen.rocks.RocksMain;
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
import net.fabricmc.loader.api.FabricLoader;
import org.geysermc.event.subscribe.Subscribe;
import org.geysermc.geyser.api.GeyserApi;
import org.geysermc.geyser.api.connection.GeyserConnection;
import org.geysermc.geyser.api.event.EventRegistrar;
import org.geysermc.geyser.api.event.lifecycle.GeyserLoadResourcePacksEvent;
import java.net.URI;
import java.nio.file.Path;
import java.util.UUID;
import static eu.midnightdust.motschen.rocks.RocksMain.MOD_ID;
public class GeyserUtil implements EventRegistrar {
static GeyserApi geyser;
public static void init(RocksMain mainEntryPoint) {
//GeyserConnection connection = GeyserApi.api().connectionByUuid(uuid);
ServerLifecycleEvents.SERVER_STARTING.register((server) -> {
geyser = GeyserApi.api();
EventRegistrar registrar = new GeyserUtil();
geyser.eventBus().register(registrar, registrar);
geyser.eventBus().register(registrar, new GeyserBlocks()); // register your mod & this class instance as a listener
});
}
@Subscribe
public void onGeyserLoadResourcePacksEvent(GeyserLoadResourcePacksEvent event) {
//logger().info("Loading: " + event.resourcePacks().size() + " resource packs.");
event.resourcePacks().add(FabricLoader.getInstance().getModContainer(MOD_ID).get().findPath("bedrock/rocks.zip").get());
// you could add a resource pack with event.resourcePacks().add(path-to-pack)
}
public static boolean isOnBedrock(UUID uuid) {
if (geyser == null) return false;
return geyser.isBedrockPlayer(uuid);
}
}

View File

@@ -52,7 +52,9 @@ public class PolyUtil {
if (PASSABLE_WATERLOGGED_BLOCK == null) SMALL_BLOCK = Blocks.BARRIER.getDefaultState().with(WATERLOGGED, true); if (PASSABLE_WATERLOGGED_BLOCK == null) SMALL_BLOCK = Blocks.BARRIER.getDefaultState().with(WATERLOGGED, true);
PolymerResourcePackUtils.addModAssets(MOD_ID); PolymerResourcePackUtils.addModAssets(MOD_ID);
ResourcePackExtras.forDefault().addBridgedModelsFolder(id("block"), id("item")); ResourcePackExtras.forDefault().addBridgedModelsFolder(id("block"), id("rocks"));
ResourcePackExtras.forDefault().addBridgedModelsFolder(polymerId("block"), polymerId("polymer-rocks"));
ResourcePackExtras.forDefault().addBridgedModelsFolder(polymerId("item"), polymerId("polymer-rocks"));
ItemDisplayNetherGeyserModel.initModels(); ItemDisplayNetherGeyserModel.initModels();
ItemDisplayOverworldGeyserModel.initModels(); ItemDisplayOverworldGeyserModel.initModels();
@@ -62,9 +64,12 @@ public class PolyUtil {
ItemDisplayStarfishModel.initModels(); ItemDisplayStarfishModel.initModels();
ItemDisplayStickModel.initModels(); ItemDisplayStickModel.initModels();
} }
public static Identifier polymerId(String path) {
return Identifier.of("polymer-rocks", path);
}
public static boolean hasModOnClient(ServerPlayerEntity player) { public static boolean hasModOnClient(ServerPlayerEntity player) {
return playersWithMod.contains(player); return playersWithMod.contains(player) || isOnBedrock(player);
} }
public static Item polymerBlockItem(Block block, Identifier id) { public static Item polymerBlockItem(Block block, Identifier id) {
@@ -74,6 +79,7 @@ public class PolyUtil {
public static Item simplePolymerItem(Identifier id) { public static Item simplePolymerItem(Identifier id) {
return new SimplePolymerItem(new Item.Settings().registryKey(RegistryKey.of(RegistryKeys.ITEM, id)), Items.FLINT, true); return new SimplePolymerItem(new Item.Settings().registryKey(RegistryKey.of(RegistryKeys.ITEM, id)), Items.FLINT, true);
//return new ModeledItem(Items.FLINT, new Item.Settings());
} }
public static void registerPolymerGroup() { public static void registerPolymerGroup() {

View File

@@ -9,7 +9,7 @@ import net.minecraft.block.BlockState;
import net.minecraft.registry.Registries; import net.minecraft.registry.Registries;
import net.minecraft.registry.Registry; import net.minecraft.registry.Registry;
import net.minecraft.state.property.Properties; import net.minecraft.state.property.Properties;
import net.minecraft.util.collection.Pool; import net.minecraft.util.collection.DataPool;
import net.minecraft.world.gen.ProbabilityConfig; import net.minecraft.world.gen.ProbabilityConfig;
import net.minecraft.world.gen.feature.Feature; import net.minecraft.world.gen.feature.Feature;
import net.minecraft.world.gen.feature.FeatureConfig; import net.minecraft.world.gen.feature.FeatureConfig;
@@ -27,17 +27,17 @@ public class FeatureRegistry {
return Registry.register(Registries.FEATURE, name, feature); return Registry.register(Registries.FEATURE, name, feature);
} }
private static final WeightedBlockStateProvider StarfishStates = new WeightedBlockStateProvider(Pool.<BlockState>builder() private static final WeightedBlockStateProvider StarfishStates = new WeightedBlockStateProvider(DataPool.<BlockState>builder()
.add(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION, StarfishVariation.RED).with(Properties.WATERLOGGED, true), 6) .add(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION, StarfishVariation.RED).with(Properties.WATERLOGGED, true), 6)
.add(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.PINK).with(Properties.WATERLOGGED, true), 7) .add(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.PINK).with(Properties.WATERLOGGED, true), 7)
.add(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.ORANGE).with(Properties.WATERLOGGED, true), 2).build()); .add(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.ORANGE).with(Properties.WATERLOGGED, true), 2).build());
private static final WeightedBlockStateProvider SeashellStates = new WeightedBlockStateProvider(Pool.<BlockState>builder() private static final WeightedBlockStateProvider SeashellStates = new WeightedBlockStateProvider(DataPool.<BlockState>builder()
.add(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION, SeashellVariation.YELLOW).with(Properties.WATERLOGGED, true), 7) .add(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION, SeashellVariation.YELLOW).with(Properties.WATERLOGGED, true), 7)
.add(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.PINK).with(Properties.WATERLOGGED, true), 2) .add(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.PINK).with(Properties.WATERLOGGED, true), 2)
.add(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.WHITE).with(Properties.WATERLOGGED, true), 6).build()); .add(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.WHITE).with(Properties.WATERLOGGED, true), 6).build());
private static final WeightedBlockStateProvider GeyserStates = new WeightedBlockStateProvider(Pool.<BlockState>builder() private static final WeightedBlockStateProvider GeyserStates = new WeightedBlockStateProvider(DataPool.<BlockState>builder()
.add(RocksMain.Geyser.getDefaultState().with(Properties.SNOWY, true), 1).build()); .add(RocksMain.Geyser.getDefaultState().with(Properties.SNOWY, true), 1).build());
static { static {

View File

@@ -9,7 +9,7 @@ import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks; import net.minecraft.block.Blocks;
import net.minecraft.registry.Registerable; import net.minecraft.registry.Registerable;
import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.registry.entry.RegistryEntry;
import net.minecraft.util.collection.Pool; import net.minecraft.util.collection.DataPool;
import net.minecraft.util.math.Vec3i; import net.minecraft.util.math.Vec3i;
import net.minecraft.world.gen.ProbabilityConfig; import net.minecraft.world.gen.ProbabilityConfig;
import net.minecraft.world.gen.blockpredicate.BlockPredicate; import net.minecraft.world.gen.blockpredicate.BlockPredicate;
@@ -23,19 +23,19 @@ import static eu.midnightdust.motschen.rocks.util.RegistryUtil.register;
public class MiscFeatures { public class MiscFeatures {
private static final ConfiguredFeature<?, ?> SEASHELL_FEATURE = new ConfiguredFeature<>(Feature.SIMPLE_BLOCK, new SimpleBlockFeatureConfig( private static final ConfiguredFeature<?, ?> SEASHELL_FEATURE = new ConfiguredFeature<>(Feature.SIMPLE_BLOCK, new SimpleBlockFeatureConfig(
new WeightedBlockStateProvider(Pool.<BlockState>builder() new WeightedBlockStateProvider(DataPool.<BlockState>builder()
.add(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.YELLOW), 7) .add(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.YELLOW), 7)
.add(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.PINK), 2) .add(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.PINK), 2)
.add(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.WHITE), 6).build() .add(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.WHITE), 6).build()
))); )));
public static ConfiguredFeature<?, ?> STARFISH_FEATURE = new ConfiguredFeature<>(Feature.SIMPLE_BLOCK, new SimpleBlockFeatureConfig( public static ConfiguredFeature<?, ?> STARFISH_FEATURE = new ConfiguredFeature<>(Feature.SIMPLE_BLOCK, new SimpleBlockFeatureConfig(
new WeightedBlockStateProvider(Pool.<BlockState>builder() new WeightedBlockStateProvider(DataPool.<BlockState>builder()
.add(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.RED), 2) .add(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.RED), 2)
.add(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.PINK), 6) .add(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.PINK), 6)
.add(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.ORANGE), 7).build())) .add(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.ORANGE), 7).build()))
); );
public static ConfiguredFeature<?, ?> PINECONE_FEATURE = new ConfiguredFeature<>(Feature.SIMPLE_BLOCK, new SimpleBlockFeatureConfig( public static ConfiguredFeature<?, ?> PINECONE_FEATURE = new ConfiguredFeature<>(Feature.SIMPLE_BLOCK, new SimpleBlockFeatureConfig(
new WeightedBlockStateProvider(Pool.<BlockState>builder() new WeightedBlockStateProvider(DataPool.<BlockState>builder()
.add(RocksMain.Pinecone.getDefaultState(), 1).build())) .add(RocksMain.Pinecone.getDefaultState(), 1).build()))
); );

View File

@@ -6,7 +6,7 @@ import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks; import net.minecraft.block.Blocks;
import net.minecraft.registry.Registerable; import net.minecraft.registry.Registerable;
import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.registry.entry.RegistryEntry;
import net.minecraft.util.collection.Pool; import net.minecraft.util.collection.DataPool;
import net.minecraft.util.math.Vec3i; import net.minecraft.util.math.Vec3i;
import net.minecraft.world.gen.blockpredicate.BlockPredicate; import net.minecraft.world.gen.blockpredicate.BlockPredicate;
import net.minecraft.world.gen.feature.*; import net.minecraft.world.gen.feature.*;
@@ -19,7 +19,7 @@ import static eu.midnightdust.motschen.rocks.util.RegistryUtil.register;
public class NetherFeatures { public class NetherFeatures {
public static ConfiguredFeature<?, ?> NETHER_GEYSER_FEATURE = new ConfiguredFeature<>(Feature.SIMPLE_BLOCK, new SimpleBlockFeatureConfig( public static ConfiguredFeature<?, ?> NETHER_GEYSER_FEATURE = new ConfiguredFeature<>(Feature.SIMPLE_BLOCK, new SimpleBlockFeatureConfig(
new WeightedBlockStateProvider(Pool.<BlockState>builder().add(RocksMain.NetherGeyser.getDefaultState(), 1))) new WeightedBlockStateProvider(DataPool.<BlockState>builder().add(RocksMain.NetherGeyser.getDefaultState(), 1)))
); );
public static PlacedFeature NETHER_GEYSER_PLACED_FEATURE = new PlacedFeature(RegistryEntry.of(NETHER_GEYSER_FEATURE), public static PlacedFeature NETHER_GEYSER_PLACED_FEATURE = new PlacedFeature(RegistryEntry.of(NETHER_GEYSER_FEATURE),

View File

@@ -8,7 +8,7 @@ import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks; import net.minecraft.block.Blocks;
import net.minecraft.registry.*; import net.minecraft.registry.*;
import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.registry.entry.RegistryEntry;
import net.minecraft.util.collection.Pool; import net.minecraft.util.collection.DataPool;
import net.minecraft.util.math.Vec3i; import net.minecraft.util.math.Vec3i;
import net.minecraft.world.gen.blockpredicate.BlockPredicate; import net.minecraft.world.gen.blockpredicate.BlockPredicate;
import net.minecraft.world.gen.feature.*; import net.minecraft.world.gen.feature.*;
@@ -46,7 +46,7 @@ public class RockFeatures {
BlockFilterPlacementModifier.of(BlockPredicate.bothOf(BlockPredicate.IS_AIR, BlockPredicate.matchingBlocks(new Vec3i(0, -1, 0), groundBlocks)))); BlockFilterPlacementModifier.of(BlockPredicate.bothOf(BlockPredicate.IS_AIR, BlockPredicate.matchingBlocks(new Vec3i(0, -1, 0), groundBlocks))));
} }
public static ConfiguredFeature<?, ?> ROCK_MIX_FEATURE = new ConfiguredFeature<>(Feature.SIMPLE_BLOCK, new SimpleBlockFeatureConfig( public static ConfiguredFeature<?, ?> ROCK_MIX_FEATURE = new ConfiguredFeature<>(Feature.SIMPLE_BLOCK, new SimpleBlockFeatureConfig(
new WeightedBlockStateProvider(Pool.<BlockState>builder() new WeightedBlockStateProvider(DataPool.<BlockState>builder()
.add(rocksByType.get(RockType.GRANITE).getDefaultState().with(ROCK_VARIATION,RockVariation.TINY), 10).add(rocksByType.get(RockType.GRANITE).getDefaultState().with(ROCK_VARIATION,RockVariation.SMALL), 7) .add(rocksByType.get(RockType.GRANITE).getDefaultState().with(ROCK_VARIATION,RockVariation.TINY), 10).add(rocksByType.get(RockType.GRANITE).getDefaultState().with(ROCK_VARIATION,RockVariation.SMALL), 7)
.add(rocksByType.get(RockType.GRANITE).getDefaultState().with(ROCK_VARIATION,RockVariation.MEDIUM), 5).add(rocksByType.get(RockType.GRANITE).getDefaultState().with(ROCK_VARIATION,RockVariation.LARGE), 1) .add(rocksByType.get(RockType.GRANITE).getDefaultState().with(ROCK_VARIATION,RockVariation.MEDIUM), 5).add(rocksByType.get(RockType.GRANITE).getDefaultState().with(ROCK_VARIATION,RockVariation.LARGE), 1)
.add(rocksByType.get(RockType.DIORITE).getDefaultState().with(ROCK_VARIATION,RockVariation.TINY), 10).add(rocksByType.get(RockType.DIORITE).getDefaultState().with(ROCK_VARIATION,RockVariation.SMALL), 7) .add(rocksByType.get(RockType.DIORITE).getDefaultState().with(ROCK_VARIATION,RockVariation.TINY), 10).add(rocksByType.get(RockType.DIORITE).getDefaultState().with(ROCK_VARIATION,RockVariation.SMALL), 7)
@@ -56,7 +56,7 @@ public class RockFeatures {
.build())) .build()))
); );
public static ConfiguredFeature<?, ?> NETHER_GRAVEL_ROCK_FEATURE = new ConfiguredFeature<>(Feature.SIMPLE_BLOCK, new SimpleBlockFeatureConfig( public static ConfiguredFeature<?, ?> NETHER_GRAVEL_ROCK_FEATURE = new ConfiguredFeature<>(Feature.SIMPLE_BLOCK, new SimpleBlockFeatureConfig(
new WeightedBlockStateProvider(Pool.<BlockState>builder() new WeightedBlockStateProvider(DataPool.<BlockState>builder()
.add(rocksByType.get(RockType.GRAVEL).getDefaultState().with(RocksMain.ROCK_VARIATION, RockVariation.TINY), 10) .add(rocksByType.get(RockType.GRAVEL).getDefaultState().with(RocksMain.ROCK_VARIATION, RockVariation.TINY), 10)
.add(rocksByType.get(RockType.GRAVEL).getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7) .add(rocksByType.get(RockType.GRAVEL).getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
.add(rocksByType.get(RockType.GRAVEL).getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5) .add(rocksByType.get(RockType.GRAVEL).getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
@@ -69,7 +69,7 @@ public class RockFeatures {
public static void init() { public static void init() {
for (RockType type : RockType.values()) { for (RockType type : RockType.values()) {
ConfiguredFeature<?, ?> ROCK_FEATURE = new ConfiguredFeature<>(Feature.SIMPLE_BLOCK, new SimpleBlockFeatureConfig( ConfiguredFeature<?, ?> ROCK_FEATURE = new ConfiguredFeature<>(Feature.SIMPLE_BLOCK, new SimpleBlockFeatureConfig(
new WeightedBlockStateProvider(Pool.<BlockState>builder() new WeightedBlockStateProvider(DataPool.<BlockState>builder()
.add(rocksByType.get(type).getDefaultState().with(ROCK_VARIATION, RockVariation.TINY), 10) .add(rocksByType.get(type).getDefaultState().with(ROCK_VARIATION, RockVariation.TINY), 10)
.add(rocksByType.get(type).getDefaultState().with(ROCK_VARIATION, RockVariation.SMALL), 7) .add(rocksByType.get(type).getDefaultState().with(ROCK_VARIATION, RockVariation.SMALL), 7)
.add(rocksByType.get(type).getDefaultState().with(ROCK_VARIATION, RockVariation.MEDIUM), 5) .add(rocksByType.get(type).getDefaultState().with(ROCK_VARIATION, RockVariation.MEDIUM), 5)

View File

@@ -7,7 +7,7 @@ import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks; import net.minecraft.block.Blocks;
import net.minecraft.registry.Registerable; import net.minecraft.registry.Registerable;
import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.registry.entry.RegistryEntry;
import net.minecraft.util.collection.Pool; import net.minecraft.util.collection.DataPool;
import net.minecraft.util.math.Vec3i; import net.minecraft.util.math.Vec3i;
import net.minecraft.world.gen.blockpredicate.BlockPredicate; import net.minecraft.world.gen.blockpredicate.BlockPredicate;
import net.minecraft.world.gen.feature.*; import net.minecraft.world.gen.feature.*;
@@ -41,7 +41,7 @@ public class StickFeatures {
public static void init() { public static void init() {
for (StickType type : StickType.values()) { for (StickType type : StickType.values()) {
ConfiguredFeature<?, ?> STICK_FEATURE = new ConfiguredFeature<>(Feature.SIMPLE_BLOCK, new SimpleBlockFeatureConfig( ConfiguredFeature<?, ?> STICK_FEATURE = new ConfiguredFeature<>(Feature.SIMPLE_BLOCK, new SimpleBlockFeatureConfig(
new WeightedBlockStateProvider(Pool.<BlockState>builder() new WeightedBlockStateProvider(DataPool.<BlockState>builder()
.add(sticksByType.get(type).getDefaultState().with(STICK_VARIATION, StickVariation.SMALL), 7) .add(sticksByType.get(type).getDefaultState().with(STICK_VARIATION, StickVariation.SMALL), 7)
.add(sticksByType.get(type).getDefaultState().with(STICK_VARIATION, StickVariation.MEDIUM), 5) .add(sticksByType.get(type).getDefaultState().with(STICK_VARIATION, StickVariation.MEDIUM), 5)
.add(sticksByType.get(type).getDefaultState().with(STICK_VARIATION, StickVariation.LARGE), 1).build())) .add(sticksByType.get(type).getDefaultState().with(STICK_VARIATION, StickVariation.LARGE), 1).build()))

View File

@@ -1,10 +1,10 @@
{ {
"format_version": "1.21.6",
"credit": "Made with Blockbench", "credit": "Made with Blockbench",
"textures": { "textures": {
"0": "rocks:block/starfish_orange", "0": "rocks:block/starfish_orange",
"particle": "rocks:block/starfish_orange" "particle": "rocks:block/starfish_orange"
}, },
"gui_light": "front",
"elements": [ "elements": [
{ {
"from": [4.5, 0, 10.5], "from": [4.5, 0, 10.5],
@@ -59,211 +59,211 @@
} }
}, },
{ {
"from": [6, 0, 9.25], "from": [5.75, 0, 10],
"to": [10, 1, 10.25], "to": [6.75, 1, 14],
"rotation": {"angle": -17.5, "axis": "y", "origin": [6, 0, 10]}, "rotation": {"angle": 72.5, "axis": "y", "origin": [6, 0, 10]},
"faces": { "faces": {
"north": {"uv": [0, 4, 4, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [9, 4, 10, 5], "texture": "#0"}, "east": {"uv": [0, 4, 4, 5], "texture": "#0"},
"south": {"uv": [5, 4, 9, 5], "texture": "#0"}, "south": {"uv": [9, 4, 10, 5], "texture": "#0"},
"west": {"uv": [4, 4, 5, 5], "texture": "#0"}, "west": {"uv": [5, 4, 9, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 0], "rotation": 270, "texture": "#0"}, "up": {"uv": [5, 4, 4, 0], "texture": "#0"},
"down": {"uv": [6, 0, 5, 4], "rotation": 90, "texture": "#0"} "down": {"uv": [6, 0, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [6, 0.02, 9.5], "from": [4.5, 0.02, 9],
"to": [9, 1.02, 10.5], "to": [5.5, 1.02, 12],
"rotation": {"angle": -17.5, "axis": "y", "origin": [6, 0, 9]}, "rotation": {"angle": 72.5, "axis": "y", "origin": [6, 0, 9]},
"faces": { "faces": {
"north": {"uv": [1, 4, 4, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [8, 4, 9, 5], "texture": "#0"}, "east": {"uv": [1, 4, 4, 5], "texture": "#0"},
"south": {"uv": [5, 4, 8, 5], "texture": "#0"}, "south": {"uv": [8, 4, 9, 5], "texture": "#0"},
"west": {"uv": [4, 4, 5, 5], "texture": "#0"}, "west": {"uv": [5, 4, 8, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 1], "rotation": 270, "texture": "#0"}, "up": {"uv": [5, 4, 4, 1], "texture": "#0"},
"down": {"uv": [6, 1, 5, 4], "rotation": 90, "texture": "#0"} "down": {"uv": [6, 1, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [6, 0.01, 9], "from": [5, 0.01, 9],
"to": [9, 1.01, 10], "to": [6, 1.01, 12],
"rotation": {"angle": -17.5, "axis": "y", "origin": [6, 0, 9]}, "rotation": {"angle": 72.5, "axis": "y", "origin": [6, 0, 9]},
"faces": { "faces": {
"north": {"uv": [1, 4, 4, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [8, 4, 9, 5], "texture": "#0"}, "east": {"uv": [1, 4, 4, 5], "texture": "#0"},
"south": {"uv": [5, 4, 8, 5], "texture": "#0"}, "south": {"uv": [8, 4, 9, 5], "texture": "#0"},
"west": {"uv": [4, 4, 5, 5], "texture": "#0"}, "west": {"uv": [5, 4, 8, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 1], "rotation": 270, "texture": "#0"}, "up": {"uv": [5, 4, 4, 1], "texture": "#0"},
"down": {"uv": [6, 1, 5, 4], "rotation": 90, "texture": "#0"} "down": {"uv": [6, 1, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [6.6, -0.01, 8.2], "from": [1.4, -0.01, 9],
"to": [8.6, 0.99, 10.2], "to": [3.4, 0.99, 11],
"rotation": {"angle": -17.5, "axis": "y", "origin": [4.6, 0, 7]}, "rotation": {"angle": 72.5, "axis": "y", "origin": [4.6, 0, 7]},
"faces": { "faces": {
"north": {"uv": [1, 4, 3, 5], "texture": "#0"}, "north": {"uv": [3, 4, 5, 5], "texture": "#0"},
"east": {"uv": [7, 4, 9, 5], "texture": "#0"}, "east": {"uv": [1, 4, 3, 5], "texture": "#0"},
"south": {"uv": [5, 4, 7, 5], "texture": "#0"}, "south": {"uv": [7, 4, 9, 5], "texture": "#0"},
"west": {"uv": [3, 4, 5, 5], "texture": "#0"}, "west": {"uv": [5, 4, 7, 5], "texture": "#0"},
"up": {"uv": [5, 4, 3, 2], "rotation": 270, "texture": "#0"}, "up": {"uv": [5, 4, 3, 2], "texture": "#0"},
"down": {"uv": [7, 2, 5, 4], "rotation": 90, "texture": "#0"} "down": {"uv": [7, 2, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [0, 0, 9.5], "from": [3.5, 0, 10],
"to": [4, 1, 10.5], "to": [4.5, 1, 14],
"rotation": {"angle": 17.5, "axis": "y", "origin": [4, 0, 10]}, "rotation": {"angle": -72.5, "axis": "y", "origin": [4, 0, 10]},
"faces": { "faces": {
"north": {"uv": [5, 4, 9, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [4, 4, 5, 5], "texture": "#0"}, "east": {"uv": [0, 4, 4, 5], "texture": "#0"},
"south": {"uv": [0, 4, 4, 5], "texture": "#0"}, "south": {"uv": [9, 4, 10, 5], "texture": "#0"},
"west": {"uv": [9, 4, 10, 5], "texture": "#0"}, "west": {"uv": [5, 4, 9, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 0], "rotation": 90, "texture": "#0"}, "up": {"uv": [5, 4, 4, 0], "texture": "#0"},
"down": {"uv": [6, 0, 5, 4], "rotation": 270, "texture": "#0"} "down": {"uv": [6, 0, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [1, 0.02, 9.25], "from": [2.75, 0.02, 10.5],
"to": [4, 1.02, 10.25], "to": [3.75, 1.02, 13.5],
"rotation": {"angle": 17.5, "axis": "y", "origin": [4, 0, 10.5]}, "rotation": {"angle": -72.5, "axis": "y", "origin": [4, 0, 10.5]},
"faces": { "faces": {
"north": {"uv": [5, 4, 8, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [4, 4, 5, 5], "texture": "#0"}, "east": {"uv": [1, 4, 4, 5], "texture": "#0"},
"south": {"uv": [1, 4, 4, 5], "texture": "#0"}, "south": {"uv": [8, 4, 9, 5], "texture": "#0"},
"west": {"uv": [8, 4, 9, 5], "texture": "#0"}, "west": {"uv": [5, 4, 8, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 1], "rotation": 90, "texture": "#0"}, "up": {"uv": [5, 4, 4, 1], "texture": "#0"},
"down": {"uv": [6, 1, 5, 4], "rotation": 270, "texture": "#0"} "down": {"uv": [6, 1, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [1, 0.01, 9.75], "from": [3.25, 0.01, 10.5],
"to": [4, 1.01, 10.75], "to": [4.25, 1.01, 13.5],
"rotation": {"angle": 17.5, "axis": "y", "origin": [4, 0, 10.5]}, "rotation": {"angle": -72.5, "axis": "y", "origin": [4, 0, 10.5]},
"faces": { "faces": {
"north": {"uv": [5, 4, 8, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [4, 4, 5, 5], "texture": "#0"}, "east": {"uv": [1, 4, 4, 5], "texture": "#0"},
"south": {"uv": [1, 4, 4, 5], "texture": "#0"}, "south": {"uv": [8, 4, 9, 5], "texture": "#0"},
"west": {"uv": [8, 4, 9, 5], "texture": "#0"}, "west": {"uv": [5, 4, 8, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 1], "rotation": 90, "texture": "#0"}, "up": {"uv": [5, 4, 4, 1], "texture": "#0"},
"down": {"uv": [6, 1, 5, 4], "rotation": 270, "texture": "#0"} "down": {"uv": [6, 1, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [3, -0.01, 8], "from": [4, -0.01, 13],
"to": [5, 0.99, 10], "to": [6, 0.99, 15],
"rotation": {"angle": 17.5, "axis": "y", "origin": [7, 0, 11]}, "rotation": {"angle": -72.5, "axis": "y", "origin": [7, 0, 11]},
"faces": { "faces": {
"north": {"uv": [5, 4, 7, 5], "texture": "#0"}, "north": {"uv": [3, 4, 5, 5], "texture": "#0"},
"east": {"uv": [3, 4, 5, 5], "texture": "#0"}, "east": {"uv": [1, 4, 3, 5], "texture": "#0"},
"south": {"uv": [1, 4, 3, 5], "texture": "#0"}, "south": {"uv": [7, 4, 9, 5], "texture": "#0"},
"west": {"uv": [7, 4, 9, 5], "texture": "#0"}, "west": {"uv": [5, 4, 7, 5], "texture": "#0"},
"up": {"uv": [5, 4, 3, 2], "rotation": 90, "texture": "#0"}, "up": {"uv": [5, 4, 3, 2], "texture": "#0"},
"down": {"uv": [7, 2, 5, 4], "rotation": 270, "texture": "#0"} "down": {"uv": [7, 2, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [3.5, 0, 4.6], "from": [3.5, 0, 7.4],
"to": [4.5, 1, 8.6], "to": [4.5, 1, 11.4],
"rotation": {"angle": 35, "axis": "y", "origin": [4, 0, 8]}, "rotation": {"angle": -145, "axis": "y", "origin": [4, 0, 8]},
"faces": { "faces": {
"north": {"uv": [9, 4, 10, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [5, 4, 9, 5], "texture": "#0"}, "east": {"uv": [0, 4, 4, 5], "texture": "#0"},
"south": {"uv": [4, 4, 5, 5], "texture": "#0"}, "south": {"uv": [9, 4, 10, 5], "texture": "#0"},
"west": {"uv": [0, 4, 4, 5], "texture": "#0"}, "west": {"uv": [5, 4, 9, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 0], "rotation": 180, "texture": "#0"}, "up": {"uv": [5, 4, 4, 0], "texture": "#0"},
"down": {"uv": [6, 0, 5, 4], "rotation": 180, "texture": "#0"} "down": {"uv": [6, 0, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [3.75, 0.02, 6.3], "from": [1.25, 0.02, 8.7],
"to": [4.75, 1.02, 9.3], "to": [2.25, 1.02, 11.7],
"rotation": {"angle": 35, "axis": "y", "origin": [3, 0, 9]}, "rotation": {"angle": -145, "axis": "y", "origin": [3, 0, 9]},
"faces": { "faces": {
"north": {"uv": [8, 4, 9, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [5, 4, 8, 5], "texture": "#0"}, "east": {"uv": [1, 4, 4, 5], "texture": "#0"},
"south": {"uv": [4, 4, 5, 5], "texture": "#0"}, "south": {"uv": [8, 4, 9, 5], "texture": "#0"},
"west": {"uv": [1, 4, 4, 5], "texture": "#0"}, "west": {"uv": [5, 4, 8, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 1], "rotation": 180, "texture": "#0"}, "up": {"uv": [5, 4, 4, 1], "texture": "#0"},
"down": {"uv": [6, 1, 5, 4], "rotation": 180, "texture": "#0"} "down": {"uv": [6, 1, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [3.75, 0.01, 5.6], "from": [3.25, 0.01, 7.4],
"to": [4.75, 1.01, 8.6], "to": [4.25, 1.01, 10.4],
"rotation": {"angle": 35, "axis": "y", "origin": [4, 0, 8]}, "rotation": {"angle": -145, "axis": "y", "origin": [4, 0, 8]},
"faces": { "faces": {
"north": {"uv": [8, 4, 9, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [5, 4, 8, 5], "texture": "#0"}, "east": {"uv": [1, 4, 4, 5], "texture": "#0"},
"south": {"uv": [4, 4, 5, 5], "texture": "#0"}, "south": {"uv": [8, 4, 9, 5], "texture": "#0"},
"west": {"uv": [1, 4, 4, 5], "texture": "#0"}, "west": {"uv": [5, 4, 8, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 1], "rotation": 180, "texture": "#0"}, "up": {"uv": [5, 4, 4, 1], "texture": "#0"},
"down": {"uv": [6, 1, 5, 4], "rotation": 180, "texture": "#0"} "down": {"uv": [6, 1, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [4, -0.01, 7.5], "from": [0, -0.01, 10.5],
"to": [6, 0.99, 9.5], "to": [2, 0.99, 12.5],
"rotation": {"angle": 35, "axis": "y", "origin": [3, 0, 10]}, "rotation": {"angle": -145, "axis": "y", "origin": [3, 0, 10]},
"faces": { "faces": {
"north": {"uv": [7, 4, 9, 5], "texture": "#0"}, "north": {"uv": [3, 4, 5, 5], "texture": "#0"},
"east": {"uv": [5, 4, 7, 5], "texture": "#0"}, "east": {"uv": [1, 4, 3, 5], "texture": "#0"},
"south": {"uv": [3, 4, 5, 5], "texture": "#0"}, "south": {"uv": [7, 4, 9, 5], "texture": "#0"},
"west": {"uv": [1, 4, 3, 5], "texture": "#0"}, "west": {"uv": [5, 4, 7, 5], "texture": "#0"},
"up": {"uv": [5, 4, 3, 2], "rotation": 180, "texture": "#0"}, "up": {"uv": [5, 4, 3, 2], "texture": "#0"},
"down": {"uv": [7, 2, 5, 4], "rotation": 180, "texture": "#0"} "down": {"uv": [7, 2, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [5.65, 0, 4.7], "from": [7.35, 0, 7.3],
"to": [6.65, 1, 8.7], "to": [8.35, 1, 11.3],
"rotation": {"angle": -35, "axis": "y", "origin": [7, 0, 8]}, "rotation": {"angle": 145, "axis": "y", "origin": [7, 0, 8]},
"faces": { "faces": {
"north": {"uv": [9, 4, 10, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [5, 4, 9, 5], "texture": "#0"}, "east": {"uv": [0, 4, 4, 5], "texture": "#0"},
"south": {"uv": [4, 4, 5, 5], "texture": "#0"}, "south": {"uv": [9, 4, 10, 5], "texture": "#0"},
"west": {"uv": [0, 4, 4, 5], "texture": "#0"}, "west": {"uv": [5, 4, 9, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 0], "rotation": 180, "texture": "#0"}, "up": {"uv": [5, 4, 4, 0], "texture": "#0"},
"down": {"uv": [6, 0, 5, 4], "rotation": 180, "texture": "#0"} "down": {"uv": [6, 0, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [5.5, 0.02, 5], "from": [3.5, 0.02, 8],
"to": [6.5, 1.02, 8], "to": [4.5, 1.02, 11],
"rotation": {"angle": -35, "axis": "y", "origin": [5, 0, 8]}, "rotation": {"angle": 145, "axis": "y", "origin": [5, 0, 8]},
"faces": { "faces": {
"north": {"uv": [8, 4, 9, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [5, 4, 8, 5], "texture": "#0"}, "east": {"uv": [1, 4, 4, 5], "texture": "#0"},
"south": {"uv": [4, 4, 5, 5], "texture": "#0"}, "south": {"uv": [8, 4, 9, 5], "texture": "#0"},
"west": {"uv": [1, 4, 4, 5], "texture": "#0"}, "west": {"uv": [5, 4, 8, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 1], "rotation": 180, "texture": "#0"}, "up": {"uv": [5, 4, 4, 1], "texture": "#0"},
"down": {"uv": [6, 1, 5, 4], "rotation": 180, "texture": "#0"} "down": {"uv": [6, 1, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [5, 0.01, 5], "from": [4, 0.01, 8],
"to": [6, 1.01, 8], "to": [5, 1.01, 11],
"rotation": {"angle": -35, "axis": "y", "origin": [5, 0, 8]}, "rotation": {"angle": 145, "axis": "y", "origin": [5, 0, 8]},
"faces": { "faces": {
"north": {"uv": [8, 4, 9, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [5, 4, 8, 5], "texture": "#0"}, "east": {"uv": [1, 4, 4, 5], "texture": "#0"},
"south": {"uv": [4, 4, 5, 5], "texture": "#0"}, "south": {"uv": [8, 4, 9, 5], "texture": "#0"},
"west": {"uv": [1, 4, 4, 5], "texture": "#0"}, "west": {"uv": [5, 4, 8, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 1], "rotation": 180, "texture": "#0"}, "up": {"uv": [5, 4, 4, 1], "texture": "#0"},
"down": {"uv": [6, 1, 5, 4], "rotation": 180, "texture": "#0"} "down": {"uv": [6, 1, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [4, -0.01, 5.5], "from": [2, -0.01, 10.5],
"to": [6, 0.99, 7.5], "to": [4, 0.99, 12.5],
"rotation": {"angle": -35, "axis": "y", "origin": [4, 0, 9]}, "rotation": {"angle": 145, "axis": "y", "origin": [4, 0, 9]},
"faces": { "faces": {
"north": {"uv": [7, 4, 9, 5], "texture": "#0"}, "north": {"uv": [3, 4, 5, 5], "texture": "#0"},
"east": {"uv": [5, 4, 7, 5], "texture": "#0"}, "east": {"uv": [1, 4, 3, 5], "texture": "#0"},
"south": {"uv": [3, 4, 5, 5], "texture": "#0"}, "south": {"uv": [7, 4, 9, 5], "texture": "#0"},
"west": {"uv": [1, 4, 3, 5], "texture": "#0"}, "west": {"uv": [5, 4, 7, 5], "texture": "#0"},
"up": {"uv": [5, 4, 3, 2], "rotation": 180, "texture": "#0"}, "up": {"uv": [5, 4, 3, 2], "texture": "#0"},
"down": {"uv": [7, 2, 5, 4], "rotation": 180, "texture": "#0"} "down": {"uv": [7, 2, 5, 4], "texture": "#0"}
} }
}, },
{ {
@@ -306,39 +306,67 @@
} }
} }
], ],
"display": {
"thirdperson_righthand": {
"rotation": [65, 35, 0],
"translation": [0.75, 4.75, 3.5],
"scale": [0.5, 0.5, 0.5]
},
"thirdperson_lefthand": {
"rotation": [65, 35, 0],
"translation": [-1.75, 2.75, 3.5],
"scale": [0.5, 0.5, 0.5]
},
"firstperson_righthand": {
"rotation": [29, 0, 23],
"translation": [3.25, 8.25, 0]
},
"firstperson_lefthand": {
"rotation": [29, 0, 23],
"translation": [-3, 7.25, 0]
},
"ground": {
"translation": [2.5, 3.75, -1],
"scale": [0.75, 0.75, 0.75]
},
"gui": {
"rotation": [90, 35, 0],
"translation": [2.25, 3.5, 0],
"scale": [1.5, 1.5, 1.5]
},
"head": {
"translation": [3, 14.25, -0.75]
},
"fixed": {
"rotation": [-90, 0, 0],
"translation": [4.25, -2, -12],
"scale": [1.5, 1.5, 1.5]
}
},
"groups": [ "groups": [
{ {
"name": "side1", "name": "side1",
"origin": [0, 0, 0], "origin": [0, 0, 0],
"color": 0,
"children": [0, 1, 2, 3] "children": [0, 1, 2, 3]
}, },
{ {
"name": "side2", "name": "side2",
"origin": [0, 0, 0], "origin": [0, 0, 0],
"color": 0,
"children": [4, 5, 6, 7] "children": [4, 5, 6, 7]
}, },
{ {
"name": "side3", "name": "side3",
"origin": [0, 0, 0], "origin": [0, 0, 0],
"color": 0,
"children": [8, 9, 10, 11] "children": [8, 9, 10, 11]
}, },
{ {
"name": "side4", "name": "side4",
"origin": [0, 0, 0], "origin": [0, 0, 0],
"color": 0,
"children": [12, 13, 14, 15] "children": [12, 13, 14, 15]
}, },
{ {
"name": "side5", "name": "side5",
"origin": [0, 0, 0], "origin": [0, 0, 0],
"color": 0,
"children": [16, 17, 18, 19] "children": [16, 17, 18, 19]
}, }, 20, 21, 22]
20,
21,
22
]
} }

View File

@@ -1,10 +1,10 @@
{ {
"format_version": "1.21.6",
"credit": "Made with Blockbench", "credit": "Made with Blockbench",
"textures": { "textures": {
"0": "rocks:block/starfish_pink", "0": "rocks:block/starfish_pink",
"particle": "rocks:block/starfish_pink" "particle": "rocks:block/starfish_pink"
}, },
"gui_light": "front",
"elements": [ "elements": [
{ {
"from": [7.5, 0, 8.5], "from": [7.5, 0, 8.5],
@@ -59,211 +59,211 @@
} }
}, },
{ {
"from": [9, 0, 7.25], "from": [8.75, 0, 8],
"to": [13, 1, 8.25], "to": [9.75, 1, 12],
"rotation": {"angle": -17.5, "axis": "y", "origin": [9, 0, 8]}, "rotation": {"angle": 72.5, "axis": "y", "origin": [9, 0, 8]},
"faces": { "faces": {
"north": {"uv": [0, 4, 4, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [9, 4, 10, 5], "texture": "#0"}, "east": {"uv": [0, 4, 4, 5], "texture": "#0"},
"south": {"uv": [5, 4, 9, 5], "texture": "#0"}, "south": {"uv": [9, 4, 10, 5], "texture": "#0"},
"west": {"uv": [4, 4, 5, 5], "texture": "#0"}, "west": {"uv": [5, 4, 9, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 0], "rotation": 270, "texture": "#0"}, "up": {"uv": [5, 4, 4, 0], "texture": "#0"},
"down": {"uv": [6, 0, 5, 4], "rotation": 90, "texture": "#0"} "down": {"uv": [6, 0, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [9, 0.02, 7.5], "from": [7.5, 0.02, 7],
"to": [12, 1.02, 8.5], "to": [8.5, 1.02, 10],
"rotation": {"angle": -17.5, "axis": "y", "origin": [9, 0, 7]}, "rotation": {"angle": 72.5, "axis": "y", "origin": [9, 0, 7]},
"faces": { "faces": {
"north": {"uv": [1, 4, 4, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [8, 4, 9, 5], "texture": "#0"}, "east": {"uv": [1, 4, 4, 5], "texture": "#0"},
"south": {"uv": [5, 4, 8, 5], "texture": "#0"}, "south": {"uv": [8, 4, 9, 5], "texture": "#0"},
"west": {"uv": [4, 4, 5, 5], "texture": "#0"}, "west": {"uv": [5, 4, 8, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 1], "rotation": 270, "texture": "#0"}, "up": {"uv": [5, 4, 4, 1], "texture": "#0"},
"down": {"uv": [6, 1, 5, 4], "rotation": 90, "texture": "#0"} "down": {"uv": [6, 1, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [9, 0.01, 7], "from": [8, 0.01, 7],
"to": [12, 1.01, 8], "to": [9, 1.01, 10],
"rotation": {"angle": -17.5, "axis": "y", "origin": [9, 0, 7]}, "rotation": {"angle": 72.5, "axis": "y", "origin": [9, 0, 7]},
"faces": { "faces": {
"north": {"uv": [1, 4, 4, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [8, 4, 9, 5], "texture": "#0"}, "east": {"uv": [1, 4, 4, 5], "texture": "#0"},
"south": {"uv": [5, 4, 8, 5], "texture": "#0"}, "south": {"uv": [8, 4, 9, 5], "texture": "#0"},
"west": {"uv": [4, 4, 5, 5], "texture": "#0"}, "west": {"uv": [5, 4, 8, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 1], "rotation": 270, "texture": "#0"}, "up": {"uv": [5, 4, 4, 1], "texture": "#0"},
"down": {"uv": [6, 1, 5, 4], "rotation": 90, "texture": "#0"} "down": {"uv": [6, 1, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [9.6, -0.01, 6.2], "from": [4.4, -0.01, 7],
"to": [11.6, 0.99, 8.2], "to": [6.4, 0.99, 9],
"rotation": {"angle": -17.5, "axis": "y", "origin": [7.6, 0, 5]}, "rotation": {"angle": 72.5, "axis": "y", "origin": [7.6, 0, 5]},
"faces": { "faces": {
"north": {"uv": [1, 4, 3, 5], "texture": "#0"}, "north": {"uv": [3, 4, 5, 5], "texture": "#0"},
"east": {"uv": [7, 4, 9, 5], "texture": "#0"}, "east": {"uv": [1, 4, 3, 5], "texture": "#0"},
"south": {"uv": [5, 4, 7, 5], "texture": "#0"}, "south": {"uv": [7, 4, 9, 5], "texture": "#0"},
"west": {"uv": [3, 4, 5, 5], "texture": "#0"}, "west": {"uv": [5, 4, 7, 5], "texture": "#0"},
"up": {"uv": [5, 4, 3, 2], "rotation": 270, "texture": "#0"}, "up": {"uv": [5, 4, 3, 2], "texture": "#0"},
"down": {"uv": [7, 2, 5, 4], "rotation": 90, "texture": "#0"} "down": {"uv": [7, 2, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [3, 0, 7.5], "from": [6.5, 0, 8],
"to": [7, 1, 8.5], "to": [7.5, 1, 12],
"rotation": {"angle": 17.5, "axis": "y", "origin": [7, 0, 8]}, "rotation": {"angle": -72.5, "axis": "y", "origin": [7, 0, 8]},
"faces": { "faces": {
"north": {"uv": [5, 4, 9, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [4, 4, 5, 5], "texture": "#0"}, "east": {"uv": [0, 4, 4, 5], "texture": "#0"},
"south": {"uv": [0, 4, 4, 5], "texture": "#0"}, "south": {"uv": [9, 4, 10, 5], "texture": "#0"},
"west": {"uv": [9, 4, 10, 5], "texture": "#0"}, "west": {"uv": [5, 4, 9, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 0], "rotation": 90, "texture": "#0"}, "up": {"uv": [5, 4, 4, 0], "texture": "#0"},
"down": {"uv": [6, 0, 5, 4], "rotation": 270, "texture": "#0"} "down": {"uv": [6, 0, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [4, 0.02, 7.25], "from": [5.75, 0.02, 8.5],
"to": [7, 1.02, 8.25], "to": [6.75, 1.02, 11.5],
"rotation": {"angle": 17.5, "axis": "y", "origin": [7, 0, 8.5]}, "rotation": {"angle": -72.5, "axis": "y", "origin": [7, 0, 8.5]},
"faces": { "faces": {
"north": {"uv": [5, 4, 8, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [4, 4, 5, 5], "texture": "#0"}, "east": {"uv": [1, 4, 4, 5], "texture": "#0"},
"south": {"uv": [1, 4, 4, 5], "texture": "#0"}, "south": {"uv": [8, 4, 9, 5], "texture": "#0"},
"west": {"uv": [8, 4, 9, 5], "texture": "#0"}, "west": {"uv": [5, 4, 8, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 1], "rotation": 90, "texture": "#0"}, "up": {"uv": [5, 4, 4, 1], "texture": "#0"},
"down": {"uv": [6, 1, 5, 4], "rotation": 270, "texture": "#0"} "down": {"uv": [6, 1, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [4, 0.01, 7.75], "from": [6.25, 0.01, 8.5],
"to": [7, 1.01, 8.75], "to": [7.25, 1.01, 11.5],
"rotation": {"angle": 17.5, "axis": "y", "origin": [7, 0, 8.5]}, "rotation": {"angle": -72.5, "axis": "y", "origin": [7, 0, 8.5]},
"faces": { "faces": {
"north": {"uv": [5, 4, 8, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [4, 4, 5, 5], "texture": "#0"}, "east": {"uv": [1, 4, 4, 5], "texture": "#0"},
"south": {"uv": [1, 4, 4, 5], "texture": "#0"}, "south": {"uv": [8, 4, 9, 5], "texture": "#0"},
"west": {"uv": [8, 4, 9, 5], "texture": "#0"}, "west": {"uv": [5, 4, 8, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 1], "rotation": 90, "texture": "#0"}, "up": {"uv": [5, 4, 4, 1], "texture": "#0"},
"down": {"uv": [6, 1, 5, 4], "rotation": 270, "texture": "#0"} "down": {"uv": [6, 1, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [6, -0.01, 6], "from": [7, -0.01, 11],
"to": [8, 0.99, 8], "to": [9, 0.99, 13],
"rotation": {"angle": 17.5, "axis": "y", "origin": [10, 0, 9]}, "rotation": {"angle": -72.5, "axis": "y", "origin": [10, 0, 9]},
"faces": { "faces": {
"north": {"uv": [5, 4, 7, 5], "texture": "#0"}, "north": {"uv": [3, 4, 5, 5], "texture": "#0"},
"east": {"uv": [3, 4, 5, 5], "texture": "#0"}, "east": {"uv": [1, 4, 3, 5], "texture": "#0"},
"south": {"uv": [1, 4, 3, 5], "texture": "#0"}, "south": {"uv": [7, 4, 9, 5], "texture": "#0"},
"west": {"uv": [7, 4, 9, 5], "texture": "#0"}, "west": {"uv": [5, 4, 7, 5], "texture": "#0"},
"up": {"uv": [5, 4, 3, 2], "rotation": 90, "texture": "#0"}, "up": {"uv": [5, 4, 3, 2], "texture": "#0"},
"down": {"uv": [7, 2, 5, 4], "rotation": 270, "texture": "#0"} "down": {"uv": [7, 2, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [6.5, 0, 2.6], "from": [6.5, 0, 5.4],
"to": [7.5, 1, 6.6], "to": [7.5, 1, 9.4],
"rotation": {"angle": 35, "axis": "y", "origin": [7, 0, 6]}, "rotation": {"angle": -145, "axis": "y", "origin": [7, 0, 6]},
"faces": { "faces": {
"north": {"uv": [9, 4, 10, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [5, 4, 9, 5], "texture": "#0"}, "east": {"uv": [0, 4, 4, 5], "texture": "#0"},
"south": {"uv": [4, 4, 5, 5], "texture": "#0"}, "south": {"uv": [9, 4, 10, 5], "texture": "#0"},
"west": {"uv": [0, 4, 4, 5], "texture": "#0"}, "west": {"uv": [5, 4, 9, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 0], "rotation": 180, "texture": "#0"}, "up": {"uv": [5, 4, 4, 0], "texture": "#0"},
"down": {"uv": [6, 0, 5, 4], "rotation": 180, "texture": "#0"} "down": {"uv": [6, 0, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [6.75, 0.02, 4.3], "from": [4.25, 0.02, 6.7],
"to": [7.75, 1.02, 7.3], "to": [5.25, 1.02, 9.7],
"rotation": {"angle": 35, "axis": "y", "origin": [6, 0, 7]}, "rotation": {"angle": -145, "axis": "y", "origin": [6, 0, 7]},
"faces": { "faces": {
"north": {"uv": [8, 4, 9, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [5, 4, 8, 5], "texture": "#0"}, "east": {"uv": [1, 4, 4, 5], "texture": "#0"},
"south": {"uv": [4, 4, 5, 5], "texture": "#0"}, "south": {"uv": [8, 4, 9, 5], "texture": "#0"},
"west": {"uv": [1, 4, 4, 5], "texture": "#0"}, "west": {"uv": [5, 4, 8, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 1], "rotation": 180, "texture": "#0"}, "up": {"uv": [5, 4, 4, 1], "texture": "#0"},
"down": {"uv": [6, 1, 5, 4], "rotation": 180, "texture": "#0"} "down": {"uv": [6, 1, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [6.75, 0.01, 3.6], "from": [6.25, 0.01, 5.4],
"to": [7.75, 1.01, 6.6], "to": [7.25, 1.01, 8.4],
"rotation": {"angle": 35, "axis": "y", "origin": [7, 0, 6]}, "rotation": {"angle": -145, "axis": "y", "origin": [7, 0, 6]},
"faces": { "faces": {
"north": {"uv": [8, 4, 9, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [5, 4, 8, 5], "texture": "#0"}, "east": {"uv": [1, 4, 4, 5], "texture": "#0"},
"south": {"uv": [4, 4, 5, 5], "texture": "#0"}, "south": {"uv": [8, 4, 9, 5], "texture": "#0"},
"west": {"uv": [1, 4, 4, 5], "texture": "#0"}, "west": {"uv": [5, 4, 8, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 1], "rotation": 180, "texture": "#0"}, "up": {"uv": [5, 4, 4, 1], "texture": "#0"},
"down": {"uv": [6, 1, 5, 4], "rotation": 180, "texture": "#0"} "down": {"uv": [6, 1, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [7, -0.01, 5.5], "from": [3, -0.01, 8.5],
"to": [9, 0.99, 7.5], "to": [5, 0.99, 10.5],
"rotation": {"angle": 35, "axis": "y", "origin": [6, 0, 8]}, "rotation": {"angle": -145, "axis": "y", "origin": [6, 0, 8]},
"faces": { "faces": {
"north": {"uv": [7, 4, 9, 5], "texture": "#0"}, "north": {"uv": [3, 4, 5, 5], "texture": "#0"},
"east": {"uv": [5, 4, 7, 5], "texture": "#0"}, "east": {"uv": [1, 4, 3, 5], "texture": "#0"},
"south": {"uv": [3, 4, 5, 5], "texture": "#0"}, "south": {"uv": [7, 4, 9, 5], "texture": "#0"},
"west": {"uv": [1, 4, 3, 5], "texture": "#0"}, "west": {"uv": [5, 4, 7, 5], "texture": "#0"},
"up": {"uv": [5, 4, 3, 2], "rotation": 180, "texture": "#0"}, "up": {"uv": [5, 4, 3, 2], "texture": "#0"},
"down": {"uv": [7, 2, 5, 4], "rotation": 180, "texture": "#0"} "down": {"uv": [7, 2, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [8.65, 0, 2.7], "from": [10.35, 0, 5.3],
"to": [9.65, 1, 6.7], "to": [11.35, 1, 9.3],
"rotation": {"angle": -35, "axis": "y", "origin": [10, 0, 6]}, "rotation": {"angle": 145, "axis": "y", "origin": [10, 0, 6]},
"faces": { "faces": {
"north": {"uv": [9, 4, 10, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [5, 4, 9, 5], "texture": "#0"}, "east": {"uv": [0, 4, 4, 5], "texture": "#0"},
"south": {"uv": [4, 4, 5, 5], "texture": "#0"}, "south": {"uv": [9, 4, 10, 5], "texture": "#0"},
"west": {"uv": [0, 4, 4, 5], "texture": "#0"}, "west": {"uv": [5, 4, 9, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 0], "rotation": 180, "texture": "#0"}, "up": {"uv": [5, 4, 4, 0], "texture": "#0"},
"down": {"uv": [6, 0, 5, 4], "rotation": 180, "texture": "#0"} "down": {"uv": [6, 0, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [8.5, 0.02, 3], "from": [6.5, 0.02, 6],
"to": [9.5, 1.02, 6], "to": [7.5, 1.02, 9],
"rotation": {"angle": -35, "axis": "y", "origin": [8, 0, 6]}, "rotation": {"angle": 145, "axis": "y", "origin": [8, 0, 6]},
"faces": { "faces": {
"north": {"uv": [8, 4, 9, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [5, 4, 8, 5], "texture": "#0"}, "east": {"uv": [1, 4, 4, 5], "texture": "#0"},
"south": {"uv": [4, 4, 5, 5], "texture": "#0"}, "south": {"uv": [8, 4, 9, 5], "texture": "#0"},
"west": {"uv": [1, 4, 4, 5], "texture": "#0"}, "west": {"uv": [5, 4, 8, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 1], "rotation": 180, "texture": "#0"}, "up": {"uv": [5, 4, 4, 1], "texture": "#0"},
"down": {"uv": [6, 1, 5, 4], "rotation": 180, "texture": "#0"} "down": {"uv": [6, 1, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [8, 0.01, 3], "from": [7, 0.01, 6],
"to": [9, 1.01, 6], "to": [8, 1.01, 9],
"rotation": {"angle": -35, "axis": "y", "origin": [8, 0, 6]}, "rotation": {"angle": 145, "axis": "y", "origin": [8, 0, 6]},
"faces": { "faces": {
"north": {"uv": [8, 4, 9, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [5, 4, 8, 5], "texture": "#0"}, "east": {"uv": [1, 4, 4, 5], "texture": "#0"},
"south": {"uv": [4, 4, 5, 5], "texture": "#0"}, "south": {"uv": [8, 4, 9, 5], "texture": "#0"},
"west": {"uv": [1, 4, 4, 5], "texture": "#0"}, "west": {"uv": [5, 4, 8, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 1], "rotation": 180, "texture": "#0"}, "up": {"uv": [5, 4, 4, 1], "texture": "#0"},
"down": {"uv": [6, 1, 5, 4], "rotation": 180, "texture": "#0"} "down": {"uv": [6, 1, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [7, -0.01, 3.5], "from": [5, -0.01, 8.5],
"to": [9, 0.99, 5.5], "to": [7, 0.99, 10.5],
"rotation": {"angle": -35, "axis": "y", "origin": [7, 0, 7]}, "rotation": {"angle": 145, "axis": "y", "origin": [7, 0, 7]},
"faces": { "faces": {
"north": {"uv": [7, 4, 9, 5], "texture": "#0"}, "north": {"uv": [3, 4, 5, 5], "texture": "#0"},
"east": {"uv": [5, 4, 7, 5], "texture": "#0"}, "east": {"uv": [1, 4, 3, 5], "texture": "#0"},
"south": {"uv": [3, 4, 5, 5], "texture": "#0"}, "south": {"uv": [7, 4, 9, 5], "texture": "#0"},
"west": {"uv": [1, 4, 3, 5], "texture": "#0"}, "west": {"uv": [5, 4, 7, 5], "texture": "#0"},
"up": {"uv": [5, 4, 3, 2], "rotation": 180, "texture": "#0"}, "up": {"uv": [5, 4, 3, 2], "texture": "#0"},
"down": {"uv": [7, 2, 5, 4], "rotation": 180, "texture": "#0"} "down": {"uv": [7, 2, 5, 4], "texture": "#0"}
} }
}, },
{ {
@@ -306,39 +306,67 @@
} }
} }
], ],
"display": {
"thirdperson_righthand": {
"rotation": [65, 35, 0],
"translation": [0, 2.25, 3.5],
"scale": [0.5, 0.5, 0.5]
},
"thirdperson_lefthand": {
"rotation": [65, 35, 0],
"translation": [0, 2.5, 3.5],
"scale": [0.5, 0.5, 0.5]
},
"firstperson_righthand": {
"rotation": [29, 0, 23],
"translation": [3.25, 3.75, 0]
},
"firstperson_lefthand": {
"rotation": [29, 0, 23],
"translation": [6.25, 3.75, 0]
},
"ground": {
"translation": [0.25, 3.75, 0],
"scale": [0.75, 0.75, 0.75]
},
"gui": {
"rotation": [90, 35, 0],
"translation": [0.25, -1.5, 0],
"scale": [1.5, 1.5, 1.5]
},
"head": {
"translation": [-0.25, 14.25, 0.75]
},
"fixed": {
"rotation": [-90, 0, 0],
"translation": [-0.25, 1.25, -12],
"scale": [1.5, 1.5, 1.5]
}
},
"groups": [ "groups": [
{ {
"name": "side1", "name": "side1",
"origin": [0, 0, 0], "origin": [0, 0, 0],
"color": 0,
"children": [0, 1, 2, 3] "children": [0, 1, 2, 3]
}, },
{ {
"name": "side2", "name": "side2",
"origin": [0, 0, 0], "origin": [0, 0, 0],
"color": 0,
"children": [4, 5, 6, 7] "children": [4, 5, 6, 7]
}, },
{ {
"name": "side3", "name": "side3",
"origin": [0, 0, 0], "origin": [0, 0, 0],
"color": 0,
"children": [8, 9, 10, 11] "children": [8, 9, 10, 11]
}, },
{ {
"name": "side4", "name": "side4",
"origin": [0, 0, 0], "origin": [0, 0, 0],
"color": 0,
"children": [12, 13, 14, 15] "children": [12, 13, 14, 15]
}, },
{ {
"name": "side5", "name": "side5",
"origin": [0, 0, 0], "origin": [0, 0, 0],
"color": 0,
"children": [16, 17, 18, 19] "children": [16, 17, 18, 19]
}, }, 20, 21, 22]
20,
21,
22
]
} }

View File

@@ -1,10 +1,10 @@
{ {
"format_version": "1.21.6",
"credit": "Made with Blockbench", "credit": "Made with Blockbench",
"textures": { "textures": {
"0": "rocks:block/starfish_red", "0": "rocks:block/starfish_red",
"particle": "rocks:block/starfish_red" "particle": "rocks:block/starfish_red"
}, },
"gui_light": "front",
"elements": [ "elements": [
{ {
"from": [9.5, 0, 6.5], "from": [9.5, 0, 6.5],
@@ -59,211 +59,211 @@
} }
}, },
{ {
"from": [11, 0, 5.25], "from": [10.75, 0, 6],
"to": [15, 1, 6.25], "to": [11.75, 1, 10],
"rotation": {"angle": -17.5, "axis": "y", "origin": [11, 0, 6]}, "rotation": {"angle": 72.5, "axis": "y", "origin": [11, 0, 6]},
"faces": { "faces": {
"north": {"uv": [0, 4, 4, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [9, 4, 10, 5], "texture": "#0"}, "east": {"uv": [0, 4, 4, 5], "texture": "#0"},
"south": {"uv": [5, 4, 9, 5], "texture": "#0"}, "south": {"uv": [9, 4, 10, 5], "texture": "#0"},
"west": {"uv": [4, 4, 5, 5], "texture": "#0"}, "west": {"uv": [5, 4, 9, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 0], "rotation": 270, "texture": "#0"}, "up": {"uv": [5, 4, 4, 0], "texture": "#0"},
"down": {"uv": [6, 0, 5, 4], "rotation": 90, "texture": "#0"} "down": {"uv": [6, 0, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [11, 0.02, 5.5], "from": [9.5, 0.02, 5],
"to": [14, 1.02, 6.5], "to": [10.5, 1.02, 8],
"rotation": {"angle": -17.5, "axis": "y", "origin": [11, 0, 5]}, "rotation": {"angle": 72.5, "axis": "y", "origin": [11, 0, 5]},
"faces": { "faces": {
"north": {"uv": [1, 4, 4, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [8, 4, 9, 5], "texture": "#0"}, "east": {"uv": [1, 4, 4, 5], "texture": "#0"},
"south": {"uv": [5, 4, 8, 5], "texture": "#0"}, "south": {"uv": [8, 4, 9, 5], "texture": "#0"},
"west": {"uv": [4, 4, 5, 5], "texture": "#0"}, "west": {"uv": [5, 4, 8, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 1], "rotation": 270, "texture": "#0"}, "up": {"uv": [5, 4, 4, 1], "texture": "#0"},
"down": {"uv": [6, 1, 5, 4], "rotation": 90, "texture": "#0"} "down": {"uv": [6, 1, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [11, 0.01, 5], "from": [10, 0.01, 5],
"to": [14, 1.01, 6], "to": [11, 1.01, 8],
"rotation": {"angle": -17.5, "axis": "y", "origin": [11, 0, 5]}, "rotation": {"angle": 72.5, "axis": "y", "origin": [11, 0, 5]},
"faces": { "faces": {
"north": {"uv": [1, 4, 4, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [8, 4, 9, 5], "texture": "#0"}, "east": {"uv": [1, 4, 4, 5], "texture": "#0"},
"south": {"uv": [5, 4, 8, 5], "texture": "#0"}, "south": {"uv": [8, 4, 9, 5], "texture": "#0"},
"west": {"uv": [4, 4, 5, 5], "texture": "#0"}, "west": {"uv": [5, 4, 8, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 1], "rotation": 270, "texture": "#0"}, "up": {"uv": [5, 4, 4, 1], "texture": "#0"},
"down": {"uv": [6, 1, 5, 4], "rotation": 90, "texture": "#0"} "down": {"uv": [6, 1, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [11.6, -0.01, 4.2], "from": [6.4, -0.01, 5],
"to": [13.6, 0.99, 6.2], "to": [8.4, 0.99, 7],
"rotation": {"angle": -17.5, "axis": "y", "origin": [9.6, 0, 3]}, "rotation": {"angle": 72.5, "axis": "y", "origin": [9.6, 0, 3]},
"faces": { "faces": {
"north": {"uv": [1, 4, 3, 5], "texture": "#0"}, "north": {"uv": [3, 4, 5, 5], "texture": "#0"},
"east": {"uv": [7, 4, 9, 5], "texture": "#0"}, "east": {"uv": [1, 4, 3, 5], "texture": "#0"},
"south": {"uv": [5, 4, 7, 5], "texture": "#0"}, "south": {"uv": [7, 4, 9, 5], "texture": "#0"},
"west": {"uv": [3, 4, 5, 5], "texture": "#0"}, "west": {"uv": [5, 4, 7, 5], "texture": "#0"},
"up": {"uv": [5, 4, 3, 2], "rotation": 270, "texture": "#0"}, "up": {"uv": [5, 4, 3, 2], "texture": "#0"},
"down": {"uv": [7, 2, 5, 4], "rotation": 90, "texture": "#0"} "down": {"uv": [7, 2, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [5, 0, 5.5], "from": [8.5, 0, 6],
"to": [9, 1, 6.5], "to": [9.5, 1, 10],
"rotation": {"angle": 17.5, "axis": "y", "origin": [9, 0, 6]}, "rotation": {"angle": -72.5, "axis": "y", "origin": [9, 0, 6]},
"faces": { "faces": {
"north": {"uv": [5, 4, 9, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [4, 4, 5, 5], "texture": "#0"}, "east": {"uv": [0, 4, 4, 5], "texture": "#0"},
"south": {"uv": [0, 4, 4, 5], "texture": "#0"}, "south": {"uv": [9, 4, 10, 5], "texture": "#0"},
"west": {"uv": [9, 4, 10, 5], "texture": "#0"}, "west": {"uv": [5, 4, 9, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 0], "rotation": 90, "texture": "#0"}, "up": {"uv": [5, 4, 4, 0], "texture": "#0"},
"down": {"uv": [6, 0, 5, 4], "rotation": 270, "texture": "#0"} "down": {"uv": [6, 0, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [6, 0.02, 5.25], "from": [7.75, 0.02, 6.5],
"to": [9, 1.02, 6.25], "to": [8.75, 1.02, 9.5],
"rotation": {"angle": 17.5, "axis": "y", "origin": [9, 0, 6.5]}, "rotation": {"angle": -72.5, "axis": "y", "origin": [9, 0, 6.5]},
"faces": { "faces": {
"north": {"uv": [5, 4, 8, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [4, 4, 5, 5], "texture": "#0"}, "east": {"uv": [1, 4, 4, 5], "texture": "#0"},
"south": {"uv": [1, 4, 4, 5], "texture": "#0"}, "south": {"uv": [8, 4, 9, 5], "texture": "#0"},
"west": {"uv": [8, 4, 9, 5], "texture": "#0"}, "west": {"uv": [5, 4, 8, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 1], "rotation": 90, "texture": "#0"}, "up": {"uv": [5, 4, 4, 1], "texture": "#0"},
"down": {"uv": [6, 1, 5, 4], "rotation": 270, "texture": "#0"} "down": {"uv": [6, 1, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [6, 0.01, 5.75], "from": [8.25, 0.01, 6.5],
"to": [9, 1.01, 6.75], "to": [9.25, 1.01, 9.5],
"rotation": {"angle": 17.5, "axis": "y", "origin": [9, 0, 6.5]}, "rotation": {"angle": -72.5, "axis": "y", "origin": [9, 0, 6.5]},
"faces": { "faces": {
"north": {"uv": [5, 4, 8, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [4, 4, 5, 5], "texture": "#0"}, "east": {"uv": [1, 4, 4, 5], "texture": "#0"},
"south": {"uv": [1, 4, 4, 5], "texture": "#0"}, "south": {"uv": [8, 4, 9, 5], "texture": "#0"},
"west": {"uv": [8, 4, 9, 5], "texture": "#0"}, "west": {"uv": [5, 4, 8, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 1], "rotation": 90, "texture": "#0"}, "up": {"uv": [5, 4, 4, 1], "texture": "#0"},
"down": {"uv": [6, 1, 5, 4], "rotation": 270, "texture": "#0"} "down": {"uv": [6, 1, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [8, -0.01, 4], "from": [9, -0.01, 9],
"to": [10, 0.99, 6], "to": [11, 0.99, 11],
"rotation": {"angle": 17.5, "axis": "y", "origin": [12, 0, 7]}, "rotation": {"angle": -72.5, "axis": "y", "origin": [12, 0, 7]},
"faces": { "faces": {
"north": {"uv": [5, 4, 7, 5], "texture": "#0"}, "north": {"uv": [3, 4, 5, 5], "texture": "#0"},
"east": {"uv": [3, 4, 5, 5], "texture": "#0"}, "east": {"uv": [1, 4, 3, 5], "texture": "#0"},
"south": {"uv": [1, 4, 3, 5], "texture": "#0"}, "south": {"uv": [7, 4, 9, 5], "texture": "#0"},
"west": {"uv": [7, 4, 9, 5], "texture": "#0"}, "west": {"uv": [5, 4, 7, 5], "texture": "#0"},
"up": {"uv": [5, 4, 3, 2], "rotation": 90, "texture": "#0"}, "up": {"uv": [5, 4, 3, 2], "texture": "#0"},
"down": {"uv": [7, 2, 5, 4], "rotation": 270, "texture": "#0"} "down": {"uv": [7, 2, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [8.5, 0, 0.6], "from": [8.5, 0, 3.4],
"to": [9.5, 1, 4.6], "to": [9.5, 1, 7.4],
"rotation": {"angle": 35, "axis": "y", "origin": [9, 0, 4]}, "rotation": {"angle": -145, "axis": "y", "origin": [9, 0, 4]},
"faces": { "faces": {
"north": {"uv": [9, 4, 10, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [5, 4, 9, 5], "texture": "#0"}, "east": {"uv": [0, 4, 4, 5], "texture": "#0"},
"south": {"uv": [4, 4, 5, 5], "texture": "#0"}, "south": {"uv": [9, 4, 10, 5], "texture": "#0"},
"west": {"uv": [0, 4, 4, 5], "texture": "#0"}, "west": {"uv": [5, 4, 9, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 0], "rotation": 180, "texture": "#0"}, "up": {"uv": [5, 4, 4, 0], "texture": "#0"},
"down": {"uv": [6, 0, 5, 4], "rotation": 180, "texture": "#0"} "down": {"uv": [6, 0, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [8.75, 0.02, 2.3], "from": [6.25, 0.02, 4.7],
"to": [9.75, 1.02, 5.3], "to": [7.25, 1.02, 7.7],
"rotation": {"angle": 35, "axis": "y", "origin": [8, 0, 5]}, "rotation": {"angle": -145, "axis": "y", "origin": [8, 0, 5]},
"faces": { "faces": {
"north": {"uv": [8, 4, 9, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [5, 4, 8, 5], "texture": "#0"}, "east": {"uv": [1, 4, 4, 5], "texture": "#0"},
"south": {"uv": [4, 4, 5, 5], "texture": "#0"}, "south": {"uv": [8, 4, 9, 5], "texture": "#0"},
"west": {"uv": [1, 4, 4, 5], "texture": "#0"}, "west": {"uv": [5, 4, 8, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 1], "rotation": 180, "texture": "#0"}, "up": {"uv": [5, 4, 4, 1], "texture": "#0"},
"down": {"uv": [6, 1, 5, 4], "rotation": 180, "texture": "#0"} "down": {"uv": [6, 1, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [8.75, 0.01, 1.6], "from": [8.25, 0.01, 3.4],
"to": [9.75, 1.01, 4.6], "to": [9.25, 1.01, 6.4],
"rotation": {"angle": 35, "axis": "y", "origin": [9, 0, 4]}, "rotation": {"angle": -145, "axis": "y", "origin": [9, 0, 4]},
"faces": { "faces": {
"north": {"uv": [8, 4, 9, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [5, 4, 8, 5], "texture": "#0"}, "east": {"uv": [1, 4, 4, 5], "texture": "#0"},
"south": {"uv": [4, 4, 5, 5], "texture": "#0"}, "south": {"uv": [8, 4, 9, 5], "texture": "#0"},
"west": {"uv": [1, 4, 4, 5], "texture": "#0"}, "west": {"uv": [5, 4, 8, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 1], "rotation": 180, "texture": "#0"}, "up": {"uv": [5, 4, 4, 1], "texture": "#0"},
"down": {"uv": [6, 1, 5, 4], "rotation": 180, "texture": "#0"} "down": {"uv": [6, 1, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [9, -0.01, 3.5], "from": [5, -0.01, 6.5],
"to": [11, 0.99, 5.5], "to": [7, 0.99, 8.5],
"rotation": {"angle": 35, "axis": "y", "origin": [8, 0, 6]}, "rotation": {"angle": -145, "axis": "y", "origin": [8, 0, 6]},
"faces": { "faces": {
"north": {"uv": [7, 4, 9, 5], "texture": "#0"}, "north": {"uv": [3, 4, 5, 5], "texture": "#0"},
"east": {"uv": [5, 4, 7, 5], "texture": "#0"}, "east": {"uv": [1, 4, 3, 5], "texture": "#0"},
"south": {"uv": [3, 4, 5, 5], "texture": "#0"}, "south": {"uv": [7, 4, 9, 5], "texture": "#0"},
"west": {"uv": [1, 4, 3, 5], "texture": "#0"}, "west": {"uv": [5, 4, 7, 5], "texture": "#0"},
"up": {"uv": [5, 4, 3, 2], "rotation": 180, "texture": "#0"}, "up": {"uv": [5, 4, 3, 2], "texture": "#0"},
"down": {"uv": [7, 2, 5, 4], "rotation": 180, "texture": "#0"} "down": {"uv": [7, 2, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [10.65, 0, 0.7], "from": [12.35, 0, 3.3],
"to": [11.65, 1, 4.7], "to": [13.35, 1, 7.3],
"rotation": {"angle": -35, "axis": "y", "origin": [12, 0, 4]}, "rotation": {"angle": 145, "axis": "y", "origin": [12, 0, 4]},
"faces": { "faces": {
"north": {"uv": [9, 4, 10, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [5, 4, 9, 5], "texture": "#0"}, "east": {"uv": [0, 4, 4, 5], "texture": "#0"},
"south": {"uv": [4, 4, 5, 5], "texture": "#0"}, "south": {"uv": [9, 4, 10, 5], "texture": "#0"},
"west": {"uv": [0, 4, 4, 5], "texture": "#0"}, "west": {"uv": [5, 4, 9, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 0], "rotation": 180, "texture": "#0"}, "up": {"uv": [5, 4, 4, 0], "texture": "#0"},
"down": {"uv": [6, 0, 5, 4], "rotation": 180, "texture": "#0"} "down": {"uv": [6, 0, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [10.5, 0.02, 1], "from": [8.5, 0.02, 4],
"to": [11.5, 1.02, 4], "to": [9.5, 1.02, 7],
"rotation": {"angle": -35, "axis": "y", "origin": [10, 0, 4]}, "rotation": {"angle": 145, "axis": "y", "origin": [10, 0, 4]},
"faces": { "faces": {
"north": {"uv": [8, 4, 9, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [5, 4, 8, 5], "texture": "#0"}, "east": {"uv": [1, 4, 4, 5], "texture": "#0"},
"south": {"uv": [4, 4, 5, 5], "texture": "#0"}, "south": {"uv": [8, 4, 9, 5], "texture": "#0"},
"west": {"uv": [1, 4, 4, 5], "texture": "#0"}, "west": {"uv": [5, 4, 8, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 1], "rotation": 180, "texture": "#0"}, "up": {"uv": [5, 4, 4, 1], "texture": "#0"},
"down": {"uv": [6, 1, 5, 4], "rotation": 180, "texture": "#0"} "down": {"uv": [6, 1, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [10, 0.01, 1], "from": [9, 0.01, 4],
"to": [11, 1.01, 4], "to": [10, 1.01, 7],
"rotation": {"angle": -35, "axis": "y", "origin": [10, 0, 4]}, "rotation": {"angle": 145, "axis": "y", "origin": [10, 0, 4]},
"faces": { "faces": {
"north": {"uv": [8, 4, 9, 5], "texture": "#0"}, "north": {"uv": [4, 4, 5, 5], "texture": "#0"},
"east": {"uv": [5, 4, 8, 5], "texture": "#0"}, "east": {"uv": [1, 4, 4, 5], "texture": "#0"},
"south": {"uv": [4, 4, 5, 5], "texture": "#0"}, "south": {"uv": [8, 4, 9, 5], "texture": "#0"},
"west": {"uv": [1, 4, 4, 5], "texture": "#0"}, "west": {"uv": [5, 4, 8, 5], "texture": "#0"},
"up": {"uv": [5, 4, 4, 1], "rotation": 180, "texture": "#0"}, "up": {"uv": [5, 4, 4, 1], "texture": "#0"},
"down": {"uv": [6, 1, 5, 4], "rotation": 180, "texture": "#0"} "down": {"uv": [6, 1, 5, 4], "texture": "#0"}
} }
}, },
{ {
"from": [9, -0.01, 1.5], "from": [7, -0.01, 6.5],
"to": [11, 0.99, 3.5], "to": [9, 0.99, 8.5],
"rotation": {"angle": -35, "axis": "y", "origin": [9, 0, 5]}, "rotation": {"angle": 145, "axis": "y", "origin": [9, 0, 5]},
"faces": { "faces": {
"north": {"uv": [7, 4, 9, 5], "texture": "#0"}, "north": {"uv": [3, 4, 5, 5], "texture": "#0"},
"east": {"uv": [5, 4, 7, 5], "texture": "#0"}, "east": {"uv": [1, 4, 3, 5], "texture": "#0"},
"south": {"uv": [3, 4, 5, 5], "texture": "#0"}, "south": {"uv": [7, 4, 9, 5], "texture": "#0"},
"west": {"uv": [1, 4, 3, 5], "texture": "#0"}, "west": {"uv": [5, 4, 7, 5], "texture": "#0"},
"up": {"uv": [5, 4, 3, 2], "rotation": 180, "texture": "#0"}, "up": {"uv": [5, 4, 3, 2], "texture": "#0"},
"down": {"uv": [7, 2, 5, 4], "rotation": 180, "texture": "#0"} "down": {"uv": [7, 2, 5, 4], "texture": "#0"}
} }
}, },
{ {
@@ -306,39 +306,67 @@
} }
} }
], ],
"display": {
"thirdperson_righthand": {
"rotation": [65, 35, 0],
"translation": [0, 2.25, 3.5],
"scale": [0.5, 0.5, 0.5]
},
"thirdperson_lefthand": {
"rotation": [65, 35, 0],
"translation": [1.5, 2.5, 3.5],
"scale": [0.5, 0.5, 0.5]
},
"firstperson_righthand": {
"rotation": [29, 0, 23],
"translation": [3.25, 3.75, 0]
},
"firstperson_lefthand": {
"rotation": [29, 0, 23],
"translation": [6.25, 3.75, 0]
},
"ground": {
"translation": [-1.75, 3.75, 1.5],
"scale": [0.75, 0.75, 0.75]
},
"gui": {
"rotation": [90, 35, 0],
"translation": [0, -5.75, 0],
"scale": [1.5, 1.5, 1.5]
},
"head": {
"translation": [-2, 14.25, 3]
},
"fixed": {
"rotation": [-90, 0, 0],
"translation": [-2.75, 3.5, -12],
"scale": [1.5, 1.5, 1.5]
}
},
"groups": [ "groups": [
{ {
"name": "side1", "name": "side1",
"origin": [0, 0, 0], "origin": [0, 0, 0],
"color": 0,
"children": [0, 1, 2, 3] "children": [0, 1, 2, 3]
}, },
{ {
"name": "side2", "name": "side2",
"origin": [0, 0, 0], "origin": [0, 0, 0],
"color": 0,
"children": [4, 5, 6, 7] "children": [4, 5, 6, 7]
}, },
{ {
"name": "side3", "name": "side3",
"origin": [0, 0, 0], "origin": [0, 0, 0],
"color": 0,
"children": [8, 9, 10, 11] "children": [8, 9, 10, 11]
}, },
{ {
"name": "side4", "name": "side4",
"origin": [0, 0, 0], "origin": [0, 0, 0],
"color": 0,
"children": [12, 13, 14, 15] "children": [12, 13, 14, 15]
}, },
{ {
"name": "side5", "name": "side5",
"origin": [0, 0, 0], "origin": [0, 0, 0],
"color": 0,
"children": [16, 17, 18, 19] "children": [16, 17, 18, 19]
}, }, 20, 21, 22]
20,
21,
22
]
} }

View File

@@ -1,41 +0,0 @@
{
"parent": "rocks:block/starfish_orange",
"gui_light": "front",
"display": {
"thirdperson_righthand": {
"rotation": [65, 35, 0],
"translation": [0.75, 4.75, 3.5],
"scale": [0.5, 0.5, 0.5]
},
"thirdperson_lefthand": {
"rotation": [65, 35, 0],
"translation": [-1.75, 2.75, 3.5],
"scale": [0.5, 0.5, 0.5]
},
"firstperson_righthand": {
"rotation": [29, 0, 23],
"translation": [3.25, 8.25, 0]
},
"firstperson_lefthand": {
"rotation": [29, 0, 23],
"translation": [-3, 7.25, 0]
},
"ground": {
"translation": [2.5, 3.75, -1],
"scale": [0.75, 0.75, 0.75]
},
"gui": {
"rotation": [90, 35, 0],
"translation": [2.25, 3.5, 0],
"scale": [1.5, 1.5, 1.5]
},
"head": {
"translation": [3, 14.25, -0.75]
},
"fixed": {
"rotation": [-90, 0, 0],
"translation": [4.25, -2, -12],
"scale": [1.5, 1.5, 1.5]
}
}
}

View File

@@ -1,41 +0,0 @@
{
"parent": "rocks:block/starfish_pink",
"gui_light": "front",
"display": {
"thirdperson_righthand": {
"rotation": [65, 35, 0],
"translation": [0, 2.25, 3.5],
"scale": [0.5, 0.5, 0.5]
},
"thirdperson_lefthand": {
"rotation": [65, 35, 0],
"translation": [0, 2.5, 3.5],
"scale": [0.5, 0.5, 0.5]
},
"firstperson_righthand": {
"rotation": [29, 0, 23],
"translation": [3.25, 3.75, 0]
},
"firstperson_lefthand": {
"rotation": [29, 0, 23],
"translation": [6.25, 3.75, 0]
},
"ground": {
"translation": [0.25, 3.75, 0],
"scale": [0.75, 0.75, 0.75]
},
"gui": {
"rotation": [90, 35, 0],
"translation": [0.25, -1.5, 0],
"scale": [1.5, 1.5, 1.5]
},
"head": {
"translation": [-0.25, 14.25, 0.75]
},
"fixed": {
"rotation": [-90, 0, 0],
"translation": [-0.25, 1.25, -12],
"scale": [1.5, 1.5, 1.5]
}
}
}

View File

@@ -1,41 +0,0 @@
{
"parent": "rocks:block/starfish_red",
"gui_light": "front",
"display": {
"thirdperson_righthand": {
"rotation": [65, 35, 0],
"translation": [0, 2.25, 3.5],
"scale": [0.5, 0.5, 0.5]
},
"thirdperson_lefthand": {
"rotation": [65, 35, 0],
"translation": [1.5, 2.5, 3.5],
"scale": [0.5, 0.5, 0.5]
},
"firstperson_righthand": {
"rotation": [29, 0, 23],
"translation": [3.25, 3.75, 0]
},
"firstperson_lefthand": {
"rotation": [29, 0, 23],
"translation": [6.25, 3.75, 0]
},
"ground": {
"translation": [-1.75, 3.75, 1.5],
"scale": [0.75, 0.75, 0.75]
},
"gui": {
"rotation": [90, 35, 0],
"translation": [0, -5.75, 0],
"scale": [1.5, 1.5, 1.5]
},
"head": {
"translation": [-2, 14.25, 3]
},
"fixed": {
"rotation": [-90, 0, 0],
"translation": [-2.75, 3.5, -12],
"scale": [1.5, 1.5, 1.5]
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 233 B

After

Width:  |  Height:  |  Size: 244 B

Binary file not shown.

View File

@@ -0,0 +1,17 @@
{
"format_version": 2,
"header": {
"name": "pack.rocks",
"description": "pack.description",
"uuid": "420e8521-598a-428d-9a44-ed3e2f1b303d",
"version": [1, 0, 0],
"min_engine_version": [1, 16, 0]
},
"modules": [
{
"type": "resources",
"uuid": "517e7279-6a76-4956-b34d-f2e126d3187a",
"version": [1, 0, 0]
}
]
}

View File

@@ -0,0 +1,59 @@
{
"format_version": "1.12.0",
"minecraft:geometry": [
{
"description": {
"identifier": "geometry.large_rock",
"texture_width": 16,
"texture_height": 16,
"visible_bounds_width": 2,
"visible_bounds_height": 1.5,
"visible_bounds_offset": [0, 0.25, 0]
},
"bones": [
{
"name": "bb_main",
"pivot": [0, 0, 0],
"cubes": [
{
"origin": [-5, 0, -3],
"size": [12, 3, 7],
"uv": {
"north": {"uv": [0, 0], "uv_size": [12, 3]},
"east": {"uv": [0, 0], "uv_size": [7, 3]},
"south": {"uv": [0, 0], "uv_size": [12, 3]},
"west": {"uv": [0, 0], "uv_size": [7, 3]},
"up": {"uv": [12, 7], "uv_size": [-12, -7]},
"down": {"uv": [12, 7], "uv_size": [-12, -7]}
}
},
{
"origin": [-1, 3, -1],
"size": [7, 1, 4],
"uv": {
"north": {"uv": [0, 0], "uv_size": [7, 1]},
"east": {"uv": [0, 0], "uv_size": [4, 1]},
"south": {"uv": [0, 0], "uv_size": [7, 1]},
"west": {"uv": [0, 0], "uv_size": [4, 1]},
"up": {"uv": [7, 4], "uv_size": [-7, -4]},
"down": {"uv": [7, 4], "uv_size": [-7, -4]}
}
},
{
"origin": [-4, 0, -5],
"size": [8, 1, 10],
"uv": {
"north": {"uv": [0, 0], "uv_size": [8, 1]},
"east": {"uv": [0, 0], "uv_size": [10, 1]},
"south": {"uv": [0, 0], "uv_size": [8, 1]},
"west": {"uv": [0, 0], "uv_size": [10, 1]},
"up": {"uv": [8, 10], "uv_size": [-8, -10]},
"down": {"uv": [8, 10], "uv_size": [-8, -10]}
}
}
]
}
]
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@@ -30,7 +30,9 @@
] ]
}, },
"accessWidener" : "thisrocks.accesswidener", "mixins": [
"rocks.mixins.json"
],
"depends": { "depends": {
"fabricloader": ">=0.7.2", "fabricloader": ">=0.7.2",