🍗try add fusion
This commit is contained in:
@@ -6,8 +6,7 @@
|
||||
"scripts": {
|
||||
"build": "rbxtsc",
|
||||
"watch": "rbxtsc -w",
|
||||
"lint": "eslint",
|
||||
"prepare": "ts-patch install -s"
|
||||
"lint": "eslint"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "Aconit team",
|
||||
@@ -39,6 +38,7 @@
|
||||
"@flamework/components": "^1.3.2",
|
||||
"@flamework/core": "^1.3.2",
|
||||
"@flamework/networking": "^1.3.2",
|
||||
"ts-patch": "^3.3.0"
|
||||
"@rbxts/fusion-0.3-temp": "^0.7.2",
|
||||
"@rbxts/object-utils": "^1.0.4"
|
||||
}
|
||||
}
|
||||
76
pnpm-lock.yaml
generated
76
pnpm-lock.yaml
generated
@@ -17,9 +17,12 @@ importers:
|
||||
'@flamework/networking':
|
||||
specifier: ^1.3.2
|
||||
version: 1.3.2(@flamework/core@1.3.2)
|
||||
ts-patch:
|
||||
specifier: ^3.3.0
|
||||
version: 3.3.0
|
||||
'@rbxts/fusion-0.3-temp':
|
||||
specifier: ^0.7.2
|
||||
version: 0.7.2
|
||||
'@rbxts/object-utils':
|
||||
specifier: ^1.0.4
|
||||
version: 1.0.4
|
||||
devDependencies:
|
||||
'@eslint/eslintrc':
|
||||
specifier: ^3.3.1
|
||||
@@ -170,6 +173,9 @@ packages:
|
||||
'@rbxts/compiler-types@3.0.0-types.0':
|
||||
resolution: {integrity: sha512-VGOHJPoL7+56NTatMGqQj3K7xWuzEV+aP4QD5vZiHu+bcff3kiTmtoadaF6NkJrmwfFAvbsd4Dg764ZjWNceag==}
|
||||
|
||||
'@rbxts/fusion-0.3-temp@0.7.2':
|
||||
resolution: {integrity: sha512-204MueZ6/3sps9bf4H+usqAL3VO+M5cmHwQnRci0LEF/Q4yV1re/ID96BTYTaWlohI0Vn+yKE45iFYNoclhk5Q==}
|
||||
|
||||
'@rbxts/maid@1.1.0':
|
||||
resolution: {integrity: sha512-bVWXZ0p2M3OJzPzvN5fY0T4s37ezUMY7EX31Xspp7Ds4C/K9yE4MHMRXjtlNvsYVPmoc5tdhAbpZY02Veix5lg==}
|
||||
|
||||
@@ -191,6 +197,9 @@ packages:
|
||||
'@rbxts/types@1.0.887':
|
||||
resolution: {integrity: sha512-vhp4vIKEfl1TaBcKxBxU5dTFsVNqLkvefoF9pw/Epb+Jk9T+0g4SFQQtBdCu3UdZcBGK/PWk/IJeEyoRNDMkSw==}
|
||||
|
||||
'@rbxts/ui-labs@2.4.2':
|
||||
resolution: {integrity: sha512-9cyzDYN4mM7KSupZpbHRCUWCfSHzy8LCqa9Czys2jaKYUCn8oV4j5AE+5jTrHD/8RcltP5EvCSFIFwB0N/NfxA==}
|
||||
|
||||
'@roblox-ts/luau-ast@2.0.0':
|
||||
resolution: {integrity: sha512-cmMi093IdwBOLVxwuordhM8AmtbyTIyRpsTbB0D/JauidW4SXsQRQowSwWjHo4QP0DRJBXvOIlxtqEQi50uNzQ==}
|
||||
|
||||
@@ -572,10 +581,6 @@ packages:
|
||||
resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
global-prefix@4.0.0:
|
||||
resolution: {integrity: sha512-w0Uf9Y9/nyHinEk5vMJKRie+wa4kR5hmDbEhGGds/kG1PwGLLHKRoNMeJOyCQjjBkANlnScqgzcFwGHgmgLkVA==}
|
||||
engines: {node: '>=16'}
|
||||
|
||||
globals@14.0.0:
|
||||
resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
|
||||
engines: {node: '>=18'}
|
||||
@@ -624,10 +629,6 @@ packages:
|
||||
ini@1.3.8:
|
||||
resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
|
||||
|
||||
ini@4.1.3:
|
||||
resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==}
|
||||
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
|
||||
|
||||
is-binary-path@2.1.0:
|
||||
resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -659,10 +660,6 @@ packages:
|
||||
isexe@2.0.0:
|
||||
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
|
||||
|
||||
isexe@3.1.1:
|
||||
resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==}
|
||||
engines: {node: '>=16'}
|
||||
|
||||
js-yaml@4.1.0:
|
||||
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
|
||||
hasBin: true
|
||||
@@ -685,10 +682,6 @@ packages:
|
||||
keyv@4.5.4:
|
||||
resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
|
||||
|
||||
kind-of@6.0.3:
|
||||
resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
kleur@4.1.5:
|
||||
resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
|
||||
engines: {node: '>=6'}
|
||||
@@ -730,9 +723,6 @@ packages:
|
||||
resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
|
||||
engines: {node: '>=16 || 14 >=14.17'}
|
||||
|
||||
minimist@1.2.8:
|
||||
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
|
||||
|
||||
minipass@4.2.8:
|
||||
resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -925,10 +915,6 @@ packages:
|
||||
peerDependencies:
|
||||
typescript: '>=4.8.4'
|
||||
|
||||
ts-patch@3.3.0:
|
||||
resolution: {integrity: sha512-zAOzDnd5qsfEnjd9IGy1IRuvA7ygyyxxdxesbhMdutt8AHFjD8Vw8hU2rMF89HX1BKRWFYqKHrO8Q6lw0NeUZg==}
|
||||
hasBin: true
|
||||
|
||||
type-check@0.4.0:
|
||||
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
|
||||
engines: {node: '>= 0.8.0'}
|
||||
@@ -966,11 +952,6 @@ packages:
|
||||
engines: {node: '>= 8'}
|
||||
hasBin: true
|
||||
|
||||
which@4.0.0:
|
||||
resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==}
|
||||
engines: {node: ^16.13.0 || >=18.0.0}
|
||||
hasBin: true
|
||||
|
||||
word-wrap@1.2.5:
|
||||
resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@@ -1097,6 +1078,10 @@ snapshots:
|
||||
|
||||
'@rbxts/compiler-types@3.0.0-types.0': {}
|
||||
|
||||
'@rbxts/fusion-0.3-temp@0.7.2':
|
||||
dependencies:
|
||||
'@rbxts/ui-labs': 2.4.2
|
||||
|
||||
'@rbxts/maid@1.1.0': {}
|
||||
|
||||
'@rbxts/object-utils@1.0.4': {}
|
||||
@@ -1111,6 +1096,8 @@ snapshots:
|
||||
|
||||
'@rbxts/types@1.0.887': {}
|
||||
|
||||
'@rbxts/ui-labs@2.4.2': {}
|
||||
|
||||
'@roblox-ts/luau-ast@2.0.0': {}
|
||||
|
||||
'@roblox-ts/path-translator@1.1.0':
|
||||
@@ -1574,12 +1561,6 @@ snapshots:
|
||||
is-windows: 1.0.2
|
||||
which: 1.3.1
|
||||
|
||||
global-prefix@4.0.0:
|
||||
dependencies:
|
||||
ini: 4.1.3
|
||||
kind-of: 6.0.3
|
||||
which: 4.0.0
|
||||
|
||||
globals@14.0.0: {}
|
||||
|
||||
graceful-fs@4.2.11: {}
|
||||
@@ -1615,8 +1596,6 @@ snapshots:
|
||||
|
||||
ini@1.3.8: {}
|
||||
|
||||
ini@4.1.3: {}
|
||||
|
||||
is-binary-path@2.1.0:
|
||||
dependencies:
|
||||
binary-extensions: 2.3.0
|
||||
@@ -1639,8 +1618,6 @@ snapshots:
|
||||
|
||||
isexe@2.0.0: {}
|
||||
|
||||
isexe@3.1.1: {}
|
||||
|
||||
js-yaml@4.1.0:
|
||||
dependencies:
|
||||
argparse: 2.0.1
|
||||
@@ -1663,8 +1640,6 @@ snapshots:
|
||||
dependencies:
|
||||
json-buffer: 3.0.1
|
||||
|
||||
kind-of@6.0.3: {}
|
||||
|
||||
kleur@4.1.5: {}
|
||||
|
||||
levn@0.4.1:
|
||||
@@ -1703,8 +1678,6 @@ snapshots:
|
||||
dependencies:
|
||||
brace-expansion: 2.0.2
|
||||
|
||||
minimist@1.2.8: {}
|
||||
|
||||
minipass@4.2.8: {}
|
||||
|
||||
minipass@7.1.2: {}
|
||||
@@ -1887,15 +1860,6 @@ snapshots:
|
||||
dependencies:
|
||||
typescript: 5.5.4
|
||||
|
||||
ts-patch@3.3.0:
|
||||
dependencies:
|
||||
chalk: 4.1.2
|
||||
global-prefix: 4.0.0
|
||||
minimist: 1.2.8
|
||||
resolve: 1.22.11
|
||||
semver: 7.7.3
|
||||
strip-ansi: 6.0.1
|
||||
|
||||
type-check@0.4.0:
|
||||
dependencies:
|
||||
prelude-ls: 1.2.1
|
||||
@@ -1925,10 +1889,6 @@ snapshots:
|
||||
dependencies:
|
||||
isexe: 2.0.0
|
||||
|
||||
which@4.0.0:
|
||||
dependencies:
|
||||
isexe: 3.1.1
|
||||
|
||||
word-wrap@1.2.5: {}
|
||||
|
||||
wrap-ansi@7.0.0:
|
||||
|
||||
0
src/client/controllers/gui.ts
Normal file
0
src/client/controllers/gui.ts
Normal file
@@ -1,13 +1,47 @@
|
||||
// TODO
|
||||
|
||||
// class AbilityBuilder {
|
||||
// constructor() {}
|
||||
// }
|
||||
import { TupleType } from "typescript";
|
||||
import { AbilityType } from "./main";
|
||||
|
||||
// class PasiveBuilder {
|
||||
// constructor() {}
|
||||
// }
|
||||
/**
|
||||
* Transform a object in getter and setter.
|
||||
*/
|
||||
type Builder<E extends Record<string, defined>, T = E> = {
|
||||
[Key in keyof E as `get${Capitalize<string & Key>}`]: () => E[Key];
|
||||
} & {
|
||||
[Key in keyof E as `set${Capitalize<string & Key>}`]: (arg: E[Key]) => void;
|
||||
} & {
|
||||
build: () => T;
|
||||
};
|
||||
|
||||
type ListenerBuilder<L> = {
|
||||
addEvent<E extends keyof L & string>(
|
||||
event: E,
|
||||
func: (...args: L[E] extends unknown[] ? L[E] : never) => void,
|
||||
): void;
|
||||
};
|
||||
|
||||
interface AbilityEvents {
|
||||
onSpawn: [player: Player];
|
||||
onKill: [player: Player];
|
||||
onKey: [player: Player, key: string];
|
||||
}
|
||||
|
||||
class AbilityBuilder implements Builder<{ id: string; type: AbilityType }>, ListenerBuilder<AbilityEvents> {
|
||||
constructor() {}
|
||||
addEvent<E extends keyof AbilityEvents>(
|
||||
event: E,
|
||||
func: (...args: AbilityEvents[E] extends unknown[] ? AbilityEvents[E] : never) => void,
|
||||
): void {}
|
||||
getId!: () => string;
|
||||
getType!: () => AbilityType;
|
||||
setId!: (arg: string) => void;
|
||||
setType!: (arg: AbilityType) => void;
|
||||
build!: () => { id: string; type: AbilityType };
|
||||
}
|
||||
|
||||
const test = new AbilityBuilder();
|
||||
test.addEvent("onKey", (player, key) => {});
|
||||
// class CharacterBuilder {
|
||||
// constructor() {}
|
||||
// }
|
||||
|
||||
4
src/shared/character/main.ts
Normal file
4
src/shared/character/main.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
export enum AbilityType {
|
||||
KeyBoard,
|
||||
Pasive,
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"downlevelIteration": true,
|
||||
"jsx": "react",
|
||||
"jsxFactory": "React.createElement",
|
||||
"jsxFactory": "Fusion.jsx",
|
||||
"jsxFragmentFactory": "React.Fragment",
|
||||
"module": "commonjs",
|
||||
"moduleResolution": "Node",
|
||||
|
||||
Reference in New Issue
Block a user