Skip to content

Commit 920274b

Browse files
committed
Add a Project setting to enable 1.20 support
1 parent 4a775be commit 920274b

File tree

6 files changed

+53
-2
lines changed

6 files changed

+53
-2
lines changed

exporters/datapackExporter/exporter/translations.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@ export function loadTranslations() {
77
addTranslations('en', en as Record<string, string>)
88

99
return {
10+
target_minecraft_version: {
11+
displayName: translate(
12+
'animated_java.datapack_exporter.settings.target_minecraft_version'
13+
),
14+
description: translate(
15+
'animated_java.datapack_exporter.settings.target_minecraft_version.description'
16+
).split('\n'),
17+
},
1018
datapack_mcmeta: {
1119
name: translate('animated_java.datapack_exporter.settings.datapack_mcmeta'),
1220
description: translate(

exporters/datapackExporter/lang/en.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Animation Exporter
22
animated_java.datapack_exporter.name: Data Pack Exporter
3+
4+
animated_java.datapack_exporter.settings.target_minecraft_version: Target Minecraft Version
5+
animated_java.datapack_exporter.settings.target_minecraft_version.description: |-
6+
The version of Minecraft that you plan on using the data pack in.
7+
38
animated_java.datapack_exporter.settings.datapack_mcmeta: Data Pack
49
animated_java.datapack_exporter.settings.datapack_mcmeta.description: |-
510
The Data Pack to inject the generated functions into.

src/lang/en.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ animated_java.project_settings.project_resolution.description: |-
6464
The UV resolution of the Project.
6565
This should equal the resolution of the largest texture in your project.
6666
67+
animated_java.project_settings.target_minecraft_version: Target Minecraft Version
68+
animated_java.project_settings.target_minecraft_version.description: |-
69+
The version of Minecraft you expect to use the exported rig in.
70+
6771
animated_java.project_settings.resourcepack_group: Resource Pack
6872

6973
animated_java.project_settings.rig_item: Rig Item

src/projectSettings.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import * as events from './events'
1414
export interface IAnimatedJavaProjectSettings {
1515
project_namespace: Settings.InlineTextSetting
1616
project_resolution: Settings.DoubleNumberSetting
17+
target_minecraft_version: Settings.DropdownSetting<string>
1718
rig_item: Settings.InlineTextSetting
1819
rig_item_model: Settings.InlineTextSetting
1920
rig_export_folder: Settings.FolderSetting
@@ -40,6 +41,12 @@ const TRANSLATIONS = {
4041
'animated_java.project_settings.project_resolution.description'
4142
).split('\n'),
4243
},
44+
target_minecraft_version: {
45+
displayName: translate('animated_java.project_settings.target_minecraft_version'),
46+
description: translate(
47+
'animated_java.project_settings.target_minecraft_version.description'
48+
).split('\n'),
49+
},
4350
rig_item: {
4451
displayName: translate('animated_java.project_settings.rig_item'),
4552
description: translate('animated_java.project_settings.rig_item.description').split('\n'),
@@ -167,6 +174,24 @@ export function getDefaultProjectSettings(): IAnimatedJavaProjectSettings {
167174
}
168175
),
169176

177+
target_minecraft_version: new Settings.DropdownSetting({
178+
id: 'animated_java:project_settings/target_minecraft_version',
179+
displayName: TRANSLATIONS.target_minecraft_version.displayName,
180+
description: TRANSLATIONS.target_minecraft_version.description,
181+
defaultValue: 0,
182+
options: [
183+
{
184+
name: '1.19.4',
185+
value: '1.19.4',
186+
},
187+
{
188+
name: '1.20+',
189+
value: '1.20+',
190+
},
191+
],
192+
docsLink: '/docs/project_settings#target_minecraft_version',
193+
}),
194+
170195
rig_item: new Settings.InlineTextSetting(
171196
{
172197
id: 'animated_java:project_settings/rig_item',
@@ -388,6 +413,10 @@ export const projectSettingStructure: GUIStructure = [
388413
type: 'setting',
389414
settingId: _.project_resolution.id,
390415
},
416+
{
417+
type: 'setting',
418+
settingId: _.target_minecraft_version.id,
419+
},
391420
],
392421
},
393422
{

src/rendering/modelRenderer.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ export interface IRenderedModel {
4040
textures: Record<string, string>
4141
elements?: IRenderedElement[]
4242
display?: {
43-
head: { rotation: [0, 180, 0] }
43+
head: { rotation: [0, number, 0] }
4444
}
4545
}
4646

@@ -294,6 +294,10 @@ function renderGroup(group: Group, rig: IRenderedRig) {
294294
throw new Error(`Invalid bone path: ${group.name} -> ${path}`)
295295
}
296296

297+
let displayRotation = 0
298+
if (Project!.animated_java_settings!.target_minecraft_version.selected!.value === '1.20+')
299+
displayRotation = 180
300+
297301
const renderedBone: IRenderedNodes['Bone'] & {
298302
model: { elements: IRenderedElement[] }
299303
} = {
@@ -307,7 +311,7 @@ function renderGroup(group: Group, rig: IRenderedRig) {
307311
textures: {},
308312
elements: [],
309313
display: {
310-
head: { rotation: [0, 180, 0] },
314+
head: { rotation: [0, displayRotation, 0] },
311315
},
312316
},
313317
modelPath: path,

test_ajmodels/test_project.ajmodel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
"settings": {
88
"project_namespace": "happy_box",
99
"project_resolution": [64, 64],
10+
"target_minecraft_version": "1.20+",
1011
"rig_item": "minecraft:white_dye",
1112
"rig_item_model": "C:\\Users\\Snave\\AppData\\Roaming\\.gdlauncher\\instances\\Snapshot Map Development\\resourcepacks\\test\\assets\\minecraft\\models\\item\\white_dye.json",
1213
"rig_export_folder": "C:\\Users\\Snave\\AppData\\Roaming\\.gdlauncher\\instances\\Snapshot Map Development\\resourcepacks\\test\\assets\\happy_box_animated_java_rig\\models\\item",

0 commit comments

Comments
 (0)