Erweiterung Surgeon
This commit is contained in:
@@ -21,8 +21,8 @@ const localPlayer = mp.players.local;
|
||||
|
||||
export default function charSurgery(globalData: IGlobalData) {
|
||||
|
||||
var creatorHairMenu;
|
||||
|
||||
var creatorHairMenu: NativeUI.Menu;
|
||||
var characterData: PlayerCharacterData;
|
||||
function getRandomInt(min, max) {
|
||||
return Math.floor(Math.random() * (max - min + 1)) + min;
|
||||
}
|
||||
@@ -129,7 +129,7 @@ export default function charSurgery(globalData: IGlobalData) {
|
||||
//creatorHairMenu.AddItem(hairHighlightItem);
|
||||
|
||||
eyebrowColorItem = new UIMenuListItem("Augenbrauen Farbe", "Farbe deiner Augenbrauen", new ItemsCollection(hairColors));
|
||||
creatorHairMenu.AddItem(eyebrowColorItem)
|
||||
creatorHairMenu.AddItem(eyebrowColorItem);
|
||||
|
||||
beardColorItem = new UIMenuListItem("Farbe der Gesichtsbehaarung", "Farbe deiner Gesichtsbehaarung", new ItemsCollection(hairColors));
|
||||
creatorHairMenu.AddItem(beardColorItem);
|
||||
@@ -151,44 +151,101 @@ export default function charSurgery(globalData: IGlobalData) {
|
||||
}
|
||||
|
||||
function resetParentsMenu(refresh = false) {
|
||||
fatherItem.Index = 0;
|
||||
motherItem.Index = 0;
|
||||
similarityItem.Index = (currentGender === 0) ? 100 : 0;
|
||||
skinSimilarityItem.Index = (currentGender === 0) ? 100 : 0;
|
||||
fatherItem.Index = characterData.Father;
|
||||
motherItem.Index = characterData.Mother;
|
||||
similarityItem.Index = characterData.Similarity;//(currentGender === 0) ? 100 : 0;
|
||||
skinSimilarityItem.Index = characterData.SkinSimilarity;//(currentGender === 0) ? 100 : 0;
|
||||
|
||||
updateParents();
|
||||
if (refresh) creatorParentsMenu.RefreshIndex();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function resetFeaturesMenu(refresh = false) {
|
||||
for (let i = 0; i < Data.featureNames.length; i++) {
|
||||
featureItems[i].Index = 100;
|
||||
featureItems[i].Index = loadedFeatures[i];
|
||||
updateFaceFeature(i);
|
||||
}
|
||||
|
||||
if (refresh) creatorFeaturesMenu.RefreshIndex();
|
||||
}
|
||||
|
||||
var loadedFeatures;
|
||||
var loadedAppearence;
|
||||
var loadedAppearenceOpacity;
|
||||
|
||||
function loadCharacterData() {
|
||||
loadedFeatures = [
|
||||
characterData.NoseWidth,
|
||||
characterData.NoseBottomHeight,
|
||||
characterData.NoseTipLength,
|
||||
characterData.NoseBridgeDepth,
|
||||
characterData.NoseTipHeight,
|
||||
characterData.NoseBroken,
|
||||
characterData.BrowHeight,
|
||||
characterData.BrowDepth,
|
||||
characterData.CheekboneHeight,
|
||||
characterData.CheekboneWidth,
|
||||
characterData.CheekDepth,
|
||||
characterData.EyeSize,
|
||||
characterData.LipThickness,
|
||||
characterData.JawWidth,
|
||||
characterData.JawShape,
|
||||
characterData.ChinHeight,
|
||||
characterData.ChinDepth,
|
||||
characterData.ChinWidth,
|
||||
characterData.ChinIndent,
|
||||
characterData.NeckWidth
|
||||
];
|
||||
loadedAppearence = [
|
||||
characterData.Blemishes,
|
||||
characterData.FacialHair,
|
||||
characterData.Eyebrows,
|
||||
characterData.Ageing,
|
||||
characterData.Makeup,
|
||||
characterData.Blush,
|
||||
characterData.Complexion,
|
||||
characterData.SunDamage,
|
||||
characterData.Lipstick,
|
||||
characterData.Freckles,
|
||||
characterData.ChestHair
|
||||
];
|
||||
loadedAppearenceOpacity = [
|
||||
characterData.BlemishesOpacity,
|
||||
characterData.FacialHairOpacity,
|
||||
characterData.EyebrowsOpacity,
|
||||
characterData.AgeingOpacity,
|
||||
characterData.MakeupOpacity,
|
||||
characterData.BlushOpacity,
|
||||
characterData.ComplexionOpacity,
|
||||
characterData.SunDamageOpacity,
|
||||
characterData.LipstickOpacity,
|
||||
characterData.FrecklesOpacity,
|
||||
characterData.ChestHairOpacity
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
function resetAppearanceMenu(refresh = false) {
|
||||
for (let i = 0; i < Data.appearanceNames.length; i++) {
|
||||
appearanceItems[i].Index = 0;
|
||||
appearanceOpacityItems[i].Index = 100;
|
||||
appearanceItems[i].Index = loadedAppearence[i];
|
||||
appearanceOpacityItems[i].Index = loadedAppearenceOpacity[i];
|
||||
updateAppearance(i);
|
||||
}
|
||||
|
||||
if (refresh) creatorAppearanceMenu.RefreshIndex();
|
||||
}
|
||||
|
||||
|
||||
function resetHairAndColorsMenu(refresh = false) {
|
||||
//hairItem.Index = 0;
|
||||
//hairColorItem.Index = 0;
|
||||
//hairHighlightItem.Index = 0;
|
||||
eyebrowColorItem.Index = 0;
|
||||
beardColorItem.Index = 0;
|
||||
eyeColorItem.Index = 0;
|
||||
blushColorItem.Index = 0;
|
||||
lipstickColorItem.Index = 0;
|
||||
chestHairColorItem.Index = 0;
|
||||
eyebrowColorItem.Index = characterData.EyebrowColor;
|
||||
beardColorItem.Index = characterData.BeardColor;
|
||||
eyeColorItem.Index = characterData.EyeColor;
|
||||
blushColorItem.Index = characterData.BlushColor;
|
||||
lipstickColorItem.Index = characterData.LipstickColor;
|
||||
chestHairColorItem.Index = characterData.ChestHairColor;
|
||||
updateHairAndColors();
|
||||
|
||||
if (refresh) creatorHairMenu.RefreshIndex();
|
||||
@@ -292,17 +349,17 @@ export default function charSurgery(globalData: IGlobalData) {
|
||||
let appearanceData = [];
|
||||
for (let i = 0; i < appearanceItems.length; i++) appearanceData.push({ Value: ((appearanceItems[i].Index === 0) ? 255 : appearanceItems[i].Index - 1), Opacity: appearanceOpacityItems[i].Index * 0.01 });
|
||||
|
||||
/*let hairAndColors = [
|
||||
Data.hairList[currentGender][hairItem.Index].ID,
|
||||
hairColorItem.Index,
|
||||
hairHighlightItem.Index,
|
||||
let hairAndColors = [
|
||||
//Data.hairList[currentGender][hairItem.Index].ID,
|
||||
//hairColorItem.Index,
|
||||
//hairHighlightItem.Index,
|
||||
eyebrowColorItem.Index,
|
||||
beardColorItem.Index,
|
||||
eyeColorItem.Index,
|
||||
blushColorItem.Index,
|
||||
lipstickColorItem.Index,
|
||||
chestHairColorItem.Index
|
||||
];*/
|
||||
];
|
||||
for (let i = 0; i < creatorMenus.length; i++) creatorMenus[i].Visible = false;
|
||||
mp.gui.chat.show(true);
|
||||
mp.game.ui.displayRadar(true);
|
||||
@@ -312,7 +369,7 @@ export default function charSurgery(globalData: IGlobalData) {
|
||||
localPlayer.setComponentVariation(2, Data.hairList[currentGender][hairItem.Index].ID, 0, 2);
|
||||
mp.game.cam.renderScriptCams(false, false, 0, true, false);
|
||||
creatorCamera.destroy(true);
|
||||
mp.events.callRemote("SaveSurgery", currentGender, JSON.stringify(parentData), JSON.stringify(featureData), JSON.stringify(appearanceData));
|
||||
mp.events.callRemote("SaveSurgery", currentGender, JSON.stringify(parentData), JSON.stringify(featureData), JSON.stringify(appearanceData), JSON.stringify(hairAndColors));
|
||||
globalData.InMenu = false;
|
||||
globalData.InMenu = false;
|
||||
break;
|
||||
@@ -328,6 +385,12 @@ export default function charSurgery(globalData: IGlobalData) {
|
||||
});
|
||||
|
||||
function leaveCreator() {
|
||||
|
||||
//resetParentsMenu();
|
||||
//resetFeaturesMenu();
|
||||
//resetAppearanceMenu();
|
||||
//resetHairAndColorsMenu();
|
||||
|
||||
mp.gui.chat.show(true);
|
||||
mp.game.ui.displayRadar(true);
|
||||
mp.game.ui.displayHud(true);
|
||||
@@ -480,12 +543,12 @@ export default function charSurgery(globalData: IGlobalData) {
|
||||
let hairItem;
|
||||
let hairColorItem;
|
||||
let hairHighlightItem;
|
||||
let eyebrowColorItem;
|
||||
let beardColorItem;
|
||||
let eyeColorItem;
|
||||
let blushColorItem;
|
||||
let lipstickColorItem;
|
||||
let chestHairColorItem;
|
||||
let eyebrowColorItem: NativeUI.UIMenuListItem;
|
||||
let beardColorItem: NativeUI.UIMenuListItem;
|
||||
let eyeColorItem: NativeUI.UIMenuListItem;
|
||||
let blushColorItem: NativeUI.UIMenuListItem;
|
||||
let lipstickColorItem: NativeUI.UIMenuListItem;
|
||||
let chestHairColorItem: NativeUI.UIMenuListItem;
|
||||
|
||||
creatorHairMenu = new Menu("Haar & Farben", "", new Point(0, screenRes.y / 3), null, null);
|
||||
fillHairMenu();
|
||||
@@ -557,10 +620,14 @@ export default function charSurgery(globalData: IGlobalData) {
|
||||
creatorHairMenu.Visible = false;
|
||||
creatorMenus.push(creatorHairMenu);
|
||||
// CREATOR HAIR & COLORS END
|
||||
|
||||
|
||||
var character;
|
||||
// EVENTS
|
||||
mp.events.add("toggleSurgery", () => {
|
||||
mp.events.add("toggleSurgery", (jsonCharacterData: string) => {
|
||||
if (!mp.cameras.exists(creatorCamera)) {
|
||||
|
||||
characterData = JSON.parse(jsonCharacterData);
|
||||
loadCharacterData();
|
||||
creatorCamera = mp.cameras.new("creatorCamera", creatorCoords.camera, new mp.Vector3(0, 0, 0), 45);
|
||||
creatorCamera.pointAtCoord(creatorCoords.cameraLookAt.x, creatorCoords.cameraLookAt.y, creatorCoords.cameraLookAt.z);
|
||||
creatorCamera.setActive(true);
|
||||
|
||||
Reference in New Issue
Block a user