Skip to content

Commit ab7553c

Browse files
authored
Merge pull request #557 from StarT-Dev-Team/n1x/typescript-definitions
Typescript definitions
2 parents 43bc5f2 + e12948b commit ab7553c

195 files changed

Lines changed: 13519 additions & 3377 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/lint.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ jobs:
4141
--format json \
4242
--output-file eslint-report.json || true
4343
44+
- name: Run Typecheck
45+
id: typecheck
46+
run: |
47+
npm run lint:typecheck || true
48+
4449
- name: Run Prettier (check mode + diff)
4550
id: prettier
4651
run: |

eslint.config.mjs

Lines changed: 50 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export default [
2121
Ingredient: 'readonly',
2222
Fluid: 'readonly',
2323
AABB: 'readonly',
24-
BlockPos: 'readonly',
24+
$BlockPos: 'readonly',
2525
Vec3: 'readonly',
2626
UUID: 'readonly',
2727
Java: 'readonly',
@@ -49,56 +49,56 @@ export default [
4949
StartupEvents: 'readonly',
5050
ForgeEvents: 'readonly',
5151
WorldgenEvents: 'readonly',
52-
ServerLevel: 'readonly',
53-
Registries: 'readonly',
54-
HolderSet: 'readonly',
55-
ChunkPos: 'readonly',
52+
$ServerLevel: 'readonly',
53+
$Registries: 'readonly',
54+
$HolderSet: 'readonly',
55+
$ChunkPos: 'readonly',
5656
BlockProperties: 'readonly',
57-
SectionPos: 'readonly',
57+
$SectionPos: 'readonly',
5858
GuiTextureGroup: 'readonly',
5959
// GTm Globals
60-
$MultiblockMachineDefinition: "readonly",
61-
GTRegistries: "readonly",
62-
GTValues: "readonly",
63-
GTRecipeCategories: "readonly",
64-
CleanroomType: "readonly",
65-
GTCEuServerEvents: "readonly",
66-
GTMaterials: "readonly",
67-
GTMaterialFlags: "readonly",
68-
PropertyKey: "readonly",
69-
GTCEuStartupEvents: "readonly",
70-
GTElements: "readonly",
71-
GTMaterialIconSet: "readonly",
72-
IngotProperty: "readonly",
73-
DustProperty: "readonly",
74-
FluidProperty: "readonly",
75-
GTFluidStorageKeys: "readonly",
76-
GTFluidBuilder: "readonly",
77-
BlastProperty: "readonly",
78-
$FluidHatchPartMachine: "readonly",
79-
$GTMachineModelProperties: "readonly",
80-
$CleaningMaintenanceHatchPartMachine: "readonly",
81-
RotationState: "readonly",
82-
PartAbility: "readonly",
83-
GTRecipeTypes: "readonly",
84-
GCYMMachines: "readonly",
85-
GTRecipeModifiers: "readonly",
86-
FactoryBlockPattern: "readonly",
87-
Predicates: "readonly",
88-
$CoiledMulti: "readonly",
89-
GCYMBlocks: "readonly",
90-
GTBlocks: "readonly",
91-
$SteamMulti: "readonly",
92-
$OpticalComputationMachine: "readonly",
93-
$LayeredWorkableElectricMultiblockMachine: "readonly",
94-
$RelativeDirection: "readonly",
95-
$AssemblyLineMulti: "readonly",
96-
GTSoundEntries: "readonly",
97-
ToolProperty: "readonly",
98-
GTToolType: "readonly",
99-
$FormattingUtil: "readonly",
100-
$FluidPipeProperties: "readonly",
101-
GTFluidState: "readonly",
60+
$MultiblockMachineDefinition: 'readonly',
61+
GTRegistries: 'readonly',
62+
GTValues: 'readonly',
63+
GTRecipeCategories: 'readonly',
64+
CleanroomType: 'readonly',
65+
GTCEuServerEvents: 'readonly',
66+
GTMaterials: 'readonly',
67+
GTMaterialFlags: 'readonly',
68+
PropertyKey: 'readonly',
69+
GTCEuStartupEvents: 'readonly',
70+
GTElements: 'readonly',
71+
GTMaterialIconSet: 'readonly',
72+
IngotProperty: 'readonly',
73+
DustProperty: 'readonly',
74+
FluidProperty: 'readonly',
75+
GTFluidStorageKeys: 'readonly',
76+
GTFluidBuilder: 'readonly',
77+
BlastProperty: 'readonly',
78+
$FluidHatchPartMachine: 'readonly',
79+
$GTMachineModelProperties: 'readonly',
80+
$CleaningMaintenanceHatchPartMachine: 'readonly',
81+
RotationState: 'readonly',
82+
PartAbility: 'readonly',
83+
GTRecipeTypes: 'readonly',
84+
GCYMMachines: 'readonly',
85+
GTRecipeModifiers: 'readonly',
86+
FactoryBlockPattern: 'readonly',
87+
Predicates: 'readonly',
88+
$CoiledMulti: 'readonly',
89+
GCYMBlocks: 'readonly',
90+
GTBlocks: 'readonly',
91+
$SteamMulti: 'readonly',
92+
$OpticalComputationMachine: 'readonly',
93+
$LayeredWorkableElectricMultiblockMachine: 'readonly',
94+
$RelativeDirection: 'readonly',
95+
$AssemblyLineMulti: 'readonly',
96+
GTSoundEntries: 'readonly',
97+
ToolProperty: 'readonly',
98+
GTToolType: 'readonly',
99+
$FormattingUtil: 'readonly',
100+
$FluidPipeProperties: 'readonly',
101+
GTFluidState: 'readonly',
102102
// LDLib globals
103103
GuiTextures: 'readonly',
104104
FillDirection: 'readonly',
@@ -120,6 +120,7 @@ export default [
120120
// Miscellaneous globals
121121
Ponder: 'readonly',
122122
Direction: 'readonly',
123+
PonderPalette: 'readonly',
123124
PonderTickingInstruction: 'readonly',
124125
PonderPointing: 'readonly',
125126
// Custom globals
@@ -159,7 +160,7 @@ export default [
159160
'no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
160161
'no-console': 'off',
161162
'no-redeclare': ['error', { builtinGlobals: false }],
162-
'quotes': ['error', 'single', { avoidEscape: true, allowTemplateLiterals: false }]
163+
quotes: ['error', 'single', { avoidEscape: true, allowTemplateLiterals: false }],
163164
},
164165
},
165166
{

jsconfig.json

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
11
{
2-
"include": ["kubejs"]
2+
"compilerOptions": {
3+
"checkJs": true,
4+
"skipLibCheck": false,
5+
"lib": ["ES2016", "ES2017.Object"],
6+
"noEmit": true
7+
},
8+
"include": [
9+
"kubejs/client_scripts/**/*.js",
10+
"kubejs/server_scripts/**/*.js",
11+
"kubejs/startup_scripts/**/*.js",
12+
"kubejs/.types/**/*.d.ts",
13+
"kubejs/.types/**/*.ts",
14+
"kubejs/.types/minecraft/_kjs.ts",
15+
"kubejs/.types/startcore/startcore.ts"
16+
]
317
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
declare namespace internal.dev.architectury.fluid {
2+
import ForgeFluidStack = net.minecraftforge.fluids.FluidStack;
3+
4+
interface FluidStack extends $object<'dev.architectury.fluid.FluidStack'> {
5+
getValue(): ForgeFluidStack;
6+
}
7+
}

kubejs/.types/calculator.d.ts

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
declare namespace Calculator {
2+
type ValueNumber = { t: 'number'; v: number };
3+
4+
type ValueString = { t: 'string'; v: string };
5+
6+
type ValueVec2 = { t: 'vec2'; v: [number, number] };
7+
8+
type ValueVec3 = { t: 'vec3'; v: [number, number, number] };
9+
10+
type Value = ValueNumber | ValueString | ValueVec2 | ValueVec3;
11+
12+
type TypedFunction<TArgs extends readonly Value['t'][]> = {
13+
readonly arguments: TArgs;
14+
} & NoInfer<TypedFunctionImpl<TArgs>>;
15+
16+
type TypedFunctionImpl<TArgs extends readonly Value['t'][]> = {
17+
readonly fn: (...args: { [K in keyof TArgs]: Extract<Value, { t: TArgs[K] }> }) => Value;
18+
};
19+
20+
type Function = {
21+
readonly arguments?: readonly Value['t'][];
22+
readonly fn: (...args: Value[]) => Value;
23+
};
24+
25+
import MutableComponent = internal.net.minecraft.network.chat.MutableComponent;
26+
27+
type DocumentedFunction = {
28+
name: string;
29+
fullName?: string;
30+
usage: string | MutableComponent;
31+
description: string;
32+
implementation: Function | Function[];
33+
};
34+
35+
type DocumentedOperator = {
36+
name: string;
37+
fullName?: string;
38+
usage: string | MutableComponent;
39+
description: string;
40+
implementation: Function | Function[];
41+
};
42+
43+
type DocumentedConstant = {
44+
name: string;
45+
fullName?: string;
46+
usage: string | MutableComponent;
47+
description: string;
48+
value: Value;
49+
};
50+
51+
type DocumentedSuffix = {
52+
names: string[];
53+
fullName?: string;
54+
usage: string | MutableComponent;
55+
description: string;
56+
};
57+
}

kubejs/.types/catnip/gui.d.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
declare namespace internal.net.createmod.catnip.gui.element {
2+
import GuiGraphics = net.minecraft.client.gui.GuiGraphics;
3+
4+
interface ScreenElement extends $object<'net.createmod.catnip.gui.element.ScreenElement'> {
5+
render(gui: GuiGraphics, x: number, y: number): void;
6+
}
7+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
declare namespace internal.net.createmod.catnip.levelWrappers {
2+
import Level = net.minecraft.world.level.Level;
3+
4+
interface WrappedLevel extends $object<'net.createmod.catnip.levelWrappers.WrappedLevel', Level> {}
5+
6+
interface SchematicLevel extends $object<'net.createmod.catnip.levelWrappers.SchematicLevel', WrappedLevel> {}
7+
}
8+
9+
declare namespace internal.net.createmod.catnip.data {
10+
interface Pair<F, S> extends $object<'net.createmod.catnip.data.Pair'> {
11+
getFirst(): F;
12+
get first(): F;
13+
getSecond(): S;
14+
get second(): S;
15+
}
16+
}

kubejs/.types/catnip/math.d.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
declare namespace internal.net.createmod.catnip.math {
2+
interface Pointing extends $object<{ name: 'net.createmod.catnip.math.Pointing'; enumClass: typeof Pointing }> {}
3+
4+
const Pointing: $class<Pointing> & {
5+
UP: Pointing;
6+
LEFT: Pointing;
7+
DOWN: Pointing;
8+
RIGHT: Pointing;
9+
};
10+
}

kubejs/.types/catnip/theme.d.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
declare namespace internal.net.createmod.catnip.theme {
2+
interface Color extends $object<'net.createmod.catnip.theme.Color'> {
3+
getBlue(): number;
4+
get blue(): number;
5+
getAlpha(): number;
6+
get alpha(): number;
7+
getRedAsFloat(): number;
8+
get redAsFloat(): number;
9+
getGreenAsFloat(): number;
10+
get greenAsFloat(): number;
11+
getBlueAsFloat(): number;
12+
get blueAsFloat(): number;
13+
getAlphaAsFloat(): number;
14+
get alphaAsFloat(): number;
15+
getRGB(): number;
16+
get rGB(): number;
17+
scaleAlpha(factor: number): Color;
18+
scaleAlphaForText(factor: number): Color;
19+
}
20+
}

kubejs/.types/create/_.d.ts

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
declare namespace internal.kjs {
2+
import ItemApplicationRecipeJS = dev.latvian.mods.kubejs.create.ProcessingRecipeSchema$ItemApplicationRecipeJS;
3+
import ProcessingRecipeJS = dev.latvian.mods.kubejs.create.ProcessingRecipeSchema$ProcessingRecipeJS;
4+
import $InputItemOrFluidArray = dev.latvian.mods.kubejs.recipe.component.$InputItemOrFluidArray;
5+
import $OutputItemOrFluidArray = dev.latvian.mods.kubejs.recipe.component.$OutputItemOrFluidArray;
6+
7+
interface RecipeFunction_ProcessingUnwrapped extends ProcessingRecipeJS {
8+
processingTime(processingTime: number): this;
9+
heatRequirement(heatRequirement: 'lowheated'): this;
10+
heated(): this;
11+
superheated(): this;
12+
}
13+
14+
interface RecipeFunction_ProcessingDefault extends ProcessingRecipeJS {
15+
processingTime(processingTime: number): this;
16+
heatRequirement(heatRequirement: 'lowheated'): this;
17+
heated(): this;
18+
superheated(): this;
19+
}
20+
21+
interface RecipeFunctions_create {
22+
item_application(result: $OutputItemOrFluidArray, ingredients: $InputItemOrFluidArray): ItemApplicationRecipeJS;
23+
mixing(
24+
result: $OutputItemOrFluidArray,
25+
ingredients: $InputItemOrFluidArray
26+
): RecipeFunction_ProcessingUnwrapped;
27+
filling(
28+
result: $OutputItemOrFluidArray,
29+
ingredients: $InputItemOrFluidArray
30+
): RecipeFunction_ProcessingUnwrapped;
31+
pressing(
32+
result: $OutputItemOrFluidArray,
33+
ingredients: $InputItemOrFluidArray
34+
): RecipeFunction_ProcessingUnwrapped;
35+
deploying(result: $OutputItemOrFluidArray, ingredients: $InputItemOrFluidArray): ItemApplicationRecipeJS;
36+
mechanical_crafting: RecipeFunctions_minecraft['crafting_shaped'];
37+
splashing(
38+
result: $OutputItemOrFluidArray,
39+
ingredients: $InputItemOrFluidArray
40+
): RecipeFunction_ProcessingDefault;
41+
crushing(
42+
result: $OutputItemOrFluidArray,
43+
ingredients: $InputItemOrFluidArray
44+
): RecipeFunction_ProcessingDefault;
45+
haunting(
46+
result: $OutputItemOrFluidArray,
47+
ingredients: $InputItemOrFluidArray
48+
): RecipeFunction_ProcessingDefault;
49+
}
50+
51+
interface RecipeFunction_CreateVintageHammering extends RecipeFunction_ProcessingDefault {
52+
hammerBlows(blows: number): this;
53+
}
54+
55+
interface RecipeFunction_CreateVintageCentrifugation extends RecipeFunction_ProcessingDefault {
56+
minimalRPM(rpm: number): this;
57+
}
58+
59+
interface RecipeFunctions_vintage {
60+
polishing(
61+
result: $OutputItemOrFluidArray,
62+
ingredients: $InputItemOrFluidArray
63+
): RecipeFunction_ProcessingDefault;
64+
turning(result: $OutputItemOrFluidArray, ingredients: $InputItemOrFluidArray): RecipeFunction_ProcessingDefault;
65+
coiling(result: $OutputItemOrFluidArray, ingredients: $InputItemOrFluidArray): RecipeFunction_ProcessingDefault;
66+
hammering(
67+
result: $OutputItemOrFluidArray,
68+
ingredients: $InputItemOrFluidArray
69+
): RecipeFunction_CreateVintageHammering;
70+
centrifugation(
71+
result: $OutputItemOrFluidArray,
72+
ingredients: $InputItemOrFluidArray
73+
): RecipeFunction_CreateVintageCentrifugation;
74+
pressurizing(
75+
result: $OutputItemOrFluidArray,
76+
ingredients: $InputItemOrFluidArray
77+
): RecipeFunction_ProcessingDefault;
78+
vibrating(
79+
result: $OutputItemOrFluidArray,
80+
ingredients: $InputItemOrFluidArray
81+
): RecipeFunction_ProcessingDefault;
82+
}
83+
84+
interface RecipeFunctions {
85+
create: RecipeFunctions_create;
86+
vintage: RecipeFunctions_vintage;
87+
}
88+
}

0 commit comments

Comments
 (0)