Skip to content

Commit

Permalink
0.6.18a
Browse files Browse the repository at this point in the history
Added animation must finish option to animations (#486)
Added value layer interpolated setting, improved value layer interpolations
Added max value setting to value layers (sliders snap in gesture gui now)
Added repeat to spinners when holding down mouse (#651)
Added a hidden from gesture gui (useful for animations with /cpmclient)
Drop Down menus and toggle layers use the available parameter space more efficiently (experimental export only) (Closes #608)
Increased max data block size in exported models to 16 MB
Extruded cubes now count to cube count for safety settings (3/4 of a cube)
The Show Names toggle is now saved
Editor QoL:
- Shift+Add Frame adds an empty frame
- Added clear frame button to animation dropdown
- Animation Data paste won't clear the clipboard
- New Animation Frame keybind
- Added Make Armor and Make 2nd layer to Edit/Tools
- Added an indicator to light level animation in the editor
- Added an Invert Camera Y option to settings

Updated to BTA 7.2-pre2
Ported to Quilt 1.21, Fabric 24w35a
Updated Spanish translations (#625)
Added Brazilian Portuguese translations (#624)
Updated Simplified Chinese translations (#623, #649)
Fixed crash when opening the config screen from the modlist on NeoForge 1.21
Fixed player head items not showing on 1.20.6+
Fixed wiki sidebar not loading the localized variant
Fixed open wiki tooltip not opening the localized variant
Fixed Export Update allowing incompatible update exports
Fixed finish animations breaking with value poses (Closes #647)
Fixed gui animation jittering on NeoForge 1.21

BB:
Fixed null objects breaking the animator in BlockBench with the plugin installed (Closes #643)
  • Loading branch information
tom5454 committed Sep 1, 2024
1 parent b837f2c commit bf53f44
Show file tree
Hide file tree
Showing 148 changed files with 10,799 additions and 7,848 deletions.
15,458 changes: 7,810 additions & 7,648 deletions Blockbench/cpm_plugin.js

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions Blockbench/cpm_plugin.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion CustomPlayerModels-1.10/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false

mod_version=0.6.17b
mod_version=0.6.18a
2 changes: 1 addition & 1 deletion CustomPlayerModels-1.12/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false

mod_version=0.6.17b
mod_version=0.6.18a
2 changes: 1 addition & 1 deletion CustomPlayerModels-1.14/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false

mod_version=0.6.17a
mod_version=0.6.18a
2 changes: 1 addition & 1 deletion CustomPlayerModels-1.15/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false

mod_version=0.6.17a
mod_version=0.6.18a
2 changes: 1 addition & 1 deletion CustomPlayerModels-1.16/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false

mod_version=0.6.17a
mod_version=0.6.18a
2 changes: 1 addition & 1 deletion CustomPlayerModels-1.17/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false

mod_version=0.6.17a
mod_version=0.6.18a
2 changes: 1 addition & 1 deletion CustomPlayerModels-1.18/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false

mod_version=0.6.17a
mod_version=0.6.18a
2 changes: 1 addition & 1 deletion CustomPlayerModels-1.19.3/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false

mod_version=0.6.17a
mod_version=0.6.18a
2 changes: 1 addition & 1 deletion CustomPlayerModels-1.19.4/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ dependencies {
// http://www.gradle.org/docs/current/userguide/dependency_management.html
compileOnly files("of.jar")

compileOnly fg.deobf("com.github.Virtuoel:Pehkui:3.7.8-1.19.4-forge")
compileOnly fg.deobf("curse.maven:pehkui-319596:5393098")//jitpack fails
compileOnly fg.deobf('curse.maven:vivecraft-667903:4794425')
}

Expand Down
2 changes: 1 addition & 1 deletion CustomPlayerModels-1.19.4/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false

mod_version=0.6.17a
mod_version=0.6.18a
2 changes: 1 addition & 1 deletion CustomPlayerModels-1.19/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false

mod_version=0.6.17a
mod_version=0.6.18a
2 changes: 1 addition & 1 deletion CustomPlayerModels-1.2/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false

mod_version=0.6.17a
mod_version=0.6.18a
project_type=forge
2 changes: 1 addition & 1 deletion CustomPlayerModels-1.20.2/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ mod_name=Customizable Player Models
# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default.
mod_license=MIT License
# The mod version. See https://semver.org/
mod_version=0.6.17b
mod_version=0.6.18a
# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository.
# This should match the base package used for the mod sources.
# See https://maven.apache.org/guides/mini/guide-naming-conventions.html
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ version="${file.jarVersion}" #mandatory
# A display name for the mod
displayName="Customize your minecraft avatar!" #mandatory
# A URL to query for updates for this mod. See the JSON update specification <here>
updateJSONURL="https://raw.github.com/tom5454/CustomPlayerModels/master/version-check.json" #optional
updateJSONURL="https://raw.github.com/tom5454/CustomPlayerModels/master/version-check-neoforge.json" #optional
# A URL for the "homepage" for this mod, displayed in the mod UI
displayURL="https://www.curseforge.com/minecraft/mc-mods/custom-player-models" #optional
# A file name (in the root of the mod JAR) containing a logo for display
Expand Down
2 changes: 1 addition & 1 deletion CustomPlayerModels-1.20.4/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ mod_name=Customizable Player Models
# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default.
mod_license=MIT License
# The mod version. See https://semver.org/
mod_version=0.6.17b
mod_version=0.6.18a
# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository.
# This should match the base package used for the mod sources.
# See https://maven.apache.org/guides/mini/guide-naming-conventions.html
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ version="${file.jarVersion}" #mandatory
# A display name for the mod
displayName="Customize your minecraft avatar!" #mandatory
# A URL to query for updates for this mod. See the JSON update specification <here>
updateJSONURL="https://raw.github.com/tom5454/CustomPlayerModels/master/version-check.json" #optional
updateJSONURL="https://raw.github.com/tom5454/CustomPlayerModels/master/version-check-neoforge.json" #optional
# A URL for the "homepage" for this mod, displayed in the mod UI
displayURL="https://www.curseforge.com/minecraft/mc-mods/custom-player-models" #optional
# A file name (in the root of the mod JAR) containing a logo for display
Expand Down
2 changes: 1 addition & 1 deletion CustomPlayerModels-1.20.6/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ mod_name=Customizable Player Models
# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default.
mod_license=MIT License
# The mod version. See https://semver.org/
mod_version=0.6.17b
mod_version=0.6.18a
# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository.
# This should match the base package used for the mod sources.
# See https://maven.apache.org/guides/mini/guide-naming-conventions.html
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ version="${file.jarVersion}" #mandatory
# A display name for the mod
displayName="Customize your minecraft avatar!" #mandatory
# A URL to query for updates for this mod. See the JSON update specification <here>
updateJSONURL="https://raw.github.com/tom5454/CustomPlayerModels/master/version-check.json" #optional
updateJSONURL="https://raw.github.com/tom5454/CustomPlayerModels/master/version-check-neoforge.json" #optional
# A URL for the "homepage" for this mod, displayed in the mod UI
displayURL="https://www.curseforge.com/minecraft/mc-mods/custom-player-models" #optional
# A file name (in the root of the mod JAR) containing a logo for display
Expand Down
2 changes: 1 addition & 1 deletion CustomPlayerModels-1.20/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ dependencies {
compileOnly files("stubs/of.jar")
compileOnly files("stubs/iris.jar")

compileOnly fg.deobf("com.github.Virtuoel:Pehkui:3.7.8-1.20.1-forge")
compileOnly fg.deobf("com.github.Virtuoel:Pehkui:3.8.2-1.20.1-forge")
compileOnly fg.deobf('maven.modrinth:vivecraft:1.20.1-1.1.9-forge')

compileOnly fg.deobf('curse.maven:oculus-581495:5080444')
Expand Down
2 changes: 1 addition & 1 deletion CustomPlayerModels-1.20/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false

mod_version=0.6.17b
mod_version=0.6.18a
2 changes: 1 addition & 1 deletion CustomPlayerModels-1.21/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ mod_name=Customizable Player Models
# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default.
mod_license=MIT License
# The mod version. See https://semver.org/
mod_version=0.6.18a-pre2
mod_version=0.6.18a
# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository.
# This should match the base package used for the mod sources.
# See https://maven.apache.org/guides/mini/guide-naming-conventions.html
Expand Down
2 changes: 1 addition & 1 deletion CustomPlayerModels-1.4/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false

mod_version=0.6.17a
mod_version=0.6.18a
project_type=forge
2 changes: 1 addition & 1 deletion CustomPlayerModels-1.5/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false

mod_version=0.6.17a
mod_version=0.6.18a
project_type=forge
2 changes: 1 addition & 1 deletion CustomPlayerModels-1.6/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false

mod_version=0.6.17a
mod_version=0.6.18a
project_type=forge
2 changes: 1 addition & 1 deletion CustomPlayerModels-1.7/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false

mod_version=0.6.17a
mod_version=0.6.18a
project_type=forge
2 changes: 1 addition & 1 deletion CustomPlayerModels-1.8/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false

mod_version=0.6.17b
mod_version=0.6.18a

project_type=forge
2 changes: 1 addition & 1 deletion CustomPlayerModels-BTA/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false

mod_version=0.6.17b
mod_version=0.6.18a
project_type=fabric

# BTA
Expand Down
2 changes: 1 addition & 1 deletion CustomPlayerModels-Bukkit/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false

mod_version=0.6.17b
mod_version=0.6.18a
5 changes: 3 additions & 2 deletions CustomPlayerModels-b1.7.3/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -103,9 +103,10 @@ dependencies {
modImplementation "net.modificationstation:StationAPI:${project.stapi_version}"

// Optional, but convenient mods for mod creators and users alike.
modImplementation("com.github.calmilamsy:ModMenu:${project.modmenu_version}") {
/*modImplementation("com.github.calmilamsy:ModMenu:${project.modmenu_version}") {
transitive false
}
}*///Jitpack lost the artifact
modImplementation('maven.modrinth:modmenu-beta:1.8.5-beta.3')
modImplementation("net.glasslauncher.mods:GlassConfigAPI:${project.gcapi_version}") {
transitive false
}
Expand Down
2 changes: 1 addition & 1 deletion CustomPlayerModels-b1.7.3/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false

mod_version=0.6.17a
mod_version=0.6.18a
project_type=fabric

# Fabric Properties
Expand Down
2 changes: 1 addition & 1 deletion CustomPlayerModels/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false

mod_version=0.6.18-pre1
mod_version=0.6.18
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ public class ConfigKeys {
public static final String EDITOR_EXPERIMENTAL_EXPORT = "experimentalExport0614";
public static final String UPDATE_CHECKER = "updateChecker";
public static final String KEYBINDS_MODEL = "keybindPerModel";
public static final String EDITOR_CAMERA_Y_INVERT = "editorInvertCamY";
public static final String RENDER_NAMES = "renderNames";

public static final PlayerSpecificConfigKey<Boolean> ENABLE_MODEL_LOADING = PlayerSpecificConfigKey.createBool("models", true);
public static final PlayerSpecificConfigKey<Boolean> ENABLE_ANIMATED_TEXTURES = PlayerSpecificConfigKey.createBool("animatedTex", false, KeyGroup.FRIEND, true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@

public abstract class Player<P> {
private static boolean enableRendering = true;
private static boolean enableNames = true;

private CompletableFuture<ModelDefinition> definition;
private EnumMap<AnimationMode, AnimationHandler> animHandler = new EnumMap<>(AnimationMode.class);
Expand Down Expand Up @@ -103,11 +102,12 @@ public static void setEnableRendering(boolean enableRendering) {
}

public static boolean isEnableNames() {
return enableNames;
return ModConfig.getCommonConfig().getBoolean(ConfigKeys.RENDER_NAMES, true);
}

public static void setEnableNames(boolean enableNames) {
Player.enableNames = enableNames;
ModConfig.getCommonConfig().setBoolean(ConfigKeys.RENDER_NAMES, enableNames);
ModConfig.getCommonConfig().save();
}

public static boolean isEnableLoadingInfo() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,7 @@ private ParameterInfo makeButtonInfo(EditorAnim a) {
{
ValueParameterButtonData dt = new ValueParameterButtonData();
dt.setName(a.getId());
dt.parameter = paramAlloc.allocByteSync(a.getId(), (byte) (a.layerDefault * a.maxValue));
dt.parameter = paramAlloc.allocByteSync(a.getId(), (byte) (a.layerDefault * 255));
dt.maxValue = a.maxValue;
dt.hidden = a.hidden;
ParameterInfo param = new ParameterInfo(dt, dt.parameter, a.interpolateValue);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,25 +100,26 @@ public Value(IGui gui, Editor e) {
super(gui, e, 130);

float ld = e.selectedAnim.layerDefault;
progressSlider = new Slider(gui, gui.i18nFormat("label.cpm.defLayerSettings.value", (int) (ld * 100)));
progressSlider = new Slider(gui, gui.i18nFormat("label.cpm.defLayerSettings.value", (int) (ld * e.selectedAnim.maxValue)));
progressSlider.setBounds(new Box(5, 5, 160, 20));
progressSlider.setValue(ld);
progressSlider.setAction(() -> {
progressSlider.setText(gui.i18nFormat("label.cpm.defLayerSettings.value", (int) (progressSlider.getValue() * 100)));
progressSlider.setText(gui.i18nFormat("label.cpm.defLayerSettings.value", (int) (progressSlider.getValue() * e.selectedAnim.maxValue)));
});
progressSlider.setSteps(e.selectedAnim.maxValue);
progressSlider.setSteps(1f / e.selectedAnim.maxValue);
addElement(progressSlider);

addElement(new Label(gui, gui.i18nFormat("label.cpm.defLayerSettings.max")).setBounds(new Box(5, 30, 0, 0)));
maxValueSpinner = new Spinner(gui);
maxValueSpinner.setBounds(new Box(95, 30, 70, 20));
maxValueSpinner.setDp(0);
maxValueSpinner.setValue(1f / e.selectedAnim.maxValue);
maxValueSpinner.setValue(e.selectedAnim.maxValue);
maxValueSpinner.addChangeListener(() -> {
int v = (int) maxValueSpinner.getValue();
if (v < 1)maxValueSpinner.setValue(1);
else if(v > 255)maxValueSpinner.setValue(255);
progressSlider.setSteps(1f / v);
progressSlider.setText(gui.i18nFormat("label.cpm.defLayerSettings.value", (int) (progressSlider.getValue() * v)));
});
addElement(maxValueSpinner);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,8 @@ private SettingsPanel(Frame frm, PopupPanel popup, int width, int height, Config
return (rv + 1f) / (15 * 60 + 1);
});

makeCheckbox(editor, ConfigKeys.EDITOR_CAMERA_Y_INVERT, false);

MinecraftClientAccess.get().populatePlatformSettings("editor", editor);

editorLayout.reflow();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
import com.tom.cpl.util.Hand;
import com.tom.cpl.util.ItemSlot;
import com.tom.cpm.shared.animation.AnimationEngine.AnimationMode;
import com.tom.cpm.shared.config.ConfigKeys;
import com.tom.cpm.shared.config.ModConfig;
import com.tom.cpm.shared.definition.ModelDefinition;
import com.tom.cpm.shared.editor.DisplayItem;
import com.tom.cpm.shared.gui.Keybinds;
Expand Down Expand Up @@ -332,12 +334,15 @@ public void mouseDrag(MouseEvent evt) {
cam.position.y += -f * move * dy;
cam.position.z += pz + by1.z;
} else {
boolean yFlip = ModConfig.getCommonConfig().getBoolean(ConfigKeys.EDITOR_CAMERA_Y_INVERT, false);
float pitch = (float) Math.asin(cam.look.y);
float yaw = cam.look.getYaw();
if(Float.isNaN(pitch))pitch = 0;
if(Float.isNaN(yaw))yaw = 0;
yaw += Math.toRadians(x - mx);
pitch -= Math.toRadians(y - my);
double dPitch = Math.toRadians(y - my);
if (yFlip)pitch += dPitch;
else pitch -= dPitch;
if(yaw < -Math.PI)yaw += 2 * Math.PI;
if(yaw > Math.PI)yaw -= 2 * Math.PI;
yaw = (float) MathHelper.clamp(yaw, -Math.PI, Math.PI);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ public String getName() {

@Override
public int getValue() {
if (parameter < 0 || data.gestureData.length >= parameter)return -1;
if (parameter < 0 || data.gestureData.length <= parameter)return -1;
return (data.gestureData[parameter] & value) == value ? 1 : 0;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ public String getName() {

@Override
public int getValue() {
if (parameter < 0 || data.gestureData.length >= parameter)return -1;
if (parameter < 0 || data.gestureData.length <= parameter)return -1;
return data.gestureData[parameter] == value ? 1 : 0;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ public String getName() {

@Override
public int getValue() {
if (parameter < 0 || data.gestureData.length >= parameter)return -1;
if (parameter < 0 || data.gestureData.length <= parameter)return -1;
return Byte.toUnsignedInt(data.gestureData[parameter]) * max / 255;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -392,6 +392,7 @@
"tooltip.cpm.tools.make2ndLayer": "sǝqnɔ pǝʇɔǝןǝs ןןɐ ɹoɟ ɹǝʎɐן puᄅ ɐ sǝʇɐǝɹƆ",
"tooltip.cpm.tools.makeArmorLayer": "sǝqnɔ pǝʇɔǝןǝs ןןɐ ɹoɟ sǝqnɔ ɹoɯɹɐ sǝʇɐǝɹƆ",
"tooltip.cpm.anim_hidden": "˙IԀⱯ ǝɥʇ ɹo `ǝʇɐɯıuɐ ʇuǝıןɔɯdɔ/` ɥʇıʍ suoıʇɐɯıuɐ ɹoɟ ןnɟǝsn\\\u0027ın⅁ sǝɹnʇsǝ⅁ ǝɥʇ uı uoʇʇnq ǝɥʇ sǝpıH",
"tooltip.cpm.config.editorInvertCamY": "˙ɹoʇıpǝ ǝɥʇ uı uoıʇɐʇoɹ ןɐɔıʇɹǝʌ s,ɐɹǝɯɐɔ ǝɥʇ sʇɹǝʌuI",
"tab.cpm.model": "ןǝpoW",
"tab.cpm.texture": "ǝɹnʇxǝ⟘",
"tab.cpm.animation": "suoıʇɐɯıuⱯ",
Expand Down Expand Up @@ -879,6 +880,7 @@
"label.cpm.generatedArmorLayer": "ɹoɯɹⱯ %s",
"label.cpm.generatedArmorLayer.ct": "(%s) ɯɹoɟsuɐɹ⟘",
"label.cpm.anim_hidden": "ın⅁ sǝɹnʇsǝ⅁ uı uǝppıH",
"label.cpm.config.editorInvertCamY": "uoıʇɐʇoᴚ ʎ ɐɹǝɯɐƆ ʇɹǝʌuI",
"label.cpm.paste.connecting.title": "˙˙˙buıʇɔǝuuoƆ",
"label.cpm.paste.connecting.message": "˙˙˙ǝʇıs ǝʇsɐd oʇ buıʇɔǝuuoƆ",
"label.cpm.paste.listing": "˙˙˙ʇsıן sǝןıɟ buıɥsǝɹɟǝᴚ",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -392,6 +392,7 @@ tooltip.cpm.anim.newFrame=˙ǝɯɐɹɟ ɹɐǝןɔ ɐ ppɐ oʇ ʇɟıɥS pןoH\ǝ
tooltip.cpm.tools.make2ndLayer=sǝqnɔ pǝʇɔǝןǝs ןןɐ ɹoɟ ɹǝʎɐן puᄅ ɐ sǝʇɐǝɹƆ
tooltip.cpm.tools.makeArmorLayer=sǝqnɔ pǝʇɔǝןǝs ןןɐ ɹoɟ sǝqnɔ ɹoɯɹɐ sǝʇɐǝɹƆ
tooltip.cpm.anim_hidden=˙IԀⱯ ǝɥʇ ɹo `ǝʇɐɯıuɐ ʇuǝıןɔɯdɔ/` ɥʇıʍ suoıʇɐɯıuɐ ɹoɟ ןnɟǝsn\'ın⅁ sǝɹnʇsǝ⅁ ǝɥʇ uı uoʇʇnq ǝɥʇ sǝpıH
tooltip.cpm.config.editorInvertCamY=˙ɹoʇıpǝ ǝɥʇ uı uoıʇɐʇoɹ ןɐɔıʇɹǝʌ s,ɐɹǝɯɐɔ ǝɥʇ sʇɹǝʌuI
tab.cpm.model=ןǝpoW
tab.cpm.texture=ǝɹnʇxǝ⟘
tab.cpm.animation=suoıʇɐɯıuⱯ
Expand Down Expand Up @@ -879,6 +880,7 @@ label.cpm.model.selectArmorRootToMake=oʇ ppɐ oʇ ʇooᴚ ɹoɯɹⱯ ʇɔǝןǝ
label.cpm.generatedArmorLayer=ɹoɯɹⱯ %s
label.cpm.generatedArmorLayer.ct=(%s) ɯɹoɟsuɐɹ⟘
label.cpm.anim_hidden=ın⅁ sǝɹnʇsǝ⅁ uı uǝppıH
label.cpm.config.editorInvertCamY=uoıʇɐʇoᴚ ʎ ɐɹǝɯɐƆ ʇɹǝʌuI
label.cpm.paste.connecting.title=˙˙˙buıʇɔǝuuoƆ
label.cpm.paste.connecting.message=˙˙˙ǝʇıs ǝʇsɐd oʇ buıʇɔǝuuoƆ
label.cpm.paste.listing=˙˙˙ʇsıן sǝןıɟ buıɥsǝɹɟǝᴚ
Expand Down
Loading

0 comments on commit bf53f44

Please sign in to comment.