Skip to content

Commit

Permalink
chore(client exports)
Browse files Browse the repository at this point in the history
  • Loading branch information
ImXirvin committed Aug 12, 2024
1 parent 9a94681 commit 95b19a2
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 9 deletions.
13 changes: 11 additions & 2 deletions src/client/appearance/getters.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import HEAD_OVERLAYS from "@data/head"
import FACE_FEATURES from "@data/face"
import DRAWABLE_NAMES from "@data/drawables"
import PROP_NAMES from "@data/props"
import { ped, onServerCallback, updatePed } from '@utils';
import { ped, onServerCallback, updatePed, triggerServerCallback } from '@utils';

export function findModelIndex(target: number) {
const config = exports.bl_appearance
Expand All @@ -18,6 +18,7 @@ export function getHair(pedHandle: number): THairData {
highlight: GetPedHairHighlightColor(pedHandle)
}
}
exports('GetHair', getHair);

export function getHeadBlendData(pedHandle: number) {
// https://github.com/pedr0fontoura/fivem-appearance/blob/main/game/src/client/index.ts#L67
Expand Down Expand Up @@ -53,6 +54,7 @@ export function getHeadBlendData(pedHandle: number) {
hasParent: Boolean(hasParent),
};
}
exports('GetHeadBlend', getHeadBlendData);

export function getHeadOverlay(pedHandle: number) {
let totals: THeadOverlayTotal = {};
Expand Down Expand Up @@ -84,6 +86,7 @@ export function getHeadOverlay(pedHandle: number) {

return [headData, totals];
}
exports('GetHeadOverlay', getHeadOverlay);

export function getHeadStructure(pedHandle: number) {
const pedModel = GetEntityModel(pedHandle)
Expand All @@ -102,6 +105,7 @@ export function getHeadStructure(pedHandle: number) {

return faceStruct
}
exports('GetHeadStructure', getHeadStructure);

export function getDrawables(pedHandle: number) {
let drawables = {}
Expand All @@ -127,6 +131,7 @@ export function getDrawables(pedHandle: number) {

return [drawables, totalDrawables]
}
exports('GetDrawables', getDrawables);

export function getProps(pedHandle: number) {
let props = {}
Expand All @@ -153,6 +158,7 @@ export function getProps(pedHandle: number) {

return [props, totalProps]
}
exports('GetProps', getProps);


export async function getAppearance(pedHandle: number): Promise<TAppearance> {
Expand Down Expand Up @@ -272,7 +278,10 @@ export function getTattooData() {

return tattooZones
}

exports('GetTattoos', async () => {
const tattoos = await triggerServerCallback('bl_appearance:server:getTattoos')
return tattoos
});
//migration

onServerCallback('bl_appearance:client:migration:setAppearance', (data: {type: string, data: any}) => {
Expand Down
13 changes: 12 additions & 1 deletion src/client/appearance/setters.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ export function setDrawable(pedHandle: number, data: TValue) {
SetPedComponentVariation(pedHandle, data.index, data.value, data.texture, 0)
return GetNumberOfPedTextureVariations(pedHandle, data.index, data.value)
}
exports('SetDrawable', setDrawable);

export function setProp(pedHandle: number, data: TValue) {
if (data.value === -1) {
Expand All @@ -17,10 +18,10 @@ export function setProp(pedHandle: number, data: TValue) {
SetPedPropIndex(pedHandle, data.index, data.value, data.texture, false)
return GetNumberOfPedPropTextureVariations(pedHandle, data.index, data.value)
}
exports('SetProp', setProp);

const defMaleHash = GetHashKey("mp_m_freemode_01")


export const setModel = async (pedHandle: number, data: TAppearance | TSkin | number | string): Promise<number> => {
if (data == null || data === undefined) return pedHandle;

Expand Down Expand Up @@ -67,10 +68,12 @@ export const setModel = async (pedHandle: number, data: TAppearance | TSkin | nu

return pedHandle;
};
exports('SetModel', setModel);

export function SetFaceFeature(pedHandle: number, data: TValue) {
SetPedFaceFeature(pedHandle, data.index, data.value + 0.0)
}
exports('SetFaceFeature', SetFaceFeature);

const isPositive = (val: number) => val >= 0 ? val : 0

Expand All @@ -92,6 +95,7 @@ export function setHeadBlend(pedHandle: number, data) {

SetPedHeadBlendData(pedHandle, shapeFirst, shapeSecond, shapeThird, skinFirst, skinSecond, skinThird, shapeMix, skinMix, thirdMix, hasParent)
}
exports('SetHeadBlend', setHeadBlend);

export function setHeadOverlay(pedHandle: number, data) {
const index = data.index
Expand All @@ -112,6 +116,7 @@ export function setHeadOverlay(pedHandle: number, data) {
SetPedHeadOverlay(pedHandle, index, value, data.overlayOpacity + 0.0)
SetPedHeadOverlayColor(pedHandle, index, 1, data.firstColor, data.secondColor)
}
exports('SetHeadOverlay', setHeadOverlay);


export function resetToggles(data) {
Expand All @@ -135,6 +140,7 @@ export function resetToggles(data) {
}
}
}
exports('SetPedClothes', setPedClothes);

export function setPedClothes(pedHandle: number, data: TClothes) {
const drawables = data.drawables
Expand All @@ -155,6 +161,7 @@ export function setPedClothes(pedHandle: number, data: TClothes) {
setHeadOverlay(pedHandle, overlay)
}
}
exports('SetPedClothes', setPedClothes);

export const setPedSkin = async (pedHandle: number, data: TSkin) => {
if (!data) return
Expand All @@ -171,6 +178,7 @@ export const setPedSkin = async (pedHandle: number, data: TSkin) => {
SetFaceFeature(pedHandle, value)
}
}
exports('SetPedSkin', setPedSkin);

export function setPedTattoos(pedHandle: number, data: TTattoo[]) {
if (!data) return
Expand All @@ -186,13 +194,15 @@ export function setPedTattoos(pedHandle: number, data: TTattoo[]) {
}
}
}
exports('SetPedTattoos', setPedTattoos);

export function setPedHairColors(pedHandle: number, data: THairColor) {
if (!data) return
const color = data.color
const highlight = data.highlight
SetPedHairColor(pedHandle, color, highlight)
}
exports('SetPedHairColors', setPedHairColors);

export async function setPedAppearance(pedHandle: number, data: TAppearance) {
if (IsPedAPlayer(pedHandle)) {
Expand All @@ -204,6 +214,7 @@ export async function setPedAppearance(pedHandle: number, data: TAppearance) {
setPedHairColors(pedHandle, data.hairColor)
setPedTattoos(pedHandle, data.tattoos)
}
exports('SetPedAppearance', setPedAppearance);

export async function setPlayerPedAppearance(data: TAppearance) {
// Since this function is usually called after scripts set their own model, we need to update the ped before we set the appearance
Expand Down
7 changes: 1 addition & 6 deletions src/client/init.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,11 @@
import { TAppearance, TAppearanceZone } from "@typings/appearance"
import { openMenu } from "./menu"
import { setPedAppearance, setPlayerPedAppearance } from "./appearance/setters"
import { setPlayerPedAppearance } from "./appearance/setters"
import { triggerServerCallback, getFrameworkID, Delay, bl_bridge, ped, delay, format, updatePed } from "@utils"
import { QBBridge } from "./bridge/qb"
import { ESXBridge } from "./bridge/esx"
import { illeniumCompat } from "./compat/illenium"


exports('SetPedAppearance', async (ped: number, appearance: TAppearance) => {
await setPedAppearance(ped, appearance)
})

exports('SetPlayerPedAppearance', async (appearance: TAppearance | string) => {
let resolvedAppearance: TAppearance;

Expand Down

0 comments on commit 95b19a2

Please sign in to comment.