miijs 2.3.2 → 2.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.js +81 -73
  2. package/package.json +5 -5
package/index.js CHANGED
@@ -12,7 +12,7 @@ const httpsLib = require('https');
12
12
  const asmCrypto = require("./asmCrypto.js");
13
13
  const path = require("path");
14
14
  const createGL = require('gl');
15
-
15
+ const typeCheat = [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3];
16
16
  const {
17
17
  createCharModel, initCharModelTextures,
18
18
  initializeFFL, exitFFL, parseHexOrB64ToUint8Array,
@@ -2518,7 +2518,7 @@ async function createFFLMiiIcon(data, options, shirtColor, fflRes) {
2518
2518
  body.userData.isMiiBody = true;
2519
2519
 
2520
2520
  // Recolor body (bakes into texture)
2521
- var pantsColor=[0x808080,0xFFC000,0x89CFF0,0x913831][["default","special","foreign","favorite","favorited"].indexOf(options.pantsType.toLowerCase())];
2521
+ var pantsColor=[0x808080,0xFFC000,0x89CFF0,0x913831,0x913831][["default","special","foreign","favorite","favorited"].indexOf(options.pantsType?.toLowerCase()||"default")];
2522
2522
  body.traverse((o) => {
2523
2523
  if (o.isMesh) {
2524
2524
  if (!o.geometry.attributes.normal) o.geometry.computeVertexNormals();
@@ -2566,7 +2566,7 @@ async function createFFLMiiIcon(data, options, shirtColor, fflRes) {
2566
2566
  const bakeAmbient = new THREE.AmbientLight(0xffffff, 0.15);
2567
2567
  const bakeRim = new THREE.DirectionalLight(
2568
2568
  0xffffff,
2569
- 1.5
2569
+ 3
2570
2570
  );
2571
2571
  bakeRim.position.set(-3, 7, 1.0);
2572
2572
  bakeAmbient.layers.enable(1);
@@ -2601,6 +2601,7 @@ async function createFFLMiiIcon(data, options, shirtColor, fflRes) {
2601
2601
  const planeGeo = new THREE.PlaneGeometry(planeW, planeH);
2602
2602
  const planeMat = new THREE.MeshBasicMaterial({ map: bodyTex, transparent: true, depthWrite: true, depthTest: true });
2603
2603
  const bodyPlane = new THREE.Mesh(planeGeo, planeMat);
2604
+ bodyPlane.userData.isBodyPlane = true;
2604
2605
 
2605
2606
  // Place plane at body world center so the neck peg aligns into head
2606
2607
  bodyPlane.position.copy(bodyCenter);
@@ -3064,7 +3065,7 @@ function make3DSChild(dad, mom, options = {}) {
3064
3065
  "height": 64,
3065
3066
  "weight": 64,
3066
3067
  "gender": g,
3067
- "favColor": options.favColor || favCols[Math.floor(Math.random() * favCols.length)]
3068
+ "favoriteColor": options.favoriteColor || favCols[Math.floor(Math.random() * favCols.length)]
3068
3069
  },
3069
3070
  "meta": {
3070
3071
  "name": options.name || kidNames[g][Math.floor(Math.random() * kidNames[g].length)],
@@ -3114,7 +3115,6 @@ function make3DSChild(dad, mom, options = {}) {
3114
3115
  function generateInstructions(mii, full) {
3115
3116
  let type = mii.console?.toLowerCase();
3116
3117
  if (type.toLowerCase() === "wii") {
3117
- var typeCheat = [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3];
3118
3118
  var instrs = {
3119
3119
  "base": `Select "${mii.general.gender}", and then "Start from Scratch".`,
3120
3120
  "col": `On the info page (first tab), set the Favorite Color to ${lookupTables.favCols[mii.general.favoriteColor]} (${mii.general.favoriteColor <= 5 ? mii.general.favoriteColor + 1 : mii.general.favoriteColor - 5} from the left, ${mii.general.favoriteColor > 5 ? "bottom" : "top"} row).`,
@@ -3124,7 +3124,7 @@ function generateInstructions(mii, full) {
3124
3124
  "makeup": `On the face page's makeup tab, set the makeup to the one ${Math.ceil((mii.face.feature + 1) / 3)} from the top, and ${typeCheat[mii.face.feature]} from the left.`,
3125
3125
  "hairStyle": `On the hair page (fourth tab), set the hair style to the one ${typeCheat[mii.hair.type]} from the left, ${Math.ceil((mii.hair.type + 1) / 3)} from the top, on page ${mii.hair.page}.`,
3126
3126
  "hairFlipped": `${mii.hair.flipped ? `On the hair page (fourth tab), press the button to flip the hair.` : ``}`,
3127
- "hairColor": `On the hair page (fourth tab), set the hair color to the one ${mii.hair.col + (mii.hair.col > 3 ? -3 : 1)} from the left, on the ${mii.hair.col > 3 ? `bottom` : `top`} row.`,
3127
+ "hairColor": `On the hair page (fourth tab), set the hair color to the one ${mii.hair.color + (mii.hair.color > 3 ? -3 : 1)} from the left, on the ${mii.hair.color > 3 ? `bottom` : `top`} row.`,
3128
3128
  "eyebrowStyle": `On the eyebrow page (fifth tab), set the eyebrow style to the one ${typeCheat[mii.eyebrows.type]} from the left, ${Math.ceil((mii.eyebrows.type + 1) / 3)} from the top, on page ${mii.eyebrows.page}.`,
3129
3129
  "eyebrowColor": `On the eyebrow page (fifth tab), set the eyebrow color to the one ${mii.eyebrows.color + (mii.eyebrows.color > 3 ? -3 : 1)} from the left, on the ${mii.eyebrows.color > 3 ? `bottom` : `top`} row.`,
3130
3130
  "eyebrowY": `${mii.eyebrows.yPos !== 7 ? `On the eyebrow page (fifth tab), ` : ``}${mii.eyebrows.yPosition < 7 ? `press the up button ${7 - mii.eyebrows.yPosition} times.` : mii.eyebrows.yPosition > 7 ? `press the down button ${mii.eyebrows.yPosition - 7} times.` : ``}`,
@@ -3141,7 +3141,7 @@ function generateInstructions(mii, full) {
3141
3141
  "noseY": `${mii.nose.yPosition !== 9 ? `On the nose page (seventh tab), ` : ``}${mii.nose.yPosition < 9 ? `press the up button ${9 - mii.nose.yPosition} times.` : mii.nose.yPosition > 9 ? `press the down button ${mii.nose.yPosition - 9} times.` : ``}`,
3142
3142
  "noseSize": `${mii.nose.size !== 4 ? `On the nose page (seventh tab), ` : ``}${mii.nose.size < 4 ? `press the shrink button ${4 - mii.nose.size} times.` : mii.nose.size > 4 ? `press the enlarge button ${mii.nose.size - 4} times.` : ``}`,
3143
3143
  "mouthType": `On the mouth page (eighth tab), set the mouth type to the one ${typeCheat[mii.mouth.type]} from the left, ${Math.ceil((mii.mouth.type + 1) / 3)} from the top, on page ${mii.mouth.page}.`,
3144
- "mouthCol": `On the mouth page (eighth tab), set the color to the one ${mii.mouth.col + 1} from the left.`,
3144
+ "mouthCol": `On the mouth page (eighth tab), set the color to the one ${mii.mouth.color + 1} from the left.`,
3145
3145
  "mouthY": `${mii.mouth.yPosition !== 13 ? `On the mouth page (eighth tab), ` : ``}${mii.mouth.yPosition < 13 ? `press the up button ${13 - mii.mouth.yPosition} times.` : mii.mouth.yPosition > 13 ? `press the down button ${mii.mouth.yPosition - 13} times.` : ``}`,
3146
3146
  "mouthSize": `${mii.mouth.size !== 4 ? `On the mouth page (eighth tab), ` : ``}${mii.mouth.size < 4 ? `press the shrink button ${4 - mii.mouth.size} times.` : mii.mouth.size > 4 ? `press the enlarge button ${mii.mouth.size - 4} times.` : ``}`,
3147
3147
  "glasses": `On the glasses page (within the ninth tab), set the glasses to the one ${Math.ceil((mii.glasses.type + 1) / 3)} from the top, and ${typeCheat[mii.glasses.type]} from the left.`,
@@ -3156,7 +3156,7 @@ function generateInstructions(mii, full) {
3156
3156
  "moleY": `${mii.mole.yPosition !== 20 ? `On the mole page (within the ninth tab), press the ` : ``}${mii.mole.yPosition > 20 ? `down button ${mii.mole.yPosition - 20} times.` : mii.mole.yPosition < 20 ? `up button ${20 - mii.mole.yPosition} times.` : ``}`,
3157
3157
  "moleSize": `${mii.mole.size !== 4 ? `On the mole page (within the ninth tab), ` : ``}${mii.mole.size < 4 ? `press the shrink button ${4 - mii.mole.size} times.` : mii.mole.size > 4 ? `press the enlarge button ${mii.mole.size - 4} times.` : ``}`,
3158
3158
  "beard": `On the beard page (within the ninth tab), set the beard to the one on the ${[0, 1].includes(mii.beard.type) ? `top` : `bottom`}-${[0, 2].includes(mii.beard.type) ? `left` : `right`}.`,
3159
- "beardCol": `On the mustache OR beard pages (within the ninth tab), set the color to the one ${mii.beard.col + (mii.beard.col > 3 ? -3 : 1)} from the left, on the ${mii.facialHair.col > 3 ? `bottom` : `top`} row.`,
3159
+ "beardCol": `On the mustache OR beard pages (within the ninth tab), set the color to the one ${mii.beard.color + (mii.beard.color > 3 ? -3 : 1)} from the left, on the ${mii.facialHair.color > 3 ? `bottom` : `top`} row.`,
3160
3160
  "other": `The Nickname of this Mii is ${mii.info.name}.${mii.info.creatorName ? ` The creator was ${mii.info.creatorName}.` : ``} Mingle was turned ${mii.info.mingle ? `on` : `off`}.${mii.info.birthday !== 0 ? ` Its birthday is ${["", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"][mii.info.birthMonth]} ${mii.info.birthday}.` : ``}`
3161
3161
  };
3162
3162
  if (!full) {
@@ -3187,7 +3187,7 @@ function generateInstructions(mii, full) {
3187
3187
  "eyebrowDist": `${mii.eyebrows.distanceApart !== 2 ? `On the eyebrow page (third tab), ` : ``}${mii.eyebrows.distanceApart < 2 ? `press the closer-together button ${2 - mii.eyebrows.distanceApart} times.` : mii.eyebrows.distanceApart > 2 ? `press the further-apart button ${mii.eyebrows.distanceApart - 2} times.` : ``}`,
3188
3188
  "eyebrowSquash": `${mii.eyebrows.squash !== 3 ? `On the eyebrow page (third tab), ` : ``}${mii.eyebrows.squash < 3 ? `press the squish button ${3 - mii.eyebrows.squash} times.` : mii.eyebrows.squash > 3 ? `press the un-squish button ${mii.eyebrows.squash - 3} times.` : ``}`,
3189
3189
  "eyeType": `On the eye page (fourth tab), set the eye type to the one ${typeCheat[mii.eyes.type]} from the left, ${Math.ceil((mii.eyes.type + 1) / 3)} from the top, on page ${mii.eyes.page + 1}.`,
3190
- "eyeColor": `On the eye page (fourth tab), set the color to the one ${mii.eyes.col + 1} from the top.`,
3190
+ "eyeColor": `On the eye page (fourth tab), set the color to the one ${mii.eyes.color + 1} from the top.`,
3191
3191
  "eyeY": `${mii.eyes.yPosition !== 12 ? `On the eye page (fourth tab), ` : ``}${mii.eyes.yPosition < 12 ? `press the up button ${12 - mii.eyes.yPosition} times.` : mii.eyes.yPosition > 12 ? `press the down button ${mii.eyes.yPosition - 12} times.` : ``}`,
3192
3192
  "eyeSize": `${mii.eyes.size !== 4 ? `On the eye page (fourth tab), ` : ``}${mii.eyes.size < 4 ? `press the shrink button ${4 - mii.eyes.size} times.` : mii.eyes.size > 4 ? `press the enlarge button ${mii.eyes.size - 4} times.` : ``}`,
3193
3193
  "eyeRot": `${mii.eyes.rotation !== (mii.general.gender === "Female" ? 3 : 4) ? `On the eye page (fourth tab), ` : ``}${mii.eyes.rotation < (mii.general.gender === "Female" ? 3 : 4) ? `press the rotate clockwise button ${(mii.general.gender === "Female" ? 3 : 4) - mii.eyes.rotation} times.` : mii.eyes.rotation > (mii.general.gender === "Female" ? 3 : 4) ? `press the rotate counter-clockwise button ${mii.eyes.rotation - (mii.general.gender === "Female" ? 3 : 4)} times.` : ``}`,
@@ -3202,7 +3202,7 @@ function generateInstructions(mii, full) {
3202
3202
  "mouthSize": `${mii.mouth.size !== 4 ? `On the mouth page (sixth tab), ` : ``}${mii.mouth.size < 4 ? `press the shrink button ${4 - mii.mouth.size} times.` : mii.mouth.size > 4 ? `press the enlarge button ${mii.mouth.size - 4} times.` : ``}`,
3203
3203
  "mouthSquash": `${mii.mouth.squash !== 3 ? `On the mouth page (sixth tab), ` : ``}${mii.mouth.squash < 3 ? `press the squish button ${3 - mii.mouth.squash} times.` : mii.mouth.squash > 3 ? `press the un-squish button ${mii.mouth.squash - 3} times.` : ``}`,
3204
3204
  "glasses": `On the glasses page (within the seventh tab), set the glasses to the one ${Math.ceil((mii.glasses.type + 1) / 3)} from the top, and ${typeCheat[mii.glasses.type]} from the left.`,
3205
- "glassesCol": `On the glasses page (within the seventh tab), set the color to the one ${mii.glasses.col + 1} from the top.`,
3205
+ "glassesCol": `On the glasses page (within the seventh tab), set the color to the one ${mii.glasses.color + 1} from the top.`,
3206
3206
  "glassesY": `${mii.glasses.yPosition !== 10 ? `On the glasses page (within the seventh tab), ` : ``}${mii.glasses.yPosition < 10 ? `press the up button ${10 - mii.glasses.yPosition} times.` : mii.glasses.yPosition > 10 ? `press the down button ${mii.glasses.yPosition - 10} times.` : ``}`,
3207
3207
  "glassesSize": `${mii.glasses.size !== 4 ? `On the glasses page (within the seventh tab), ` : ``}${mii.glasses.size < 4 ? `press the shrink button ${4 - mii.glasses.size} times.` : mii.glasses.size > 4 ? `press the enlarge button ${mii.glasses.size - 4} times.` : ``}`,
3208
3208
  "stache": `On the mustache page (within the seventh tab), set the mustache to the one on the ${[0, 1].includes(mii.beard.mustache.type) ? `top` : [2, 3].includes(mii.beard.mustache.type) ? `middle` : `bottom`}-${[0, 2, 4].includes(mii.beard.mustache.type) ? `left` : `right`}.`,
@@ -3216,7 +3216,7 @@ function generateInstructions(mii, full) {
3216
3216
  "beardCol": `On the mustache OR beard pages (within the seventh tab), set the color to the one ${mii.beard.color + 1} from the top.`,
3217
3217
  "heightWeight": `On the build page (eighth tab), set the height to ${Math.round((100 / 128) * mii.general.height)}%, and the weight to ${Math.round((100 / 128) * mii.general.weight)}%.`,
3218
3218
  "col": `On the info page (after pressing "Next"), set the Favorite Color to ${mii.general.favoriteColor} (${mii.general.favoriteColor <= 5 ? mii.general.favoriteColor + 1 : mii.general.favoriteColor - 5} from the left, ${mii.general.favoriteColor > 5 ? "bottom" : "top"} row).`,
3219
- "other": `The Nickname of this Mii is ${mii.general.name}.${mii.general.creatorName ? ` The creator was ${mii.general.creatorName}.` : ``} ${mii.general.birthday !== 0 ? ` Its birthday is ${["", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"][mii.general.birthMonth]} ${mii.general.birthday}.` : ``}`
3219
+ "other": `The Nickname of this Mii is ${mii.meta.name}.${mii.meta.creatorName ? ` The creator was ${mii.meta.creatorName}.` : ``} ${mii.general.birthday !== 0 ? ` Its birthday is ${["", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"][mii.general.birthMonth]} ${mii.general.birthday}.` : ``}`
3220
3220
  };
3221
3221
  if (!full) {
3222
3222
  var defaultMiiInstrs = structuredClone(mii.general.gender === "Male" ? defaultInstrs["3ds"].male : defaultInstrs["3ds"].female);
@@ -3230,78 +3230,82 @@ function generateInstructions(mii, full) {
3230
3230
  }
3231
3231
  }
3232
3232
 
3233
- function miiHeightToFeetInches(value) {
3234
- const minInches = 36; // 3'0"
3235
- const midInches = 69; // 5'9"
3236
- const maxInches = 84; // 7'0"
3237
- const midPoint = 64;
3233
+ function miiHeightToMeasurements(value) {
3234
+ // h in [0, 127]
3235
+ const totalInches = 36 + (48 / 127) * value; // 3' to 7'
3236
+ return {
3237
+ feet:Math.floor(totalInches / 12),
3238
+ inches:Math.round(totalInches % 12),
3239
+ totalInches,
3238
3240
 
3239
- let totalInches;
3240
- if (value <= midPoint) {
3241
- // Lower half: 0–64 maps to 36–69
3242
- totalInches = minInches + (value / midPoint) * (midInches - minInches);
3243
- }
3244
- else {
3245
- // Upper half: 64–127 maps to 69–84
3246
- totalInches = midInches + ((value - midPoint) / (127 - midPoint)) * (maxInches - midInches);
3247
- }
3248
-
3249
- const feet = Math.floor(totalInches / 12);
3250
- const inches = Math.round(totalInches % 12);
3251
- return { feet, inches, totalInches };
3241
+ centimeters:Math.round(totalInches*2.54)
3242
+ };
3252
3243
  }
3253
3244
  function inchesToMiiHeight(totalInches) {
3254
- const minInches = 36;
3255
- const midInches = 69;
3256
- const maxInches = 84;
3257
- const midPoint = 64;
3258
-
3259
- let value;
3260
- if (totalInches <= midInches) {
3261
- // Below or equal to midpoint
3262
- value = ((totalInches - minInches) / (midInches - minInches)) * midPoint;
3263
- } else {
3264
- // Above midpoint
3265
- value = midPoint + ((totalInches - midInches) / (maxInches - midInches)) * (127 - midPoint);
3266
- }
3267
-
3268
- return Math.round(Math.max(0, Math.min(value, 127)));
3245
+ return ((totalInches - 36) * 127) / 48;
3246
+ }
3247
+ function centimetersToMiiHeight(totalCentimeters) {
3248
+ return ((Math.round(totalCentimeters/2.54) - 36) * 127) / 48;
3269
3249
  }
3270
3250
 
3271
- // Getting and setting Mii weights is HIGHLY EXPERIMENTAL and I am very unconfident in its output
3272
3251
  // ---- Tunable anchors (BMI breakpoints) ----
3273
- const BMI_MIN = 16; // maps to Mii weight 0
3274
- const BMI_MID = 23; // maps to Mii weight 64 (average look)
3275
- const BMI_MAX = 40; // maps to Mii weight 127
3276
- function heightWeightToMiiWeight(heightInches, weightLbs) {
3277
- if (!heightInches || heightInches < 0) throw new Error("heightInches must be >= 0");
3278
- const bmi = (703 * weightLbs) / (heightInches * heightInches);
3279
-
3280
- let v;
3281
- if (bmi <= BMI_MID) {
3282
- const t = (clamp(bmi, BMI_MIN, BMI_MID) - BMI_MIN) / (BMI_MID - BMI_MIN);
3283
- v = 0 + t * 64;
3252
+ const BMI_MIN = 16;
3253
+ const BMI_MID = 22;
3254
+ const BMI_MAX = 35;
3255
+ function bmiFromWeightSlider(w) {
3256
+ // w in [0, 127]
3257
+ if (w <= 64) {
3258
+ return BMI_MID - (64 - w) * (BMI_MID - BMI_MIN) / 64;
3284
3259
  } else {
3285
- const t = (clamp(bmi, BMI_MID, BMI_MAX) - BMI_MID) / (BMI_MAX - BMI_MID);
3286
- v = 64 + t * (127 - 64);
3260
+ return BMI_MID + (w - 64) * (BMI_MAX - BMI_MID) / 63;
3287
3261
  }
3288
- return Math.round(clamp(v, 0, 127));
3289
3262
  }
3290
3263
  function miiWeightToRealWeight(heightInches, miiWeight) {
3291
- if (!heightInches || heightInches <= 0) heightInches = 0;
3292
- const v = clamp(miiWeight, 0, 127);
3264
+ /*
3265
+ Take the height, map it to a reasonable height 0-127 === 3'-7'.
3266
+ Get the average weight for that height.
3267
+ Take the slider 0-127 for weight, assume 64 is the average midpoint.
3268
+ If less than 64, make the Mii's weight more underweight than the average.
3269
+ If higher, make the Mii's weight more overweight than the average.
3270
+ The shorter the height, the less drastic the weight changes.
3271
+
3272
+ This is approximate, not guaranteed accurate nor intended to be taken that way. This is for entertainment value only.
3273
+ */
3274
+ if (!heightInches || heightInches < 0) throw new Error("heightInches must be >= 0");
3275
+ const H = miiHeightToMeasurements(heightInches).totalInches;
3276
+ const BMI = bmiFromWeightSlider(miiWeight);
3277
+ return {
3278
+ pounds:BMI * (H * H) / 703,
3279
+ kilograms:Math.round((BMI * (H * H) / 703)*0.4535924)
3280
+ };
3281
+ }
3282
+ function imperialHeightWeightToMiiWeight(heightInches, weightLbs) {
3283
+ if (!heightInches || heightInches < 0) throw new Error("heightInches must be >= 0");
3293
3284
 
3294
- let bmi;
3295
- if (v <= 64) {
3296
- const t = v / 64;
3297
- bmi = BMI_MIN + t * (BMI_MID - BMI_MIN);
3298
- } else {
3299
- const t = (v - 64) / (127 - 64);
3300
- bmi = BMI_MID + t * (BMI_MAX - BMI_MID);
3285
+ const H = miiHeightToMeasurements(heightInches).totalInches;
3286
+ const BMI = weightLbs * 703 / (H * H);
3287
+
3288
+ if (BMI <= BMI_MID) {
3289
+ return 64 - 64 * (BMI_MID - BMI) / (BMI_MID - BMI_MIN);
3290
+ }
3291
+ else {
3292
+ return 64 + 63 * (BMI - BMI_MID) / (BMI_MAX - BMI_MID);
3301
3293
  }
3294
+ }
3295
+ function metricHeightWeightToMiiWeight(heightCentimeters, weightKilograms) {
3296
+ const heightInches=Math.round(heightCentimeters/2.54);
3297
+ const weightLbs=Math.round(weightKilograms/0.4535924);
3298
+ if (!heightInches || heightInches < 0) throw new Error("heightCentimeters must be >= 0");
3302
3299
 
3303
- const pounds = (bmi * heightInches * heightInches) / 703;
3304
- return { pounds, bmi };
3300
+ const H = miiHeightToMeasurements(heightInches).totalInches;
3301
+ const BMI = weightLbs * 703 / (H * H);
3302
+
3303
+ if (BMI <= BMI_MID) {
3304
+ return 64 - 64 * (BMI_MID - BMI) / (BMI_MID - BMI_MIN);
3305
+ }
3306
+ else {
3307
+ return 64 + 63 * (BMI - BMI_MID) / (BMI_MAX - BMI_MID);
3308
+ }
3305
3309
  }
3306
3310
 
3307
3311
 
@@ -3333,10 +3337,14 @@ module.exports = {
3333
3337
  generateInstructions,
3334
3338
 
3335
3339
  //Normalize Height and Weight 0-127 to human measurements
3336
- miiHeightToFeetInches,
3340
+ miiHeightToMeasurements,
3337
3341
  inchesToMiiHeight,
3338
- heightWeightToMiiWeight,//EXPERIMENTAL
3339
- miiWeightToRealWeight,//EXPERIMENTAL
3342
+ centimetersToMiiHeight,
3343
+
3344
+ //Highly Experimental
3345
+ miiWeightToRealWeight,
3346
+ imperialHeightWeightToMiiWeight,
3347
+ metricHeightWeightToMiiWeight,
3340
3348
 
3341
3349
  /*
3342
3350
  Handle Amiibo Functions
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "miijs",
3
- "version": "2.3.2",
3
+ "version": "2.3.4",
4
4
  "description": "Work with Mii characters in every possible way needed for your project.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -9,7 +9,7 @@
9
9
  },
10
10
  "repository": {
11
11
  "type": "git",
12
- "url": "git+https://github.com/KestronProgramming/MiiJS.git"
12
+ "url": "git+https://github.com/Stewared/MiiJS.git"
13
13
  },
14
14
  "keywords": [
15
15
  "Mii",
@@ -19,12 +19,12 @@
19
19
  "Remote",
20
20
  "Special"
21
21
  ],
22
- "author": "Kestron",
22
+ "author": "Stewared",
23
23
  "license": "ISC",
24
24
  "bugs": {
25
- "url": "https://github.com/KestronProgramming/MiiJS/issues"
25
+ "url": "https://github.com/Stewared/MiiJS/issues"
26
26
  },
27
- "homepage": "https://github.com/KestronProgramming/MiiJS#readme",
27
+ "homepage": "https://github.com/Stewared/MiiJS#readme",
28
28
  "dependencies": {
29
29
  "canvas": "^3.1.0",
30
30
  "ffl.js": "github:ariankordi/FFL.js#06ede8f",