This commit is contained in:
Bixilon 2022-04-15 15:27:46 +02:00
parent 16757b614c
commit fd7a04e0c5
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
6 changed files with 31 additions and 17 deletions

View File

@ -23,13 +23,13 @@ stages:
build:
stage: build
script:
- "cd wrapper && python3 PixLyzer.py --only-version=22w14a --dont-compile --only-map"
- "cd wrapper && python3 PixLyzer.py --only-version=22w15a --dont-compile --only-map"
- 'cd ../ && mvn clean $MAVEN_CLI_OPTS verify'
latest:
stage: latest
script:
- "cd wrapper && python3 PixLyzer.py --only-version=22w14a --dont-compile"
- "cd wrapper && python3 PixLyzer.py --only-version=22w15a --dont-compile"
1.18.2:
stage: 1.18.2

View File

@ -17,7 +17,7 @@
<kotlin.compiler.jvmTarget>1.8</kotlin.compiler.jvmTarget>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<minecraft.version>22w14a</minecraft.version>
<minecraft.version>22w15a</minecraft.version>
</properties>
<repositories>
@ -248,9 +248,9 @@
<dependency>
<groupId>com.mojang</groupId>
<artifactId>datafixerupper</artifactId>
<version>4.1.27</version>
<version>5.0.28</version>
<scope>system</scope>
<systemPath>${project.basedir}/wrapper/data/data/dependencies/libraries/com/mojang/datafixerupper/4.1.27/datafixerupper-4.1.27.jar</systemPath>
<systemPath>${project.basedir}/wrapper/data/data/dependencies/libraries/com/mojang/datafixerupper/5.0.28/datafixerupper-5.0.28.jar</systemPath>
</dependency>
<dependency>

View File

@ -87,13 +87,7 @@ object BlockGenerator : Generator(
}
val offsetType = OFFSET_TYPE_NAME_METHOD.invoke(BLOCK_GET_OFFSET_TYPE.invoke(block)) as String
if (offsetType != "NONE") {
blockData["offset_type"] = offsetType.lowercase(Locale.getDefault())
BLOCK_GET_MAX_OFFSET?.invoke(block)?.let {
blockData["max_model_offset"] = it as Float
}
}
block.putOffsetType(blockData)
if (block::class.java.of("CampfireBlock")) {
block.variable<Boolean>("emitsParticles")?.let {
@ -205,6 +199,8 @@ object BlockGenerator : Generator(
for (state in stateMap[block]!!) {
val stateData = compound()
state.putOffsetType(stateData)
if (state.luminance != 0) {
stateData["luminance"] = state.luminance
}
@ -423,6 +419,20 @@ object BlockGenerator : Generator(
private val EMPTY_BLOCK_POSITION = BlockPos(0, 0, 0)
private fun Any.putOffsetType(data: MutableMap<Any, Any>) {
if ((this is Block && BLOCK_GET_OFFSET_TYPE == null) || (this is BlockState && BLOCK_STATE_OFFSET_FIELD == null)) {
return
}
val type = (BLOCK_GET_OFFSET_TYPE ?: BLOCK_STATE_OFFSET_FIELD)?.invoke(this) ?: return
val offsetType = OFFSET_TYPE_NAME_METHOD.invoke(type) as String
if (offsetType != "NONE") {
data["offset_type"] = offsetType.lowercase(Locale.getDefault())
BLOCK_GET_MAX_OFFSET?.invoke(this)?.let {
data["max_model_offset"] = it as Float
}
}
}
private val BLOCK_STATE_GET_RAYCAST_SHAPE = try {
BlockState::class.java.getMethod("getRaycastShape", World::class.java, BlockPos::class.java)
} catch (exception: Exception) {
@ -439,7 +449,7 @@ object BlockGenerator : Generator(
private val BLOCK_SETTINGS_FIELD = getField(getClass("net.minecraft.block.AbstractBlock"), "settings")
private val BLOCK_GET_MAX_OFFSET = getGetter(getClass("net.minecraft.block.AbstractBlock"), "getMaxModelOffset")
private val BLOCK_GET_OFFSET_TYPE = getClass("net.minecraft.block.AbstractBlock", "net.minecraft.block.Block")!!.getMethod("getOffsetType")
private val BLOCK_GET_OFFSET_TYPE = getClass("net.minecraft.block.AbstractBlock", "net.minecraft.block.Block")!!.getGetter("getOffsetType")
private val OFFSET_TYPE_NAME_METHOD = getClass("net.minecraft.block.AbstractBlock\$OffsetType", "net.minecraft.block.Block\$OffsetType")!!.getMethod("name")
@ -480,6 +490,7 @@ object BlockGenerator : Generator(
private val BLOCK_STATE_CACHE_FIELD = BLOCK_STATE_BASE_CLASS.getDeclaredField("shapeCache")
private val REQUIRES_CORRECT_TOOL_FOR_DROP_FIELDS = getField(getClass("net.minecraft.block.AbstractBlock\$AbstractBlockState", "net.minecraft.block.BlockState"), "toolRequired")
private val BLOCK_STATE_OFFSET_FIELD = BLOCK_STATE_BASE_CLASS.getGetter("getOffsetType", "method_43280")
private lateinit var BLOCK_STATE_CACHE_CLASS: Class<*>

View File

@ -56,12 +56,13 @@ object EntityDataDataTypeGenerator : Generator(
"FACING" -> "DIRECTION"
"OPTIONAL_UUID" -> "OPTIONAL_UUID"
"field_38825" -> "GLOBAL_POSITION"
"OPTIONAL_GLOBAL_POS" -> "OPTIONAL_GLOBAL_POSITION"
"NBT_COMPOUND", "TAG_COMPOUND" -> "NBT"
"VILLAGER_DATA" -> "VILLAGER_DATA"
"OPTIONAL_INT" -> "OPTIONAL_INTEGER"
"ENTITY_POSE" -> "POSE"
"field_38826" -> "CAT_VARIANT"
"field_38827" -> "FROG_VARIANT"
"field_38826", "CAT_VARIANT" -> "CAT_VARIANT"
"field_38827", "FROG_VARIANT" -> "FROG_VARIANT"
"FIREWORK_DATA", "field_17910" -> "FIREWORK_DATA"
else -> TODO("Unknown meta data type: $this")
}

View File

@ -171,7 +171,8 @@
"LEFT_SHOULDER_ENTITY": "PLAYER_LEFT_SHOULDER_DATA",
"RIGHT_SHOULDER_ENTITY": "PLAYER_RIGHT_SHOULDER_DATA",
"field_38536": "22W13A_PLAYER_CARRIED_BLOCK",
"field_38745": "PLAYER_LAST_DEATH_POSITION"
"field_38745": "PLAYER_LAST_DEATH_POSITION",
"LAST_DEATH_POS": "PLAYER_LAST_DEATH_POSITION"
}
},
"BatEntity": {
@ -224,6 +225,7 @@
"CatEntity": {
"data": {
"CAT_TYPE": "CAT_VARIANT",
"CAT_VARIANT": "CAT_VARIANT",
"SLEEPING_WITH_OWNER": "CAT_IS_LYING",
"IN_SLEEPING_POSE": "CAT_IS_LYING",
"HEAD_DOWN": "CAT_IS_RELAXED",

File diff suppressed because one or more lines are too long