-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtypes.ts
More file actions
77 lines (70 loc) · 1.79 KB
/
types.ts
File metadata and controls
77 lines (70 loc) · 1.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import { ThreeElements } from '@react-three/fiber';
declare global {
namespace JSX {
interface IntrinsicElements extends ThreeElements {
mesh: any;
group: any;
meshStandardMaterial: any;
meshBasicMaterial: any;
meshPhysicalMaterial: any;
bufferGeometry: any;
bufferAttribute: any;
instancedMesh: any;
coneGeometry: any;
cylinderGeometry: any;
planeGeometry: any;
sphereGeometry: any;
boxGeometry: any;
torusGeometry: any;
dodecahedronGeometry: any;
ambientLight: any;
directionalLight: any;
pointLight: any;
orthographicCamera: any;
}
}
}
export enum PlanetType {
MARS = 'Mars',
MOON = 'Moon',
SATURN = 'Saturn',
SATURN_RINGS = 'Saturn Rings',
NEPTUNE = 'Neptune',
URANUS = 'Uranus',
SPACECRAFT = 'Space Craft',
}
export type TerrainProfile = 'shield' | 'ridge' | 'cloud' | 'pipe';
export type WeatherType = 'none' | 'dust_storm' | 'diamond_rain' | 'snow' | 'debris';
export interface PlanetConfig {
name: PlanetType;
gravity: number;
atmosphereDensity: number;
groundColor: string;
skyColor: string;
fogColor: string;
mountainHeight: number;
terrainRoughness: number;
accentColor: string;
stars: boolean;
description: string;
hasWater?: boolean;
scatterType?: 'rock' | 'ice' | 'none' | 'tech';
terrainProfile: TerrainProfile;
weather: WeatherType;
locked?: boolean;
}
export enum GameState {
MENU = 'MENU',
PLAYING = 'PLAYING',
PAUSED = 'PAUSED',
FINISHED = 'FINISHED',
CRASHED = 'CRASHED',
}
export type HelmetStyle = 'classic' | 'visor' | 'tech';
export type BoardType = 'standard' | 'v-wing' | 'disk';
export interface PlayerCustomization {
suitColor: string;
helmetStyle: HelmetStyle;
boardType: BoardType;
boardColor: string;
}