Skip to content

Commit 0d02673

Browse files
committed
project structure
1 parent 7636c34 commit 0d02673

24 files changed

+65
-67
lines changed

src/ts/characters/Character.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { IControllable } from '../interfaces/IControllable';
1414
import { ICharacterState } from '../interfaces/ICharacterState';
1515
import { EnteringVehicle } from './character_states/vehicles/EnteringVehicle';
1616
import { IWorldEntity } from '../interfaces/IWorldEntity';
17-
import { SeatPoint } from '../data/SeatPoint';
17+
import { VehicleSeat } from '../vehicles/VehicleSeat';
1818
import { ExitingVehicle } from './character_states/vehicles/ExitingVehicle';
1919
import { OpenVehicleDoor as OpenVehicleDoor } from './character_states/vehicles/OpenVehicleDoor';
2020
import { Driving } from './character_states/vehicles/Driving';
@@ -76,7 +76,7 @@ export class Character extends THREE.Object3D implements IWorldEntity
7676
public world: World;
7777

7878
// Vehicles
79-
public occupyingSeat: SeatPoint = null;
79+
public occupyingSeat: VehicleSeat = null;
8080
public vehicleEntryInstance: VehicleEntryInstance = null;
8181

8282
private physicsEnabled: boolean = true;
@@ -615,7 +615,7 @@ export class Character extends THREE.Object3D implements IWorldEntity
615615
vehicleEntryInstance.wantsToDrive = wantsToDrive;
616616

617617
// Find best seat
618-
let seatFinder = new ClosestObjectFinder<SeatPoint>(this.position);
618+
let seatFinder = new ClosestObjectFinder<VehicleSeat>(this.position);
619619
for (const seat of vehicle.seats)
620620
{
621621
if (wantsToDrive)
@@ -673,7 +673,7 @@ export class Character extends THREE.Object3D implements IWorldEntity
673673
}
674674
}
675675

676-
public enterVehicle(seat: SeatPoint, entryPoint: THREE.Object3D): void
676+
public enterVehicle(seat: VehicleSeat, entryPoint: THREE.Object3D): void
677677
{
678678
this.resetControls();
679679

@@ -687,7 +687,7 @@ export class Character extends THREE.Object3D implements IWorldEntity
687687
}
688688
}
689689

690-
public teleportToVehicle(vehicle: Vehicle, seat: SeatPoint): void
690+
public teleportToVehicle(vehicle: Vehicle, seat: VehicleSeat): void
691691
{
692692
this.resetVelocity();
693693
this.rotateModel();
@@ -703,7 +703,7 @@ export class Character extends THREE.Object3D implements IWorldEntity
703703
this.startControllingVehicle(vehicle, seat);
704704
}
705705

706-
public startControllingVehicle(vehicle: IControllable, seat: SeatPoint): void
706+
public startControllingVehicle(vehicle: IControllable, seat: VehicleSeat): void
707707
{
708708
this.transferControls(vehicle);
709709
this.resetControls();
@@ -761,7 +761,7 @@ export class Character extends THREE.Object3D implements IWorldEntity
761761
this.stopControllingVehicle();
762762
}
763763

764-
public occupySeat(seat: SeatPoint): void
764+
public occupySeat(seat: VehicleSeat): void
765765
{
766766
this.occupyingSeat = seat;
767767
seat.occupiedBy = this;

src/ts/data/CharacterSpawnPoint.ts renamed to src/ts/characters/CharacterSpawnPoint.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { ISpawnPoint } from '../interfaces/ISpawnPoint';
22
import * as THREE from 'three';
33
import { World } from '../core/World';
4-
import { Character } from '../characters/Character';
4+
import { Character } from './Character';
55

66
export class CharacterSpawnPoint implements ISpawnPoint
77
{

src/ts/characters/VehicleEntryInstance.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import * as THREE from 'three';
2-
import { SeatPoint } from '../data/SeatPoint';
2+
import { VehicleSeat } from '../vehicles/VehicleSeat';
33
import { Character } from './Character';
44

55
export class VehicleEntryInstance
66
{
77
public character: Character;
8-
public targetSeat: SeatPoint;
8+
public targetSeat: VehicleSeat;
99
public entryPoint: THREE.Object3D;
1010
public wantsToDrive: boolean = false;
1111

src/ts/characters/character_ai/FollowPath.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as THREE from 'three';
22
import { FollowTarget } from './FollowTarget';
33
import { ICharacterAI } from '../../interfaces/ICharacterAI';
4-
import { PathNode } from '../../data/PathNode';
4+
import { PathNode } from '../../core/PathNode';
55

66
export class FollowPath extends FollowTarget implements ICharacterAI
77
{

src/ts/characters/character_states/vehicles/CloseVehicleDoorInside.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,18 @@ import
33
CharacterStateBase,
44
} from '../_stateLibrary';
55
import { Character } from '../../Character';
6-
import { SeatPoint } from '../../../data/SeatPoint';
6+
import { VehicleSeat } from '../../../vehicles/VehicleSeat';
77
import { Side } from '../../../enums/Side';
88
import { Driving } from './Driving';
99
import { SeatType } from '../../../enums/SeatType';
1010
import { Sitting } from './Sitting';
1111

1212
export class CloseVehicleDoorInside extends CharacterStateBase
1313
{
14-
private seat: SeatPoint;
14+
private seat: VehicleSeat;
1515
private hasClosedDoor: boolean = false;
1616

17-
constructor(character: Character, seat: SeatPoint)
17+
constructor(character: Character, seat: VehicleSeat)
1818
{
1919
super(character);
2020

src/ts/characters/character_states/vehicles/CloseVehicleDoorOutside.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,16 @@ import
33
CharacterStateBase,
44
} from '../_stateLibrary';
55
import { Character } from '../../Character';
6-
import { SeatPoint } from '../../../data/SeatPoint';
6+
import { VehicleSeat } from '../../../vehicles/VehicleSeat';
77
import { Side } from '../../../enums/Side';
88
import { Idle } from '../Idle';
99

1010
export class CloseVehicleDoorOutside extends CharacterStateBase
1111
{
12-
private seat: SeatPoint;
12+
private seat: VehicleSeat;
1313
private hasClosedDoor: boolean = false;
1414

15-
constructor(character: Character, seat: SeatPoint)
15+
constructor(character: Character, seat: VehicleSeat)
1616
{
1717
super(character);
1818

src/ts/characters/character_states/vehicles/Driving.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ import
33
CharacterStateBase,
44
} from '../_stateLibrary';
55
import { Character } from '../../Character';
6-
import { SeatPoint } from 'src/ts/data/SeatPoint';
6+
import { VehicleSeat } from 'src/ts/vehicles/VehicleSeat';
77
import { CloseVehicleDoorInside } from './CloseVehicleDoorInside';
88

99
export class Driving extends CharacterStateBase
1010
{
11-
private seat: SeatPoint;
11+
private seat: VehicleSeat;
1212

13-
constructor(character: Character, seat: SeatPoint)
13+
constructor(character: Character, seat: VehicleSeat)
1414
{
1515
super(character);
1616

src/ts/characters/character_states/vehicles/EnteringVehicle.ts

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,37 +6,35 @@ import
66
import { Character } from '../../Character';
77
import { IControllable } from '../../../interfaces/IControllable';
88
import { Driving } from './Driving';
9-
import { SeatPoint } from '../../../data/SeatPoint';
9+
import { VehicleSeat } from '../../../vehicles/VehicleSeat';
1010
import { Side } from '../../../enums/Side';
1111
import { Sitting } from './Sitting';
12-
import { SwitchingSeats } from './SwitchingSeats';
1312
import { SeatType } from '../../../enums/SeatType';
1413

1514
export class EnteringVehicle extends CharacterStateBase
1615
{
1716
private vehicle: IControllable;
18-
private seat: SeatPoint;
17+
private seat: VehicleSeat;
1918
private startPosition: THREE.Vector3 = new THREE.Vector3();
2019
private endPosition: THREE.Vector3 = new THREE.Vector3();
2120
private startRotation: THREE.Quaternion = new THREE.Quaternion();
2221
private endRotation: THREE.Quaternion = new THREE.Quaternion();
2322

24-
constructor(character: Character, seat: SeatPoint)
23+
constructor(character: Character, seat: VehicleSeat)
2524
{
2625
super(character);
2726

2827
this.canFindVehiclesToEnter = false;
2928
this.vehicle = seat.vehicle;
3029
this.seat = seat;
3130

32-
// this.animationLength = 1;
3331
if (seat.doorSide === Side.Left)
3432
{
35-
this.playAnimation('sit_down_right', 0.1);
33+
this.playAnimation('enter_airplane_right', 0.1);
3634
}
3735
else if (seat.doorSide === Side.Right)
3836
{
39-
this.playAnimation('sit_down_left', 0.1);
37+
this.playAnimation('enter_airplane_left', 0.1);
4038
}
4139

4240
this.character.resetVelocity();
@@ -72,7 +70,7 @@ export class EnteringVehicle extends CharacterStateBase
7270
}
7371
else
7472
{
75-
let factor = this.timer / this.animationLength;
73+
let factor = THREE.MathUtils.clamp(this.timer / (this.animationLength - 0.3), 0, 1);
7674
let sineFactor = 1 - ((Math.cos(factor * Math.PI) * 0.5) + 0.5);
7775

7876
let lerpPosition = new THREE.Vector3().lerpVectors(this.startPosition, this.endPosition, sineFactor);

src/ts/characters/character_states/vehicles/ExitingVehicle.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import
55
} from '../_stateLibrary';
66
import { Character } from '../../Character';
77
import { Side } from '../../../enums/Side';
8-
import { SeatPoint } from '../../../data/SeatPoint';
8+
import { VehicleSeat } from '../../../vehicles/VehicleSeat';
99
import { IControllable } from '../../../interfaces/IControllable';
1010
import { Idle } from '../Idle';
1111
import { CloseVehicleDoorOutside } from './CloseVehicleDoorOutside';
@@ -15,13 +15,13 @@ import { Falling } from '../Falling';
1515
export class ExitingVehicle extends CharacterStateBase
1616
{
1717
private vehicle: IControllable;
18-
private seat: SeatPoint;
18+
private seat: VehicleSeat;
1919
private startPosition: THREE.Vector3 = new THREE.Vector3();
2020
private endPosition: THREE.Vector3 = new THREE.Vector3();
2121
private startRotation: THREE.Quaternion = new THREE.Quaternion();
2222
private endRotation: THREE.Quaternion = new THREE.Quaternion();
2323

24-
constructor(character: Character, seat: SeatPoint)
24+
constructor(character: Character, seat: VehicleSeat)
2525
{
2626
super(character);
2727

src/ts/characters/character_states/vehicles/OpenVehicleDoor.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,18 @@ import
44
CharacterStateBase,
55
} from '../_stateLibrary';
66
import { Character } from '../../Character';
7-
import { SeatPoint } from '../../../data/SeatPoint';
7+
import { VehicleSeat } from '../../../vehicles/VehicleSeat';
88
import { Side } from '../../../enums/Side';
99
import { Idle } from '../Idle';
1010
import { EnteringVehicle } from './EnteringVehicle';
1111

1212
export class OpenVehicleDoor extends CharacterStateBase
1313
{
14-
private seat: SeatPoint;
14+
private seat: VehicleSeat;
1515
private entryPoint: THREE.Object3D;
1616
private hasOpenedDoor: boolean = false;
1717

18-
constructor(character: Character, seat: SeatPoint, entryPoint: THREE.Object3D)
18+
constructor(character: Character, seat: VehicleSeat, entryPoint: THREE.Object3D)
1919
{
2020
super(character);
2121

src/ts/characters/character_states/vehicles/Sitting.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,16 @@ import
33
CharacterStateBase,
44
} from '../_stateLibrary';
55
import { Character } from '../../Character';
6-
import { SeatPoint } from 'src/ts/data/SeatPoint';
6+
import { VehicleSeat } from 'src/ts/vehicles/VehicleSeat';
77
import { CloseVehicleDoorInside } from './CloseVehicleDoorInside';
88
import { SeatType } from '../../../enums/SeatType';
99
import { SwitchingSeats } from './SwitchingSeats';
1010

1111
export class Sitting extends CharacterStateBase
1212
{
13-
private seat: SeatPoint;
13+
private seat: VehicleSeat;
1414

15-
constructor(character: Character, seat: SeatPoint)
15+
constructor(character: Character, seat: VehicleSeat)
1616
{
1717
super(character);
1818

src/ts/characters/character_states/vehicles/SwitchingSeats.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,22 @@ import
44
CharacterStateBase,
55
} from '../_stateLibrary';
66
import { Character } from '../../Character';
7-
import { SeatPoint } from '../../../data/SeatPoint';
7+
import { VehicleSeat } from '../../../vehicles/VehicleSeat';
88
import { Side } from '../../../enums/Side';
99
import { SeatType } from '../../../enums/SeatType';
1010
import { Driving } from './Driving';
1111
import { Sitting } from './Sitting';
1212

1313
export class SwitchingSeats extends CharacterStateBase
1414
{
15-
private toSeat: SeatPoint;
15+
private toSeat: VehicleSeat;
1616

1717
private startPosition: THREE.Vector3 = new THREE.Vector3();
1818
private endPosition: THREE.Vector3 = new THREE.Vector3();
1919
private startRotation: THREE.Quaternion = new THREE.Quaternion();
2020
private endRotation: THREE.Quaternion = new THREE.Quaternion();
2121

22-
constructor(character: Character, fromSeat: SeatPoint, toSeat: SeatPoint)
22+
constructor(character: Character, fromSeat: VehicleSeat, toSeat: VehicleSeat)
2323
{
2424
super(character);
2525

src/ts/entities/Grass.ts renamed to src/ts/core/Grass.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import * as THREE from 'three';
22
import { Noise } from '../../lib/utils/perlin.js';
33
import { GrassShader } from '../../lib/shaders/GrassShader';
44
import { IWorldEntity } from '../interfaces/IWorldEntity';
5-
import { World } from '../core/World';
5+
import { World } from './World';
66
import { LOD } from 'three';
77

88
export class Grass implements IWorldEntity
File renamed without changes.
File renamed without changes.

src/ts/data/Scenario.ts renamed to src/ts/core/Scenario.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { ISpawnPoint } from '../interfaces/ISpawnPoint';
2-
import { VehicleSpawnPoint } from './VehicleSpawnPoint';
3-
import { CharacterSpawnPoint } from './CharacterSpawnPoint';
4-
import { World } from '../core/World';
2+
import { VehicleSpawnPoint } from '../vehicles/VehicleSpawnPoint';
3+
import { CharacterSpawnPoint } from '../characters/CharacterSpawnPoint';
4+
import { World } from './World';
55

66
export class Scenario
77
{

src/ts/entities/Sky.ts renamed to src/ts/core/Sky.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { SkyShader } from '../../lib/shaders/SkyShader';
22
import * as THREE from 'three';
3-
import { World } from '../core/World';
3+
import { World } from './World';
44

55
export class Sky extends THREE.Object3D
66
{

src/ts/core/World.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,18 @@ import * as _ from 'lodash';
1818
import { InputManager } from './InputManager';
1919
import { Character } from '../characters/Character';
2020
import { IWorldEntity } from '../interfaces/IWorldEntity';
21-
import { Sky } from '../entities/Sky';
21+
import { Sky } from './Sky';
2222
import * as Utils from './FunctionLibrary';
23-
import { Grass } from '../entities/Grass';
24-
import { Path } from '../data/Path';
23+
import { Grass } from './Grass';
24+
import { Path } from './Path';
2525
import { CollisionGroups } from '../enums/CollisionGroups';
2626
import { LoadingManager } from './LoadingManager';
2727
import { LoadingScreen } from '../ui/LoadingScreen';
2828
import { BoxCollider } from '../physics/colliders/BoxCollider';
2929
import { TrimeshCollider } from '../physics/colliders/TrimeshCollider';
3030
import { CannonDebugRenderer } from '../../lib/cannon/CannonDebugRenderer';
3131
import { Vehicle } from '../vehicles/Vehicle';
32-
import { Scenario } from '../data/Scenario';
32+
import { Scenario } from './Scenario';
3333
import { CustomConsole } from '../ui/CustomConsole';
3434
import { times } from 'lodash';
3535

src/ts/interfaces/IControllable.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import { Character } from '../characters/Character';
22
import { IInputReceiver } from './IInputReceiver';
3-
import { SeatPoint } from '../data/SeatPoint';
3+
import { VehicleSeat } from '../vehicles/VehicleSeat';
44

55
export interface IControllable extends IInputReceiver
66
{
7-
seats: SeatPoint[];
7+
seats: VehicleSeat[];
88
position: THREE.Vector3;
99
controllingCharacter: Character;
1010

src/ts/sketchbook.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export {Airplane} from './vehicles/Airplane';
1616
export {Car} from './vehicles/Car';
1717
export {Helicopter} from './vehicles/Helicopter';
1818
export {Wheel} from './vehicles/Wheel';
19-
export {SeatPoint as VehicleSeat} from './data/SeatPoint';
19+
export {VehicleSeat as VehicleSeat} from './vehicles/VehicleSeat';
2020
export {VehicleDoor} from './vehicles/VehicleDoor';
2121

2222
import * as statesLibrary from './characters/character_states/_stateLibrary';

0 commit comments

Comments
 (0)