@killscript/types 0.1.0

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.
@@ -0,0 +1,3 @@
1
+ import "./shared.js";
2
+ import "./generated/server.js";
3
+ export {};
@@ -0,0 +1,152 @@
1
+ import "./generated/shared.js";
2
+ export {};
3
+ declare global {
4
+ /** A read-only, one-based array exposed by the game. Use `arrays` from the SDK to iterate it. */
5
+ interface LuaArray<T> {
6
+ readonly Length: number;
7
+ readonly [index: number]: T | undefined;
8
+ }
9
+ /** @customConstructor Vector2.new */
10
+ interface Vector2 {
11
+ x: number;
12
+ y: number;
13
+ readonly magnitude: number;
14
+ readonly sqrMagnitude: number;
15
+ readonly normalized: Vector2;
16
+ Magnitude(): number;
17
+ Dot(rhs: Vector2): number;
18
+ Angle(to: Vector2): number;
19
+ Distance(to: Vector2): number;
20
+ Normalize(): Vector2;
21
+ }
22
+ /** @noSelf */
23
+ interface Vector2Constructor {
24
+ new (x: number, y: number): Vector2;
25
+ readonly zero: Vector2;
26
+ readonly one: Vector2;
27
+ }
28
+ const Vector2: Vector2Constructor;
29
+ /** @customConstructor Vector3.new */
30
+ interface Vector3 {
31
+ x: number;
32
+ y: number;
33
+ z: number;
34
+ readonly magnitude: number;
35
+ readonly sqrMagnitude: number;
36
+ readonly normalized: Vector3;
37
+ Magnitude(): number;
38
+ Dot(rhs: Vector3): number;
39
+ Angle(to: Vector3): number;
40
+ Distance(to: Vector3): number;
41
+ Cross(rhs: Vector3): Vector3;
42
+ OnlyXZ(): Vector3;
43
+ Normalize(): Vector3;
44
+ }
45
+ /** @noSelf */
46
+ interface Vector3Constructor {
47
+ new (x: number, y: number, z: number): Vector3;
48
+ readonly back: Vector3;
49
+ readonly down: Vector3;
50
+ readonly forward: Vector3;
51
+ readonly left: Vector3;
52
+ readonly negativeInfinity: Vector3;
53
+ readonly zero: Vector3;
54
+ readonly one: Vector3;
55
+ readonly positiveInfinity: Vector3;
56
+ readonly right: Vector3;
57
+ readonly up: Vector3;
58
+ fromYawPitchToDirection(yaw: number, pitch: number): Vector3;
59
+ }
60
+ const Vector3: Vector3Constructor;
61
+ /** @customConstructor Quaternion.new */
62
+ interface Quaternion {
63
+ x: number;
64
+ y: number;
65
+ z: number;
66
+ w: number;
67
+ readonly normalized: Quaternion;
68
+ readonly eulerAngles: Vector3;
69
+ Dot(other: Quaternion): number;
70
+ Normalize(): Quaternion;
71
+ Inverse(): Quaternion;
72
+ Angle(other: Quaternion): number;
73
+ Lerp(other: Quaternion, amount: number): Quaternion;
74
+ LerpUnclamped(other: Quaternion, amount: number): Quaternion;
75
+ Slerp(other: Quaternion, amount: number): Quaternion;
76
+ SlerpUnclamped(other: Quaternion, amount: number): Quaternion;
77
+ RotateTowards(to: Quaternion, maxDegreesDelta: number): Quaternion;
78
+ ToAngleAxis(): LuaMultiReturn<[angle: number, axis: Vector3]>;
79
+ }
80
+ type Vector3Like = Vector3 | {
81
+ readonly x: number;
82
+ readonly y: number;
83
+ readonly z: number;
84
+ };
85
+ /** @noSelf */
86
+ interface QuaternionConstructor {
87
+ new (x: number, y: number, z: number, w: number): Quaternion;
88
+ euler(x: number, y: number, z: number): Quaternion;
89
+ lookRotation(forward: Vector3Like, up?: Vector3Like): Quaternion;
90
+ angleAxis(angle: number, axis: Vector3Like): Quaternion;
91
+ fromToRotation(from: Vector3Like, to: Vector3Like): Quaternion;
92
+ }
93
+ const Quaternion: QuaternionConstructor;
94
+ /** @customConstructor Color.new */
95
+ interface Color {
96
+ r: number;
97
+ g: number;
98
+ b: number;
99
+ a: number;
100
+ }
101
+ /** @noSelf */
102
+ interface ColorConstructor {
103
+ new (r: number, g: number, b: number, a?: number): Color;
104
+ }
105
+ const Color: ColorConstructor;
106
+ /** @customConstructor Rect.new */
107
+ interface Rect {
108
+ x: number;
109
+ y: number;
110
+ width: number;
111
+ height: number;
112
+ xMin: number;
113
+ yMin: number;
114
+ xMax: number;
115
+ yMax: number;
116
+ center: Vector2;
117
+ }
118
+ /** @noSelf */
119
+ interface RectConstructor {
120
+ new (x: number, y: number, width: number, height: number): Rect;
121
+ }
122
+ const Rect: RectConstructor;
123
+ /** Values supported by native Config after the module configuration has loaded. */
124
+ type ConfigValue = boolean | number | Color;
125
+ const Config: Record<string, ConfigValue>;
126
+ /** Serializable persistent module data. Available only in the client entry. */
127
+ interface StorageTable {
128
+ [key: string]: LuaValue;
129
+ }
130
+ interface TimeApi {
131
+ /**
132
+ * Native truncating conversion. Exact durations can undercount (1 second
133
+ * was verified as 59 ticks); prefer SDK `time.ceilTicks()` for deadlines.
134
+ */
135
+ SecondsToTick(seconds: number): number;
136
+ }
137
+ interface NetworkApi {
138
+ /** Native transport keeps only one send made in the same tick. Prefer `defineNetwork()`. */
139
+ SendTable(table: LuaTableData): void;
140
+ }
141
+ interface AgentInputApi {
142
+ /**
143
+ * @deprecated In the current game build setter calls succeed but are not
144
+ * applied to the actually controlled player. The game developer is aware.
145
+ */
146
+ SetButtonState(inputButton: EInputButton, down: boolean): void;
147
+ /** @deprecated See SetButtonState; the current server input setters are not applied. */
148
+ SetLookRotation(vector: Vector2): void;
149
+ /** @deprecated See SetButtonState; the current server input setters are not applied. */
150
+ SetMoveDirection(vector: Vector2): void;
151
+ }
152
+ }
package/package.json ADDED
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "@killscript/types",
3
+ "version": "0.1.0",
4
+ "description": "TypeScript declarations for the native KILLSCRIPT Lua API",
5
+ "license": "MIT",
6
+ "keywords": ["killscript", "typescript", "lua", "types"],
7
+ "homepage": "https://silentbless.github.io/killscript/",
8
+ "sideEffects": false,
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/SilentBless/killscript.git",
12
+ "directory": "packages/types"
13
+ },
14
+ "type": "module",
15
+ "files": [
16
+ "dist"
17
+ ],
18
+ "exports": {
19
+ ".": {
20
+ "types": "./dist/shared.d.ts"
21
+ },
22
+ "./client": {
23
+ "types": "./dist/client.d.ts"
24
+ },
25
+ "./server": {
26
+ "types": "./dist/server.d.ts"
27
+ }
28
+ },
29
+ "scripts": {
30
+ "build": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.json && node ../../scripts/rewrite-declaration-imports.mjs dist",
31
+ "check": "tsc -p tsconfig.json --noEmit",
32
+ "prepack": "npm run build"
33
+ },
34
+ "dependencies": {
35
+ "@typescript-to-lua/language-extensions": "1.19.0"
36
+ },
37
+ "devDependencies": {
38
+ "typescript": "6.0.2"
39
+ },
40
+ "engines": {
41
+ "node": ">=20"
42
+ },
43
+ "publishConfig": {
44
+ "access": "public"
45
+ }
46
+ }