├── .gitattributes
├── .gitignore
├── README.md
├── app.ctn
├── app
├── config.ctn
├── core.ctn
├── input.ctn
└── signals.ctn
├── bin
├── jit-play
├── play
└── visu
├── bootstrap.php
├── composer.json
├── composer.lock
├── resources
├── levels
│ └── test.lvl
├── models
│ ├── road
│ │ ├── basic.mtl
│ │ └── basic.obj
│ └── spacekit
│ │ ├── License.txt
│ │ ├── alien.mtl
│ │ ├── alien.obj
│ │ ├── astronautA.mtl
│ │ ├── astronautA.obj
│ │ ├── astronautB.mtl
│ │ ├── astronautB.obj
│ │ ├── barrel.mtl
│ │ ├── barrel.obj
│ │ ├── barrels.mtl
│ │ ├── barrels.obj
│ │ ├── barrels_rail.mtl
│ │ ├── barrels_rail.obj
│ │ ├── bones.mtl
│ │ ├── bones.obj
│ │ ├── chimney.mtl
│ │ ├── chimney.obj
│ │ ├── chimney_detailed.mtl
│ │ ├── chimney_detailed.obj
│ │ ├── corridor.mtl
│ │ ├── corridor.obj
│ │ ├── corridor_corner.mtl
│ │ ├── corridor_corner.obj
│ │ ├── corridor_cornerRound.mtl
│ │ ├── corridor_cornerRound.obj
│ │ ├── corridor_cornerRoundWindow.mtl
│ │ ├── corridor_cornerRoundWindow.obj
│ │ ├── corridor_cross.mtl
│ │ ├── corridor_cross.obj
│ │ ├── corridor_detailed.mtl
│ │ ├── corridor_detailed.obj
│ │ ├── corridor_end.mtl
│ │ ├── corridor_end.obj
│ │ ├── corridor_open.mtl
│ │ ├── corridor_open.obj
│ │ ├── corridor_roof.mtl
│ │ ├── corridor_roof.obj
│ │ ├── corridor_split.mtl
│ │ ├── corridor_split.obj
│ │ ├── corridor_wall.mtl
│ │ ├── corridor_wall.obj
│ │ ├── corridor_wallCorner.mtl
│ │ ├── corridor_wallCorner.obj
│ │ ├── corridor_window.mtl
│ │ ├── corridor_window.obj
│ │ ├── corridor_windowClosed.mtl
│ │ ├── corridor_windowClosed.obj
│ │ ├── craft_cargoA.mtl
│ │ ├── craft_cargoA.obj
│ │ ├── craft_cargoB.mtl
│ │ ├── craft_cargoB.obj
│ │ ├── craft_miner.mtl
│ │ ├── craft_miner.obj
│ │ ├── craft_racer.mtl
│ │ ├── craft_racer.obj
│ │ ├── craft_speederA.mtl
│ │ ├── craft_speederA.obj
│ │ ├── craft_speederB.mtl
│ │ ├── craft_speederB.obj
│ │ ├── craft_speederC.mtl
│ │ ├── craft_speederC.obj
│ │ ├── craft_speederD.mtl
│ │ ├── craft_speederD.obj
│ │ ├── crater.mtl
│ │ ├── crater.obj
│ │ ├── craterLarge.mtl
│ │ ├── craterLarge.obj
│ │ ├── desk_chair.mtl
│ │ ├── desk_chair.obj
│ │ ├── desk_chairArms.mtl
│ │ ├── desk_chairArms.obj
│ │ ├── desk_chairStool.mtl
│ │ ├── desk_chairStool.obj
│ │ ├── desk_computer.mtl
│ │ ├── desk_computer.obj
│ │ ├── desk_computerCorner.mtl
│ │ ├── desk_computerCorner.obj
│ │ ├── desk_computerScreen.mtl
│ │ ├── desk_computerScreen.obj
│ │ ├── gate_complex.mtl
│ │ ├── gate_complex.obj
│ │ ├── gate_simple.mtl
│ │ ├── gate_simple.obj
│ │ ├── hangar_largeA.mtl
│ │ ├── hangar_largeA.obj
│ │ ├── hangar_largeB.mtl
│ │ ├── hangar_largeB.obj
│ │ ├── hangar_roundA.mtl
│ │ ├── hangar_roundA.obj
│ │ ├── hangar_roundB.mtl
│ │ ├── hangar_roundB.obj
│ │ ├── hangar_roundGlass.mtl
│ │ ├── hangar_roundGlass.obj
│ │ ├── hangar_smallA.mtl
│ │ ├── hangar_smallA.obj
│ │ ├── hangar_smallB.mtl
│ │ ├── hangar_smallB.obj
│ │ ├── machine_barrel.mtl
│ │ ├── machine_barrel.obj
│ │ ├── machine_barrelLarge.mtl
│ │ ├── machine_barrelLarge.obj
│ │ ├── machine_generator.mtl
│ │ ├── machine_generator.obj
│ │ ├── machine_generatorLarge.mtl
│ │ ├── machine_generatorLarge.obj
│ │ ├── machine_wireless.mtl
│ │ ├── machine_wireless.obj
│ │ ├── machine_wirelessCable.mtl
│ │ ├── machine_wirelessCable.obj
│ │ ├── meteor.mtl
│ │ ├── meteor.obj
│ │ ├── meteor_detailed.mtl
│ │ ├── meteor_detailed.obj
│ │ ├── meteor_half.mtl
│ │ ├── meteor_half.obj
│ │ ├── monorail_trackCornerLarge.mtl
│ │ ├── monorail_trackCornerLarge.obj
│ │ ├── monorail_trackCornerSmall.mtl
│ │ ├── monorail_trackCornerSmall.obj
│ │ ├── monorail_trackSlope.mtl
│ │ ├── monorail_trackSlope.obj
│ │ ├── monorail_trackStraight.mtl
│ │ ├── monorail_trackStraight.obj
│ │ ├── monorail_trackSupport.mtl
│ │ ├── monorail_trackSupport.obj
│ │ ├── monorail_trackSupportCorner.mtl
│ │ ├── monorail_trackSupportCorner.obj
│ │ ├── monorail_trainBox.mtl
│ │ ├── monorail_trainBox.obj
│ │ ├── monorail_trainCargo.mtl
│ │ ├── monorail_trainCargo.obj
│ │ ├── monorail_trainEnd.mtl
│ │ ├── monorail_trainEnd.obj
│ │ ├── monorail_trainFlat.mtl
│ │ ├── monorail_trainFlat.obj
│ │ ├── monorail_trainFront.mtl
│ │ ├── monorail_trainFront.obj
│ │ ├── monorail_trainPassenger.mtl
│ │ ├── monorail_trainPassenger.obj
│ │ ├── pipe_corner.mtl
│ │ ├── pipe_corner.obj
│ │ ├── pipe_cornerDiagonal.mtl
│ │ ├── pipe_cornerDiagonal.obj
│ │ ├── pipe_cornerRound.mtl
│ │ ├── pipe_cornerRound.obj
│ │ ├── pipe_cornerRoundLarge.mtl
│ │ ├── pipe_cornerRoundLarge.obj
│ │ ├── pipe_cross.mtl
│ │ ├── pipe_cross.obj
│ │ ├── pipe_end.mtl
│ │ ├── pipe_end.obj
│ │ ├── pipe_entrance.mtl
│ │ ├── pipe_entrance.obj
│ │ ├── pipe_open.mtl
│ │ ├── pipe_open.obj
│ │ ├── pipe_rampLarge.mtl
│ │ ├── pipe_rampLarge.obj
│ │ ├── pipe_rampSmall.mtl
│ │ ├── pipe_rampSmall.obj
│ │ ├── pipe_ring.mtl
│ │ ├── pipe_ring.obj
│ │ ├── pipe_ringHigh.mtl
│ │ ├── pipe_ringHigh.obj
│ │ ├── pipe_ringHighEnd.mtl
│ │ ├── pipe_ringHighEnd.obj
│ │ ├── pipe_ringSupport.mtl
│ │ ├── pipe_ringSupport.obj
│ │ ├── pipe_split.mtl
│ │ ├── pipe_split.obj
│ │ ├── pipe_straight.mtl
│ │ ├── pipe_straight.obj
│ │ ├── pipe_supportHigh.mtl
│ │ ├── pipe_supportHigh.obj
│ │ ├── pipe_supportLow.mtl
│ │ ├── pipe_supportLow.obj
│ │ ├── platform_center.mtl
│ │ ├── platform_center.obj
│ │ ├── platform_corner.mtl
│ │ ├── platform_corner.obj
│ │ ├── platform_cornerOpen.mtl
│ │ ├── platform_cornerOpen.obj
│ │ ├── platform_cornerRound.mtl
│ │ ├── platform_cornerRound.obj
│ │ ├── platform_end.mtl
│ │ ├── platform_end.obj
│ │ ├── platform_high.mtl
│ │ ├── platform_high.obj
│ │ ├── platform_large.mtl
│ │ ├── platform_large.obj
│ │ ├── platform_long.mtl
│ │ ├── platform_long.obj
│ │ ├── platform_low.mtl
│ │ ├── platform_low.obj
│ │ ├── platform_side.mtl
│ │ ├── platform_side.obj
│ │ ├── platform_small.mtl
│ │ ├── platform_small.obj
│ │ ├── platform_smallDiagonal.mtl
│ │ ├── platform_smallDiagonal.obj
│ │ ├── platform_straight.mtl
│ │ ├── platform_straight.obj
│ │ ├── rail.mtl
│ │ ├── rail.obj
│ │ ├── rail_corner.mtl
│ │ ├── rail_corner.obj
│ │ ├── rail_end.mtl
│ │ ├── rail_end.obj
│ │ ├── rail_middle.mtl
│ │ ├── rail_middle.obj
│ │ ├── rock.mtl
│ │ ├── rock.obj
│ │ ├── rock_crystals.mtl
│ │ ├── rock_crystals.obj
│ │ ├── rock_crystalsLargeA.mtl
│ │ ├── rock_crystalsLargeA.obj
│ │ ├── rock_crystalsLargeB.mtl
│ │ ├── rock_crystalsLargeB.obj
│ │ ├── rock_largeA.mtl
│ │ ├── rock_largeA.obj
│ │ ├── rock_largeB.mtl
│ │ ├── rock_largeB.obj
│ │ ├── rocket_baseA.mtl
│ │ ├── rocket_baseA.obj
│ │ ├── rocket_baseB.mtl
│ │ ├── rocket_baseB.obj
│ │ ├── rocket_finsA.mtl
│ │ ├── rocket_finsA.obj
│ │ ├── rocket_finsB.mtl
│ │ ├── rocket_finsB.obj
│ │ ├── rocket_fuelA.mtl
│ │ ├── rocket_fuelA.obj
│ │ ├── rocket_fuelB.mtl
│ │ ├── rocket_fuelB.obj
│ │ ├── rocket_sidesA.mtl
│ │ ├── rocket_sidesA.obj
│ │ ├── rocket_sidesB.mtl
│ │ ├── rocket_sidesB.obj
│ │ ├── rocket_topA.mtl
│ │ ├── rocket_topA.obj
│ │ ├── rocket_topB.mtl
│ │ ├── rocket_topB.obj
│ │ ├── rocks_smallA.mtl
│ │ ├── rocks_smallA.obj
│ │ ├── rocks_smallB.mtl
│ │ ├── rocks_smallB.obj
│ │ ├── rover.mtl
│ │ ├── rover.obj
│ │ ├── satelliteDish.mtl
│ │ ├── satelliteDish.obj
│ │ ├── satelliteDish_detailed.mtl
│ │ ├── satelliteDish_detailed.obj
│ │ ├── satelliteDish_large.mtl
│ │ ├── satelliteDish_large.obj
│ │ ├── stairs.mtl
│ │ ├── stairs.obj
│ │ ├── stairs_corner.mtl
│ │ ├── stairs_corner.obj
│ │ ├── stairs_short.mtl
│ │ ├── stairs_short.obj
│ │ ├── structure.mtl
│ │ ├── structure.obj
│ │ ├── structure_closed.mtl
│ │ ├── structure_closed.obj
│ │ ├── structure_detailed.mtl
│ │ ├── structure_detailed.obj
│ │ ├── structure_diagonal.mtl
│ │ ├── structure_diagonal.obj
│ │ ├── supports_high.mtl
│ │ ├── supports_high.obj
│ │ ├── supports_low.mtl
│ │ ├── supports_low.obj
│ │ ├── terrain.mtl
│ │ ├── terrain.obj
│ │ ├── terrain_ramp.mtl
│ │ ├── terrain_ramp.obj
│ │ ├── terrain_rampLarge.mtl
│ │ ├── terrain_rampLarge.obj
│ │ ├── terrain_rampLarge_detailed.mtl
│ │ ├── terrain_rampLarge_detailed.obj
│ │ ├── terrain_roadCorner.mtl
│ │ ├── terrain_roadCorner.obj
│ │ ├── terrain_roadCross.mtl
│ │ ├── terrain_roadCross.obj
│ │ ├── terrain_roadEnd.mtl
│ │ ├── terrain_roadEnd.obj
│ │ ├── terrain_roadSplit.mtl
│ │ ├── terrain_roadSplit.obj
│ │ ├── terrain_roadStraight.mtl
│ │ ├── terrain_roadStraight.obj
│ │ ├── terrain_side.mtl
│ │ ├── terrain_side.obj
│ │ ├── terrain_sideCliff.mtl
│ │ ├── terrain_sideCliff.obj
│ │ ├── terrain_sideCorner.mtl
│ │ ├── terrain_sideCorner.obj
│ │ ├── terrain_sideCornerInner.mtl
│ │ ├── terrain_sideCornerInner.obj
│ │ ├── terrain_sideEnd.mtl
│ │ ├── terrain_sideEnd.obj
│ │ ├── turret_double.mtl
│ │ ├── turret_double.obj
│ │ ├── turret_single.mtl
│ │ ├── turret_single.obj
│ │ ├── weapon_gun.mtl
│ │ ├── weapon_gun.obj
│ │ ├── weapon_rifle.mtl
│ │ └── weapon_rifle.obj
├── shader
│ ├── road.frag.glsl
│ ├── road.vert.glsl
│ ├── terrain.frag.glsl
│ ├── terrain.vert.glsl
│ ├── terrain_heightmap.frag.glsl
│ └── terrain_heightmap.vert.glsl
└── terrain
│ └── alien_planet
│ ├── alien_planet_terrain.mtl
│ └── alien_planet_terrain.obj
└── src
├── Component
├── GameCameraComponent.php
├── HealthComponent.php
├── HeightmapComponent.php
├── LevelSceneryComponent.php
└── ProgressComponent.php
├── Debug
└── DebugTextOverlay.php
├── Game.php
├── Pass
├── GBufferPass.php
├── GameFrameData.php
└── TerrainPass.php
├── Renderer
├── RoadRenderer.php
└── TerrainRenderer.php
├── Scene
├── BaseScene.php
├── LevelData.php
├── LevelEditorScene.php
├── LevelLoader.php
├── LevelLoaderOptions.php
├── LevelPlayScene.php
└── LevelScene.php
├── SignalHandler
└── WindowActionsHandler.php
└── System
├── BarBillboardSystem.php
├── CameraSystem.php
└── HeightmapSystem.php
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.obj filter=lfs diff=lfs merge=lfs -text
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /vendor/
2 | /var/
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | # PHP Tower Defense
8 |
9 | A simple 3D tower defense game written in PHP, using [PHP-GLFW](http://github.com/mario-deluna/php-glfw) and the [VISU](https://github.com/phpgl/visu) framework.
10 |
11 | ## Features
12 |
13 | * Rendering Graph'ish pipeline
14 | * Deferred rendering
15 | * Translation animation system
16 | * SSAO pass
17 | * Shader managment with includes
18 | * Simple terrain renderer with heightmap recorder
19 | * Debug texts overlay
20 | * Billboard progress bars
21 | * Level serialization
22 | * LowPoly Model loading & rendering
23 | * RTS / Citybuilder like camera system
24 | * Keyboard and Mouse input event system
25 | * Entity component system
26 | * Entity Picker
27 | * Ray intersection testing
28 | * GizMo
29 | * Varios 3D debugging shaped and lines
30 | * alot more stuff.
31 |
32 | ## Screenshots & Gifs
33 |
34 |
35 | Basic level editor:
36 |
37 | 
38 |
39 | Model drag n drop
40 |
41 | 
42 |
43 | Simple rendering profiler:
44 |
45 |
46 |
47 | Some scene
48 |
49 | 
50 |
51 | Deferred rendering
52 |
53 |
54 |
55 |  |
56 |  |
57 |
58 |
59 |  |
60 |  |
61 |
62 |
63 |  |
64 |
65 |
66 |
67 |
68 | Billboards
69 |
70 | 
71 |
72 |
73 |
74 | Pocedural Roads.. (far from done..)
75 |
76 | 
77 |
78 |
79 |
80 |
--------------------------------------------------------------------------------
/app.ctn:
--------------------------------------------------------------------------------
1 | /**
2 | * This is the applications main container file. Or in other words,
3 | * the place where you want to specify your parameters and services.
4 | *
5 | * By default all container files located in the /app directory are added
6 | * to the current namespace so you can import them using the `import app/myfile`
7 | */
8 |
9 | /**
10 | * Configuration
11 | * defaults, parameters, settings and co
12 | */
13 | import app/config
14 |
15 | /**
16 | * Core services like game loop, window etc.
17 | */
18 | import app/core
19 |
20 | /**
21 | * Input / action & control mapping
22 | */
23 | import app/input
24 |
25 | /**
26 | * Signal handlers
27 | */
28 | import app/signals
--------------------------------------------------------------------------------
/app/config.ctn:
--------------------------------------------------------------------------------
1 | /**
2 | * Game basics
3 | */
4 | :game.name: 'PHP Tower Defense'
5 | :game.version: 'v0.1'
6 |
7 | :game.author: 'Mario Döring (mario-deluna)'
8 |
9 | // defaults
10 | :window.default_widht: 1280
11 | :window.default_height: 720
--------------------------------------------------------------------------------
/app/core.ctn:
--------------------------------------------------------------------------------
1 | /**
2 | * Window
3 | */
4 | @window.main.hints: VISU\OS\WindowHints
5 | @window.main: VISU\OS\Window(
6 | :game.name,
7 | :window.default_widht,
8 | :window.default_height,
9 | @window.main.hints
10 | )
11 |
12 | /**
13 | * VISU GL State
14 | */
15 | @GL: VISU\Graphics\GLState
16 |
17 | /**
18 | * Main Game & Loop
19 | */
20 | // the main game
21 | @game: TowerDefense\Game(@container)
22 |
23 | // the game loop
24 | // we are tick the game 60 times a second
25 | @game_loop.main: VISU\Runtime\GameLoop(@game, 60)
26 |
27 | /**
28 | * Shader storage
29 | */
30 | @shaders: VISU\Graphics\ShaderCollection(@GL, :visu.path.resources.shader)
31 | - enableVISUIncludes()
32 | - addVISUShaders()
33 | - scanShaderDirectory(:visu.path.resources.shader)
34 |
35 |
36 | /**
37 | * Model collection and loading
38 | */
39 | @models: VISU\System\VISULowPoly\LPModelCollection
40 | @models.loader: VISU\System\VISULowPoly\LPObjLoader(@GL)
41 |
42 | /**
43 | * Profiler
44 | */
45 | @profiler: VISU\Instrument\CompatProfiler
--------------------------------------------------------------------------------
/app/input.ctn:
--------------------------------------------------------------------------------
1 | /**
2 | * Base input handler
3 | */
4 | @input: VISU\OS\Input(@window.main, @visu.dispatcher)
5 |
6 | /**
7 | * Input context mapper
8 | */
9 | @input.context: VISU\OS\InputContextMap(@visu.dispatcher)
10 | - register('main_menu', @input.actions.main_menu)
11 | - register('level_editor', @input.actions.level_editor)
12 | - register('level_editor.selected', @input.actions.level_editor.selected)
13 | - switchTo('main_menu')
14 |
15 | /**
16 | * Actions maps (aka key bindings)
17 | */
18 |
19 | /**
20 | * Main menu actions
21 | */
22 | @input.actions.main_menu: VISU\OS\InputActionMap()
23 | - importArrayMap({
24 | menu_up: '@Key::UP',
25 | menu_down: '@Key::DOWN',
26 | menu_left: '@Key::LEFT',
27 | menu_right: '@Key::RIGHT',
28 | menu_select: '@Key::ENTER',
29 | menu_back: '@Key::BACKSPACE',
30 | })
31 |
32 | /**
33 | * Camera controls
34 | */
35 | :input.action.map.game_camera: {
36 | camera_move_forward: '@Key::W',
37 | camera_move_backward: '@Key::S',
38 | camera_move_left: '@Key::A',
39 | camera_move_right: '@Key::D',
40 | camera_zoom_in: '@Key::E',
41 | camera_zoom_out: '@Key::Q',
42 | }
43 |
44 | /**
45 | * Level Editor
46 | */
47 | @input.actions.level_editor: VISU\OS\InputActionMap()
48 | - importArrayMap(:input.action.map.game_camera)
49 | - importArrayMap({
50 | create_object: '@Key::C',
51 | rebuild_heightmap: '@Key::M',
52 | toggle_snapping: '@Key::B',
53 | })
54 |
55 | @input.actions.level_editor.selected: VISU\OS\InputActionMap()
56 | - importArrayMap(:input.action.map.game_camera)
57 | - importArrayMap({
58 | place: '#click',
59 | place_height: '@Key::F'
60 | rotate_left: '@Key::COMMA',
61 | rotate_right: '@Key::PERIOD',
62 | scale_up: '@Key::K',
63 | scale_down: '@Key::L',
64 | fine_change: '@Key::LEFT_SHIFT',
65 | delete: '@Key::BACKSPACE',
66 | copy: '@Key::C',
67 | rebuild_heightmap: '@Key::M',
68 | toggle_snapping: '@Key::B',
69 | })
--------------------------------------------------------------------------------
/app/signals.ctn:
--------------------------------------------------------------------------------
1 | /**
2 | * Window action handler
3 | */
4 | @signal.handler.window_actions: TowerDefense\SignalHandler\WindowActionsHandler
5 | = on: 'input.key', call: 'handleWindowKey'
--------------------------------------------------------------------------------
/bin/jit-play:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | php -dopcache.enable_cli=1 -dopcache.jit_buffer_size=100M ./bin/play
--------------------------------------------------------------------------------
/bin/play:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env php
2 | get('game');
28 | $game->start();
29 |
30 | // clean up glfw
31 | glfwTerminate();
--------------------------------------------------------------------------------
/bin/visu:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env php
2 | get('visu.command.cli_loader')->pass($argv);
--------------------------------------------------------------------------------
/bootstrap.php:
--------------------------------------------------------------------------------
1 | =7.4"
25 | },
26 | "require-dev": {
27 | "composer/composer": "^2.3",
28 | "phpstan/phpstan": "^1.5",
29 | "phpunit/phpunit": "^9.0",
30 | "vimeo/psalm": "5.x-dev"
31 | },
32 | "type": "library",
33 | "autoload": {
34 | "psr-4": {
35 | "ClanCats\\Container\\": "src/"
36 | }
37 | },
38 | "notification-url": "https://packagist.org/downloads/",
39 | "license": [
40 | "MIT"
41 | ],
42 | "description": "ClanCats IoC Container.",
43 | "support": {
44 | "issues": "https://github.com/ClanCats/Container/issues",
45 | "source": "https://github.com/ClanCats/Container/tree/v1.3.2"
46 | },
47 | "time": "2022-10-16T20:25:38+00:00"
48 | },
49 | {
50 | "name": "league/climate",
51 | "version": "3.8.2",
52 | "source": {
53 | "type": "git",
54 | "url": "https://github.com/thephpleague/climate.git",
55 | "reference": "a785a3ac8f584eed4abd45e4e16fe64c46659a28"
56 | },
57 | "dist": {
58 | "type": "zip",
59 | "url": "https://api.github.com/repos/thephpleague/climate/zipball/a785a3ac8f584eed4abd45e4e16fe64c46659a28",
60 | "reference": "a785a3ac8f584eed4abd45e4e16fe64c46659a28",
61 | "shasum": ""
62 | },
63 | "require": {
64 | "php": "^7.3 || ^8.0",
65 | "psr/log": "^1.0 || ^2.0 || ^3.0",
66 | "seld/cli-prompt": "^1.0"
67 | },
68 | "require-dev": {
69 | "mikey179/vfsstream": "^1.6.10",
70 | "mockery/mockery": "^1.4.2",
71 | "phpunit/phpunit": "^9.5.10"
72 | },
73 | "suggest": {
74 | "ext-mbstring": "If ext-mbstring is not available you MUST install symfony/polyfill-mbstring"
75 | },
76 | "type": "library",
77 | "autoload": {
78 | "psr-4": {
79 | "League\\CLImate\\": "src/"
80 | }
81 | },
82 | "notification-url": "https://packagist.org/downloads/",
83 | "license": [
84 | "MIT"
85 | ],
86 | "authors": [
87 | {
88 | "name": "Joe Tannenbaum",
89 | "email": "hey@joe.codes",
90 | "homepage": "http://joe.codes/",
91 | "role": "Developer"
92 | },
93 | {
94 | "name": "Craig Duncan",
95 | "email": "git@duncanc.co.uk",
96 | "homepage": "https://github.com/duncan3dc",
97 | "role": "Developer"
98 | }
99 | ],
100 | "description": "PHP's best friend for the terminal. CLImate allows you to easily output colored text, special formats, and more.",
101 | "keywords": [
102 | "cli",
103 | "colors",
104 | "command",
105 | "php",
106 | "terminal"
107 | ],
108 | "support": {
109 | "issues": "https://github.com/thephpleague/climate/issues",
110 | "source": "https://github.com/thephpleague/climate/tree/3.8.2"
111 | },
112 | "time": "2022-06-18T14:42:08+00:00"
113 | },
114 | {
115 | "name": "phpgl/ide-stubs",
116 | "version": "dev-main",
117 | "source": {
118 | "type": "git",
119 | "url": "https://github.com/phpgl/ide-stubs.git",
120 | "reference": "8c989cdf53d8e9d6c908971c71ae2b31fab26044"
121 | },
122 | "dist": {
123 | "type": "zip",
124 | "url": "https://api.github.com/repos/phpgl/ide-stubs/zipball/8c989cdf53d8e9d6c908971c71ae2b31fab26044",
125 | "reference": "8c989cdf53d8e9d6c908971c71ae2b31fab26044",
126 | "shasum": ""
127 | },
128 | "require": {
129 | "php": ">=8.0"
130 | },
131 | "default-branch": true,
132 | "type": "library",
133 | "notification-url": "https://packagist.org/downloads/",
134 | "license": [
135 | "MIT",
136 | "Apache-2.0"
137 | ],
138 | "authors": [
139 | {
140 | "name": "Mario Döring",
141 | "homepage": "https://github.com/mario-deluna"
142 | },
143 | {
144 | "name": "Contributors",
145 | "homepage": "https://github.com/phpgl/ide-stubs/graphs/contributors"
146 | }
147 | ],
148 | "description": "IDE Stubs for PHP-GLFW / OpenGL. (PHPStorm, VSCode, etc.)",
149 | "homepage": "https://phpgl.net",
150 | "keywords": [
151 | "3d",
152 | "Rendering",
153 | "autocomplete",
154 | "glfw",
155 | "opengl",
156 | "php-glfw",
157 | "phpstorm"
158 | ],
159 | "support": {
160 | "issues": "https://github.com/phpgl/ide-stubs/issues",
161 | "source": "https://github.com/phpgl/ide-stubs/tree/main"
162 | },
163 | "time": "2023-01-25T22:23:54+00:00"
164 | },
165 | {
166 | "name": "phpgl/visu",
167 | "version": "dev-master",
168 | "dist": {
169 | "type": "path",
170 | "url": "../visu",
171 | "reference": "a62fa523d16f32d2a086f79bd2bb3c1d309ce99f"
172 | },
173 | "require": {
174 | "clancats/container": "^1.3",
175 | "league/climate": "^3.8",
176 | "php": ">=8.1"
177 | },
178 | "require-dev": {
179 | "phpbench/phpbench": "^1.2",
180 | "phpgl/ide-stubs": "dev-main",
181 | "phpstan/phpstan": "^1.8",
182 | "phpunit/phpunit": "^9.5"
183 | },
184 | "type": "library",
185 | "extra": {
186 | "container": {
187 | "@main": "visu.ctn"
188 | }
189 | },
190 | "autoload": {
191 | "psr-4": {
192 | "VISU\\": "src/"
193 | }
194 | },
195 | "autoload-dev": {
196 | "psr-4": {
197 | "VISU\\Tests\\": "tests/"
198 | }
199 | },
200 | "scripts": {
201 | "post-autoload-dump": [
202 | "ClanCats\\Container\\ComposerContainerFileLoader::generateMap"
203 | ]
204 | },
205 | "license": [
206 | "MIT"
207 | ],
208 | "description": "A Modern OpenGL Framework for PHP, ex php-game-framework.",
209 | "transport-options": {
210 | "relative": true
211 | }
212 | },
213 | {
214 | "name": "psr/log",
215 | "version": "3.0.0",
216 | "source": {
217 | "type": "git",
218 | "url": "https://github.com/php-fig/log.git",
219 | "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
220 | },
221 | "dist": {
222 | "type": "zip",
223 | "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
224 | "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
225 | "shasum": ""
226 | },
227 | "require": {
228 | "php": ">=8.0.0"
229 | },
230 | "type": "library",
231 | "extra": {
232 | "branch-alias": {
233 | "dev-master": "3.x-dev"
234 | }
235 | },
236 | "autoload": {
237 | "psr-4": {
238 | "Psr\\Log\\": "src"
239 | }
240 | },
241 | "notification-url": "https://packagist.org/downloads/",
242 | "license": [
243 | "MIT"
244 | ],
245 | "authors": [
246 | {
247 | "name": "PHP-FIG",
248 | "homepage": "https://www.php-fig.org/"
249 | }
250 | ],
251 | "description": "Common interface for logging libraries",
252 | "homepage": "https://github.com/php-fig/log",
253 | "keywords": [
254 | "log",
255 | "psr",
256 | "psr-3"
257 | ],
258 | "support": {
259 | "source": "https://github.com/php-fig/log/tree/3.0.0"
260 | },
261 | "time": "2021-07-14T16:46:02+00:00"
262 | },
263 | {
264 | "name": "seld/cli-prompt",
265 | "version": "1.0.4",
266 | "source": {
267 | "type": "git",
268 | "url": "https://github.com/Seldaek/cli-prompt.git",
269 | "reference": "b8dfcf02094b8c03b40322c229493bb2884423c5"
270 | },
271 | "dist": {
272 | "type": "zip",
273 | "url": "https://api.github.com/repos/Seldaek/cli-prompt/zipball/b8dfcf02094b8c03b40322c229493bb2884423c5",
274 | "reference": "b8dfcf02094b8c03b40322c229493bb2884423c5",
275 | "shasum": ""
276 | },
277 | "require": {
278 | "php": ">=5.3"
279 | },
280 | "require-dev": {
281 | "phpstan/phpstan": "^0.12.63"
282 | },
283 | "type": "library",
284 | "extra": {
285 | "branch-alias": {
286 | "dev-master": "1.x-dev"
287 | }
288 | },
289 | "autoload": {
290 | "psr-4": {
291 | "Seld\\CliPrompt\\": "src/"
292 | }
293 | },
294 | "notification-url": "https://packagist.org/downloads/",
295 | "license": [
296 | "MIT"
297 | ],
298 | "authors": [
299 | {
300 | "name": "Jordi Boggiano",
301 | "email": "j.boggiano@seld.be"
302 | }
303 | ],
304 | "description": "Allows you to prompt for user input on the command line, and optionally hide the characters they type",
305 | "keywords": [
306 | "cli",
307 | "console",
308 | "hidden",
309 | "input",
310 | "prompt"
311 | ],
312 | "support": {
313 | "issues": "https://github.com/Seldaek/cli-prompt/issues",
314 | "source": "https://github.com/Seldaek/cli-prompt/tree/1.0.4"
315 | },
316 | "time": "2020-12-15T21:32:01+00:00"
317 | }
318 | ],
319 | "packages-dev": [],
320 | "aliases": [],
321 | "minimum-stability": "stable",
322 | "stability-flags": {
323 | "phpgl/ide-stubs": 20,
324 | "phpgl/visu": 20
325 | },
326 | "prefer-stable": false,
327 | "prefer-lowest": false,
328 | "platform": [],
329 | "platform-dev": [],
330 | "plugin-api-version": "2.2.0"
331 | }
332 |
--------------------------------------------------------------------------------
/resources/levels/test.lvl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phpgl/php-towerdefense/2571841a23b585f7d4908ec22a13e3e9b5695526/resources/levels/test.lvl
--------------------------------------------------------------------------------
/resources/models/road/basic.mtl:
--------------------------------------------------------------------------------
1 | # Blender 3.4.1 MTL File: 'None'
2 | # www.blender.org
3 |
4 | newmtl Material.001
5 | Ns 250.000000
6 | Ka 1.000000 1.000000 1.000000
7 | Kd 0.800000 0.800000 0.800000
8 | Ks 0.500000 0.500000 0.500000
9 | Ke 0.000000 0.000000 0.000000
10 | Ni 1.450000
11 | d 1.000000
12 | illum 2
13 |
--------------------------------------------------------------------------------
/resources/models/road/basic.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:a9b7cf097b9bd84778e85159e069504abcaa25d93ef253e1a2dc000a6ce37afb
3 | size 31089
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/License.txt:
--------------------------------------------------------------------------------
1 |
2 |
3 | Space Kit (2.0)
4 |
5 | Created/distributed by Kenney (www.kenney.nl)
6 | Creation date: 27-08-2020 14:20
7 |
8 | ------------------------------
9 |
10 | License: (Creative Commons Zero, CC0)
11 | http://creativecommons.org/publicdomain/zero/1.0/
12 |
13 | This content is free to use in personal, educational and commercial projects.
14 | Support us by crediting Kenney or www.kenney.nl (this is not mandatory)
15 |
16 | ------------------------------
17 |
18 | Donate: http://support.kenney.nl
19 | Request: http://request.kenney.nl
20 | Patreon: http://patreon.com/kenney/
21 |
22 | Follow on Twitter for updates:
23 | http://twitter.com/KenneyNL
--------------------------------------------------------------------------------
/resources/models/spacekit/alien.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl crystal
4 | Kd 0.1862318 0.8773585 0.5934362
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalRed
10 | Kd 1 0.6285242 0.2028302
11 |
12 | newmtl metalDark
13 | Kd 0.6750623 0.7100219 0.7735849
14 |
15 | newmtl dark
16 | Kd 0.2745098 0.2980392 0.3411765
17 |
18 |
--------------------------------------------------------------------------------
/resources/models/spacekit/alien.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:ccdbb987926231ea2a3631cc5b552b34cb1ea875cd7395cb6e643f7cec0ee09d
3 | size 23176
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/astronautA.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl dark
4 | Kd 0.2745098 0.2980392 0.3411765
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalRed
10 | Kd 1 0.6285242 0.2028302
11 |
12 | newmtl metalDark
13 | Kd 0.6750623 0.7100219 0.7735849
14 |
15 | newmtl skin
16 | Kd 1 0.7647059 0.6117647
17 |
18 | newmtl rock
19 | Kd 0.9098039 0.5176471 0.3882353
20 |
21 | newmtl rockDark
22 | Kd 0.6980392 0.372549 0.2627451
23 |
24 |
--------------------------------------------------------------------------------
/resources/models/spacekit/astronautA.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:6c462609a8ee02e42713e4d21900dbb65fb7383d91205641070f4f7ebd069a1a
3 | size 23867
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/astronautB.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl dark
4 | Kd 0.2745098 0.2980392 0.3411765
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalRed
10 | Kd 1 0.6285242 0.2028302
11 |
12 | newmtl metalDark
13 | Kd 0.6750623 0.7100219 0.7735849
14 |
15 | newmtl rockTrack
16 | Kd 0.9811321 0.5809683 0.4489142
17 |
18 |
--------------------------------------------------------------------------------
/resources/models/spacekit/astronautB.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:875d4ccd0f2255e7b0b1b6f9b8d30e3e734de9837bf8cc3ab89e763a8ad3ee20
3 | size 24945
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/barrel.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/barrel.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:b973227160fbad3d4e31bb573bf5d5dc1369df83bc241a0ea9a143df3fa4b595
3 | size 2945
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/barrels.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 | newmtl metalRed
10 | Kd 1 0.6285242 0.2028302
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/barrels.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:e7fea2599c5dacbdbcc3dd7a7ad4605dabc63943b9a1a6d9b39e8e269b8c5e98
3 | size 13218
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/barrels_rail.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalRed
10 | Kd 1 0.6285242 0.2028302
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/barrels_rail.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:51f6f46f6878242f0e5a11d0295a006099ebbec43777ef7def4efddd1f490181
3 | size 24260
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/bones.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl bone
4 | Kd 1 0.8470588 0.7686275
5 |
6 |
--------------------------------------------------------------------------------
/resources/models/spacekit/bones.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:bff31f9d9ca1988b52d3e1363c3aced12b5ce4178d638a5e9c5c589879fc4fd6
3 | size 12515
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/chimney.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl dark
7 | Kd 0.2745098 0.2980392 0.3411765
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/chimney.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:9d9f7a41c7ce167d0536598445b4d8daac9a29a3f41f5db62a5bc528fd3411cb
3 | size 8333
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/chimney_detailed.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 | newmtl dark
10 | Kd 0.2745098 0.2980392 0.3411765
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/chimney_detailed.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:7b1a7ce048e55f031fbc3f63700fed5f2e14b507818e9801d081c18158206aa7
3 | size 17341
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalRed
10 | Kd 1 0.6285242 0.2028302
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:8466806b9697d9d5f82b30a7063e790a2e4d52a40a1347259635a6cfaf056326
3 | size 4969
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor_corner.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metalRed
7 | Kd 1 0.6285242 0.2028302
8 |
9 | newmtl metal
10 | Kd 0.8431373 0.8705882 0.9098039
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor_corner.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:9a0414de96fc4606995b7d20008d2cfda59b59a9b3fe1e696e4774cde1d94c80
3 | size 6896
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor_cornerRound.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalRed
10 | Kd 1 0.6285242 0.2028302
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor_cornerRound.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:524a415dc858e25e0d86639251f4e51218a4b098abf133f04b52568b8224d7db
3 | size 35411
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor_cornerRoundWindow.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalRed
7 | Kd 1 0.6285242 0.2028302
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 | newmtl dark
13 | Kd 0.2745098 0.2980392 0.3411765
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor_cornerRoundWindow.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:f41fdf556500cba5ec34054a5b435ded6ecd1105437fb444b5bf584d39467202
3 | size 41059
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor_cross.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl _defaultMat
10 | Kd 1 1 1
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor_cross.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:460242fd9a05d2de9e76c66415d4317de3a8aadeb2bc4a069ce6e2ae0b91a55d
3 | size 11777
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor_detailed.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalRed
10 | Kd 1 0.6285242 0.2028302
11 |
12 | newmtl dark
13 | Kd 0.2745098 0.2980392 0.3411765
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor_detailed.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:c2c0fad85753da19a145cb8cfbdfbf12cace73bf48051a9231e4776b30dfb149
3 | size 9021
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor_end.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalRed
10 | Kd 1 0.6285242 0.2028302
11 |
12 | newmtl dark
13 | Kd 0.2745098 0.2980392 0.3411765
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor_end.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:f07465b1f4f161064aaa985b6333c8a7e79e7914c0dfcd856baa0a46de6f6f2c
3 | size 7528
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor_open.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor_open.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:a93a04e657fd1119c77663bcd25cdadf36bd5a16b339907efcbc109378d5bec8
3 | size 8700
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor_roof.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor_roof.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:0c2bb631d405e2b855bd23f1432cac830d7c7359c39e948c115bdf2a4a3bfe20
3 | size 3466
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor_split.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalRed
10 | Kd 1 0.6285242 0.2028302
11 |
12 | newmtl _defaultMat
13 | Kd 1 1 1
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor_split.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:b25fb3298df730095022d99cde9a1b62945edfdcc8eb7a405c2574032be05921
3 | size 8364
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor_wall.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalRed
10 | Kd 1 0.6285242 0.2028302
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor_wall.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:5e37a21ecb5b464c93e8018c4de6fcf28eb684ea3d19158b23cfd36c1b4cc251
3 | size 2225
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor_wallCorner.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metalRed
7 | Kd 1 0.6285242 0.2028302
8 |
9 | newmtl _defaultMat
10 | Kd 1 1 1
11 |
12 | newmtl metal
13 | Kd 0.8431373 0.8705882 0.9098039
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor_wallCorner.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:881be4b48b452ccb6d8026c3a0a67dab26b5c6a9cb80d4c1f910240729eee2d0
3 | size 18432
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor_window.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metalRed
7 | Kd 1 0.6285242 0.2028302
8 |
9 | newmtl metal
10 | Kd 0.8431373 0.8705882 0.9098039
11 |
12 | newmtl dark
13 | Kd 0.2745098 0.2980392 0.3411765
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor_window.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:91bc77ac67d3fe6b6cd1ee38df73e0a08baf597deb5427088ff85450ef27f42f
3 | size 9043
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor_windowClosed.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metalRed
7 | Kd 1 0.6285242 0.2028302
8 |
9 | newmtl metal
10 | Kd 0.8431373 0.8705882 0.9098039
11 |
12 | newmtl dark
13 | Kd 0.2745098 0.2980392 0.3411765
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/corridor_windowClosed.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:fdd6bcbe87503eb33229e219730f05acc81e0387bec2c87784312f784f4f4419
3 | size 9979
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/craft_cargoA.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl dark
7 | Kd 0.2745098 0.2980392 0.3411765
8 |
9 | newmtl metalRed
10 | Kd 1 0.6285242 0.2028302
11 |
12 | newmtl metal
13 | Kd 0.8431373 0.8705882 0.9098039
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/craft_cargoA.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:2aa478d18910492bf21d10157c13c634dcbfea41d34a4b9ee50f19821ac7aa6e
3 | size 18631
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/craft_cargoB.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl dark
10 | Kd 0.2745098 0.2980392 0.3411765
11 |
12 | newmtl metalRed
13 | Kd 1 0.6285242 0.2028302
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/craft_cargoB.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:2c24d2fd7c92ccae89ba6e1dda59c2eefff3218255b94a0e890bcbae39d8d915
3 | size 23830
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/craft_miner.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl dark
4 | Kd 0.2745098 0.2980392 0.3411765
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 | newmtl metal
10 | Kd 0.8431373 0.8705882 0.9098039
11 |
12 | newmtl metalRed
13 | Kd 1 0.6285242 0.2028302
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/craft_miner.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:cd5eeef15017cfcc532756fa03cf0c8532ef778536da8541669985d5cf2ab606
3 | size 25068
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/craft_racer.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 | newmtl dark
10 | Kd 0.2745098 0.2980392 0.3411765
11 |
12 | newmtl metalRed
13 | Kd 1 0.6285242 0.2028302
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/craft_racer.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:0e4ec2c74da26a67abcad06cfbbd24b2af5bf9c5101dd2e0b05c12287fd6cfe6
3 | size 19124
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/craft_speederA.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalRed
7 | Kd 1 0.6285242 0.2028302
8 |
9 | newmtl dark
10 | Kd 0.2745098 0.2980392 0.3411765
11 |
12 | newmtl metalDark
13 | Kd 0.6750623 0.7100219 0.7735849
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/craft_speederA.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:534e1b1198be654d2925d6a785531974213ac8b43ae05c02aecfeb905c0166fc
3 | size 20891
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/craft_speederB.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalRed
7 | Kd 1 0.6285242 0.2028302
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 | newmtl dark
13 | Kd 0.2745098 0.2980392 0.3411765
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/craft_speederB.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:befa91fa49b98c55617b15f49a2674ad8425cbc25e9b454b33b072fc737d14d7
3 | size 18390
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/craft_speederC.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 | newmtl metal
10 | Kd 0.8431373 0.8705882 0.9098039
11 |
12 | newmtl dark
13 | Kd 0.2745098 0.2980392 0.3411765
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/craft_speederC.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:23fc47ab585216e38b337a2d08412e8f7d37d425a4b6aa4c86a0ad6a4b7e0b5d
3 | size 19968
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/craft_speederD.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 | newmtl dark
10 | Kd 0.2745098 0.2980392 0.3411765
11 |
12 | newmtl metalRed
13 | Kd 1 0.6285242 0.2028302
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/craft_speederD.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:090e01b12b0d1a0619929d507d8008893e0e13a69235564f677888202c8caea2
3 | size 24475
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/crater.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rockDark
4 | Kd 0.6980392 0.372549 0.2627451
5 |
6 | newmtl rock
7 | Kd 0.9098039 0.5176471 0.3882353
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/crater.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:9ca8a38929761616f07fcdeba46c837f0d29d77b11d5f5db99f65468a0744a9b
3 | size 4050
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/craterLarge.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rockDark
4 | Kd 0.6980392 0.372549 0.2627451
5 |
6 | newmtl rock
7 | Kd 0.9098039 0.5176471 0.3882353
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/craterLarge.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:1af6591f3be7df8a922f1246f32b7e44ffea41f9796072b0b68376b1423ea346
3 | size 3931
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/desk_chair.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalRed
7 | Kd 1 0.6285242 0.2028302
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/desk_chair.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:3e76b9859b7d079bc529287f6f0d9ed9ef34bd0151175483c5848cf2984b1298
3 | size 6328
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/desk_chairArms.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalRed
7 | Kd 1 0.6285242 0.2028302
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/desk_chairArms.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:7639153dbb049d7a50cac4bd1f008d0789d8901843dcf559613addc1d7d6bade
3 | size 8681
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/desk_chairStool.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalRed
7 | Kd 1 0.6285242 0.2028302
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/desk_chairStool.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:fbf74771b58977d7fd4b3c4a2064865d35aa716fbdafbb8d4417cf4d92d2e7aa
3 | size 5222
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/desk_computer.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl dark
10 | Kd 0.2745098 0.2980392 0.3411765
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/desk_computer.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:19cdb452f56250f7b92c327ade46249f2958bcb5c25826b0b9dd3b435c0bfbf7
3 | size 5688
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/desk_computerCorner.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl dark
4 | Kd 0.2745098 0.2980392 0.3411765
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 | newmtl metal
10 | Kd 0.8431373 0.8705882 0.9098039
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/desk_computerCorner.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:115c90bd42df9f6c72e9c4b6d0dd7d9d82b7cb90b151fcb4a140a09daed57f3b
3 | size 7775
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/desk_computerScreen.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl dark
7 | Kd 0.2745098 0.2980392 0.3411765
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/desk_computerScreen.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:a4c924e7bb610eede53cae1e7b58370d7f6679e15ec220cafb30ac601235f20b
3 | size 6797
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/gate_complex.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl dark
10 | Kd 0.2745098 0.2980392 0.3411765
11 |
12 | newmtl metalRed
13 | Kd 1 0.6285242 0.2028302
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/gate_complex.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:43de38c80654c858449e595d9e5b5044f27415f3acb5e96af9169e37a2bbd4d5
3 | size 27971
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/gate_simple.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl dark
4 | Kd 0.2745098 0.2980392 0.3411765
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/gate_simple.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:2a2f47a6ab272db23ed0d820fd162b5c9c4c3bf684e96cc7e845e8862824f015
3 | size 12293
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/hangar_largeA.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalRed
10 | Kd 1 0.6285242 0.2028302
11 |
12 | newmtl dark
13 | Kd 0.2745098 0.2980392 0.3411765
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/hangar_largeA.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:6c106a3b81cb2ac2c712f27cff689f407dd3d5935f1e20bd1c3cc12a448c5860
3 | size 21913
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/hangar_largeB.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 | newmtl dark
10 | Kd 0.2745098 0.2980392 0.3411765
11 |
12 | newmtl metalRed
13 | Kd 1 0.6285242 0.2028302
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/hangar_largeB.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:ac76232cff9e31a3c00257d3d387d40c14b16fadbf09ee8f831503945b6eab88
3 | size 19261
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/hangar_roundA.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 | newmtl dark
13 | Kd 0.2745098 0.2980392 0.3411765
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/hangar_roundA.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:f7114507ab334a98a7b1711b6487398af36be8f53b3be46425f6eb738c1ee838
3 | size 9007
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/hangar_roundB.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 | newmtl dark
13 | Kd 0.2745098 0.2980392 0.3411765
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/hangar_roundB.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:63e68d100c95634663f987af7777cc09ecd1afed5ef026caf2ba257022df395b
3 | size 9024
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/hangar_roundGlass.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 | newmtl _defaultMat
10 | Kd 1 1 1
11 |
12 | newmtl dark
13 | Kd 0.2745098 0.2980392 0.3411765
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/hangar_roundGlass.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:ad986c9b95011f8becbbd48dcaa979726fc1c4182e2d20c846949f325ec97d86
3 | size 6729
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/hangar_smallA.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 | newmtl metalRed
10 | Kd 1 0.6285242 0.2028302
11 |
12 | newmtl dark
13 | Kd 0.2745098 0.2980392 0.3411765
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/hangar_smallA.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:553128d70d004f418c7c69afc5166db79c7520fab543437f135d2cda25d5becb
3 | size 14285
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/hangar_smallB.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 | newmtl metalRed
10 | Kd 1 0.6285242 0.2028302
11 |
12 | newmtl dark
13 | Kd 0.2745098 0.2980392 0.3411765
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/hangar_smallB.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:0c2d5ab7bb02c07335b1c3df45faaa1daf2155fa5b6b26e9a25662d11f4038fc
3 | size 16037
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/machine_barrel.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl dark
4 | Kd 0.2745098 0.2980392 0.3411765
5 |
6 | newmtl metalRed
7 | Kd 1 0.6285242 0.2028302
8 |
9 | newmtl metal
10 | Kd 0.8431373 0.8705882 0.9098039
11 |
12 | newmtl metalDark
13 | Kd 0.6750623 0.7100219 0.7735849
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/machine_barrel.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:03f824bee5d0519cfd3877dd145c950ed0536afeb6cce1a2171d90c9175bc413
3 | size 24596
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/machine_barrelLarge.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metalRed
7 | Kd 1 0.6285242 0.2028302
8 |
9 | newmtl metal
10 | Kd 0.8431373 0.8705882 0.9098039
11 |
12 | newmtl dark
13 | Kd 0.2745098 0.2980392 0.3411765
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/machine_barrelLarge.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:00b4c5a1ad731a6a5d870d1f9540641948555eca227872662a6bd782754b1486
3 | size 11097
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/machine_generator.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metalRed
7 | Kd 1 0.6285242 0.2028302
8 |
9 | newmtl metal
10 | Kd 0.8431373 0.8705882 0.9098039
11 |
12 | newmtl _defaultMat
13 | Kd 1 1 1
14 |
15 | newmtl dark
16 | Kd 0.2745098 0.2980392 0.3411765
17 |
18 |
--------------------------------------------------------------------------------
/resources/models/spacekit/machine_generator.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:cb235a40d4cfe8fcb9471fd6fd7b993187adb8c186d49bf248600ae171700945
3 | size 30540
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/machine_generatorLarge.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl dark
7 | Kd 0.2745098 0.2980392 0.3411765
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 | newmtl metal
13 | Kd 0.8431373 0.8705882 0.9098039
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/machine_generatorLarge.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:2154947405f9c17a5b7cac10ebf5785254fccc1adcc4dbf997852a4480b765e8
3 | size 8005
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/machine_wireless.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 | newmtl metalRed
10 | Kd 1 0.6285242 0.2028302
11 |
12 | newmtl dark
13 | Kd 0.2745098 0.2980392 0.3411765
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/machine_wireless.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:3aab9663a1b8790ddc96f295d4198d662034422894978f3ec1e5c7e30ad44243
3 | size 11227
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/machine_wirelessCable.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalRed
7 | Kd 1 0.6285242 0.2028302
8 |
9 | newmtl dark
10 | Kd 0.2745098 0.2980392 0.3411765
11 |
12 | newmtl metalDark
13 | Kd 0.6750623 0.7100219 0.7735849
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/machine_wirelessCable.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:dda726dd1db1e41e9e2014fc0f0dbff7578e6eae44f471bc2f2f8f3ca7a6ebb1
3 | size 18759
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/meteor.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rockTrack
4 | Kd 0.9811321 0.5809683 0.4489142
5 |
6 |
--------------------------------------------------------------------------------
/resources/models/spacekit/meteor.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:0c0d99df405d0b1c583e395f2bbeb3b610707f175c6fa01e3adefd54a2fd7fd7
3 | size 4378
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/meteor_detailed.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rockTrack
4 | Kd 0.9811321 0.5809683 0.4489142
5 |
6 |
--------------------------------------------------------------------------------
/resources/models/spacekit/meteor_detailed.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:bd934e6f7d483d6e60e580d04a0c66a2c590e52310b2f7de19677697c1097c79
3 | size 16258
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/meteor_half.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rockTrack
4 | Kd 0.9811321 0.5809683 0.4489142
5 |
6 |
--------------------------------------------------------------------------------
/resources/models/spacekit/meteor_half.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:97f37437fb0e02dcae202111021432eae567d2b00290d06e4325e4bdfd295a73
3 | size 3228
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/monorail_trackCornerLarge.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/monorail_trackCornerLarge.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:366ebcaaf1205040293c5879a8e42d6ffbc73a292232cef7c609f68b8cd49a9c
3 | size 16366
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/monorail_trackCornerSmall.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/monorail_trackCornerSmall.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:32c80ac12b96d23f71979d41b5f69c2b4de1bff23729e75f36b22b3636076f60
3 | size 22343
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/monorail_trackSlope.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/monorail_trackSlope.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:b438b3a24e7ac1e304c6559498530a71486974958a78938601b227f8fe3ba677
3 | size 2300
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/monorail_trackStraight.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/monorail_trackStraight.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:db1b8e29cbab5ebe7767c0333dcc72cbaef5cb9d50774b6024a35073f1e097ff
3 | size 1776
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/monorail_trackSupport.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl dark
7 | Kd 0.2745098 0.2980392 0.3411765
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/monorail_trackSupport.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:5fd658882d5537aacf3f1c2c0b3fb02878d702021ad1fcd0b6b479eaaf0c2a23
3 | size 9117
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/monorail_trackSupportCorner.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl dark
7 | Kd 0.2745098 0.2980392 0.3411765
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/monorail_trackSupportCorner.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:135c831d6f19ef00a98b49f369b0a98497124181c27a1ceeca5ef505e29b5b6d
3 | size 9631
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/monorail_trainBox.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl dark
10 | Kd 0.2745098 0.2980392 0.3411765
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/monorail_trainBox.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:ffc3fb524eb481b1141b396d7c8d43a368fc5570c4a87b4e8a5249b29bf6759e
3 | size 5328
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/monorail_trainCargo.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl dark
10 | Kd 0.2745098 0.2980392 0.3411765
11 |
12 | newmtl metalDark
13 | Kd 0.6750623 0.7100219 0.7735849
14 |
15 | newmtl _defaultMat
16 | Kd 1 1 1
17 |
18 |
--------------------------------------------------------------------------------
/resources/models/spacekit/monorail_trainCargo.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:c6a716295e0a5deb2175e2c546baed2254943d9c50829ed638beba202f758e76
3 | size 50984
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/monorail_trainEnd.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalRed
7 | Kd 1 0.6285242 0.2028302
8 |
9 | newmtl dark
10 | Kd 0.2745098 0.2980392 0.3411765
11 |
12 | newmtl metalDark
13 | Kd 0.6750623 0.7100219 0.7735849
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/monorail_trainEnd.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:8390fa29a25942e5bff6b26231a13a884d918aab2ccf385cf48e142404b1721b
3 | size 11320
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/monorail_trainFlat.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl dark
7 | Kd 0.2745098 0.2980392 0.3411765
8 |
9 | newmtl metal
10 | Kd 0.8431373 0.8705882 0.9098039
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/monorail_trainFlat.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:3f8f94cb91e8b0b811c1f885b90002ed5b99af278f78305e2d0774adaa011877
3 | size 4788
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/monorail_trainFront.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl dark
10 | Kd 0.2745098 0.2980392 0.3411765
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/monorail_trainFront.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:278a68fa43a30951ad7d585355603c0490af1440df516fa22979ae1ce8ca9258
3 | size 14891
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/monorail_trainPassenger.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 | newmtl dark
13 | Kd 0.2745098 0.2980392 0.3411765
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/monorail_trainPassenger.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:a3c2383120e5f7b2c1cacfe8f6c454186d1f81ca5981699a69153edc0800864f
3 | size 8426
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_corner.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_corner.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:4a33929bb97ab6bdbe870bbf3a485c80a9797f99052f6364e810420b5e4eb8c5
3 | size 6123
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_cornerDiagonal.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_cornerDiagonal.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:5f4bb80bea6496c9e043cd59fe4f0063d72924dd3a5046d117a6027990a1ed53
3 | size 3626
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_cornerRound.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_cornerRound.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:e36f5ca661056e2ed97e21bd9510ef3c1437e3e3028784e50a3ce741bd260bab
3 | size 29792
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_cornerRoundLarge.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_cornerRoundLarge.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:c8724df01d82290979fde8c72fe35c3c417b22942676ecf518c3a4eb54410568
3 | size 30784
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_cross.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl dark
4 | Kd 0.2745098 0.2980392 0.3411765
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 | newmtl metal
10 | Kd 0.8431373 0.8705882 0.9098039
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_cross.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:ec9599a5a63ab1007b6ef5fd0297a89ab9f7ac3185490f070465d2e199846ee7
3 | size 12998
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_end.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 | newmtl dark
10 | Kd 0.2745098 0.2980392 0.3411765
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_end.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:7fb933adc737897d6cd5c73f84efe455f0e7c21114a835df6f8c3206adb72c02
3 | size 5291
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_entrance.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_entrance.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:7ae97ad8ee61afe6edb374ff0f4f4f97368367639d7df1777ed1f8a785dbe198
3 | size 7803
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_open.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_open.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:3c82027d954d74f308ef383a6f6d9296e85f499ece9c173b7a720fbea52412f9
3 | size 5879
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_rampLarge.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 | newmtl dark
10 | Kd 0.2745098 0.2980392 0.3411765
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_rampLarge.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:6156959d28e196bf031d7a053620b5b008f67ca6992e8438d6f0bed05f2c4f40
3 | size 11163
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_rampSmall.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 | newmtl dark
10 | Kd 0.2745098 0.2980392 0.3411765
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_rampSmall.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:df6b0231de9d0cac4ff0d92f50decc9a896f346388776931f15fb52579bf6275
3 | size 11137
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_ring.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 | newmtl dark
10 | Kd 0.2745098 0.2980392 0.3411765
11 |
12 | newmtl metal
13 | Kd 0.8431373 0.8705882 0.9098039
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_ring.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:76e8ccf68a4ce8f66b9a89a0d2a309e62a2057bb736f11e0d230f68da6ce30b0
3 | size 7886
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_ringHigh.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl _defaultMat
10 | Kd 1 1 1
11 |
12 | newmtl dark
13 | Kd 0.2745098 0.2980392 0.3411765
14 |
15 | newmtl metalDark
16 | Kd 0.6750623 0.7100219 0.7735849
17 |
18 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_ringHigh.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:987320564ffc19587057a9f89c0f59aced4b1470d8ec1cb9ad59f786c63e2679
3 | size 11672
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_ringHighEnd.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalRed
7 | Kd 1 0.6285242 0.2028302
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 | newmtl _defaultMat
13 | Kd 1 1 1
14 |
15 | newmtl dark
16 | Kd 0.2745098 0.2980392 0.3411765
17 |
18 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_ringHighEnd.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:ce555f1d4e0b3b5cd39843aaba1e5ab585e66a322d1d70f87da421bffaafb751
3 | size 10686
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_ringSupport.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl _defaultMat
10 | Kd 1 1 1
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_ringSupport.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:d1f7a6c188ca3d950f9350a75d55d9f237874ecf03d248436bcde94098201d9d
3 | size 6031
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_split.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl dark
4 | Kd 0.2745098 0.2980392 0.3411765
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_split.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:b91780429c793aa6e32ab789ae3a489572ae1d04710f4bc9ed780030d6d12a43
3 | size 9249
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_straight.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 | newmtl dark
10 | Kd 0.2745098 0.2980392 0.3411765
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_straight.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:29afe7fa99861e1e83fb21587d1573170696ac2b4f341ae0491ba5708701a25e
3 | size 4585
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_supportHigh.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl _defaultMat
7 | Kd 1 1 1
8 |
9 | newmtl metalRed
10 | Kd 1 0.6285242 0.2028302
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_supportHigh.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:1f2cd65ca9c76f8b8e3865b8a6b717588839ffa05cc0b6100436b9eca1368947
3 | size 2513
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_supportLow.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl _defaultMat
7 | Kd 1 1 1
8 |
9 | newmtl metalRed
10 | Kd 1 0.6285242 0.2028302
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/pipe_supportLow.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:3a85ee39cd3308f1cc3339ec203ef1998e838acd2d44c28f087112b4efa54df4
3 | size 2519
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/platform_center.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 |
--------------------------------------------------------------------------------
/resources/models/spacekit/platform_center.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:c812b6552ae7b900d1d6a81344ba582e154f1dfca3fd41b5df6145c30876a741
3 | size 376
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/platform_corner.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/platform_corner.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:e868a4e199cd8eac5646cba9fd026ba51a961db5d68bb561c814d39d3c94e2d8
3 | size 5049
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/platform_cornerOpen.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/platform_cornerOpen.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:8cfc69319adffe4385e12e1511fd8b86bb24378c1bc6180db82ba7aad51b739f
3 | size 3091
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/platform_cornerRound.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/platform_cornerRound.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:0b9f1d956b23c8dd45822f48f6860709fd544c8f5ca60ab92369ec114cec36de
3 | size 23021
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/platform_end.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 | newmtl metal
10 | Kd 0.8431373 0.8705882 0.9098039
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/platform_end.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:a63c7a1af3cc9440c901359ef4083aef60968561793930441a5d2aa95d22db39
3 | size 3388
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/platform_high.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 | newmtl _defaultMat
13 | Kd 1 1 1
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/platform_high.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:79c70aeb5ff4adb1a45c94aea1bff4c8c9270e71e3bf3cb1d3a21249d6832e5f
3 | size 9233
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/platform_large.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/platform_large.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:31f7bd47c6f1a4645411ce7ada7c1751a98a5adaa7ba7987ed20727bafcd56c0
3 | size 3558
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/platform_long.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/platform_long.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:5f3f64576e408558d7a4493aa4e1dc12929f2c6a9ffeae42e0f9e1eb620e1576
3 | size 3797
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/platform_low.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/platform_low.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:34d50cf16ca655a4ec6c0d947bc459b8e143b193253f46f50983bf80ae219b58
3 | size 6521
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/platform_side.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl _defaultMat
10 | Kd 1 1 1
11 |
12 | newmtl metalDark
13 | Kd 0.6750623 0.7100219 0.7735849
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/platform_side.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:5b76c2c3a766013431dd7df39e91a902cc50f50854a909bf4bf68613a2a514ff
3 | size 1765
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/platform_small.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/platform_small.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:e99bf5549a6a8bb71d99f5072ed1a5bb1c5b3ba0a97c13ba5e0bee26c60d8061
3 | size 3542
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/platform_smallDiagonal.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/platform_smallDiagonal.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:9d4c1a6df6ac9ed1ecba6096e427a3c04bbc89bb233909f44e6045761315b725
3 | size 4207
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/platform_straight.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 | newmtl _defaultMat
13 | Kd 1 1 1
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/platform_straight.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:64ef15edfec4c93a0c4ec14837759fac11841aaeaee71f7cdd728be1b1bdc94f
3 | size 2666
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rail.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rail.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:66f9aeef7e24f59d22ca094e389c858cbae8ccfd468fb5de0a1e3aac9bcca775
3 | size 5702
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rail_corner.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rail_corner.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:00564990ce97fa70931c047e9246a303f5d110a2d9023b3d2833a841e83d7bf4
3 | size 9670
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rail_end.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rail_end.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:ddbdb252291da2f22d491342eeae008ba97817963c67a01a2ac193d0ce72d971
3 | size 3733
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rail_middle.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalRed
7 | Kd 1 0.6285242 0.2028302
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rail_middle.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:7409427d6e417d23f46934718bca386b6325eee7e728cb00287e9c3510fa336c
3 | size 2927
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rock.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rockTrack
4 | Kd 0.9811321 0.5809683 0.4489142
5 |
6 | newmtl rock
7 | Kd 0.9098039 0.5176471 0.3882353
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rock.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:322806bb2b616ced880e27361a25ec2233fdc233f7642efbdf3de34fb8722be0
3 | size 15149
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rock_crystals.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rockTrack
4 | Kd 0.9811321 0.5809683 0.4489142
5 |
6 | newmtl rock
7 | Kd 0.9098039 0.5176471 0.3882353
8 |
9 | newmtl crystal
10 | Kd 0.1862318 0.8773585 0.5934362
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rock_crystals.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:a599efe79c167933938f996315a9a41b9ff399bcc11b30dc487038352fa3f504
3 | size 32785
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rock_crystalsLargeA.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rockTrack
4 | Kd 0.9811321 0.5809683 0.4489142
5 |
6 | newmtl rock
7 | Kd 0.9098039 0.5176471 0.3882353
8 |
9 | newmtl crystal
10 | Kd 0.1862318 0.8773585 0.5934362
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rock_crystalsLargeA.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:65d1b92b6d2f23e81286999b9887bd42aec7ef943f0fa3a2cfc3bb6312edeb6c
3 | size 35161
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rock_crystalsLargeB.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rockTrack
4 | Kd 0.9811321 0.5809683 0.4489142
5 |
6 | newmtl rock
7 | Kd 0.9098039 0.5176471 0.3882353
8 |
9 | newmtl crystal
10 | Kd 0.1862318 0.8773585 0.5934362
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rock_crystalsLargeB.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:231586d7ff5ff938de8abea068efb1874b07f749af5817c03c97d60179eba246
3 | size 34888
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rock_largeA.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rockTrack
4 | Kd 0.9811321 0.5809683 0.4489142
5 |
6 | newmtl rock
7 | Kd 0.9098039 0.5176471 0.3882353
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rock_largeA.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:927a21191553832decd7bbc5c81ec751a3cafe6122ca1c468854901f2db17f35
3 | size 16024
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rock_largeB.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rockTrack
4 | Kd 0.9811321 0.5809683 0.4489142
5 |
6 | newmtl rock
7 | Kd 0.9098039 0.5176471 0.3882353
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rock_largeB.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:bff49f3db60b2638bfec357e566795b58e5bab7bb306c5520cddecad5e80ae59
3 | size 15721
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rocket_baseA.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalRed
10 | Kd 1 0.6285242 0.2028302
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rocket_baseA.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:3a6c4115e5994079abe83a7b97f14f2bcce0e97b76bd229dcb60fd0112060ccd
3 | size 16448
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rocket_baseB.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalRed
10 | Kd 1 0.6285242 0.2028302
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rocket_baseB.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:70c4154f94a877c5ffadd679bceba93a511ca391e83fc960f9cba71560d0ad6b
3 | size 16040
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rocket_finsA.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl dark
7 | Kd 0.2745098 0.2980392 0.3411765
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rocket_finsA.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:b523ad7a3bc8454fb0cc39070a15d1ca7de10c0a30a686543200e575d1242033
3 | size 9797
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rocket_finsB.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalRed
7 | Kd 1 0.6285242 0.2028302
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rocket_finsB.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:fea14aa9e0dc781a73b9a3e3ab0919a7ebbdd15fd47bc3b84ba4661ecd713089
3 | size 13097
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rocket_fuelA.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rocket_fuelA.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:53f83c675728d51a12014724d413a7a264ae893512189313553581e1135bfa87
3 | size 4919
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rocket_fuelB.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rocket_fuelB.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:b862cc01af5e103b9649a14f6807da7e4bf505dd823f1871e316227a1fe1f904
3 | size 6020
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rocket_sidesA.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 | newmtl dark
10 | Kd 0.2745098 0.2980392 0.3411765
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rocket_sidesA.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:3a69d1927e1ac09203c3b514a9714876cfeb4fb8688d003fff09a1e3b8237a8a
3 | size 10930
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rocket_sidesB.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalRed
7 | Kd 1 0.6285242 0.2028302
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rocket_sidesB.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:d60057d846ed44c3d84598f05852b92f14bb51c77106fc8881e90be4a1753e86
3 | size 10742
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rocket_topA.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metalRed
7 | Kd 1 0.6285242 0.2028302
8 |
9 | newmtl _defaultMat
10 | Kd 1 1 1
11 |
12 | newmtl metal
13 | Kd 0.8431373 0.8705882 0.9098039
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rocket_topA.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:d910a3dd8cccebb8f1eb259af29d436da6839e81ae362fc5e9fd8f4038146bb4
3 | size 3132
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rocket_topB.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl _defaultMat
7 | Kd 1 1 1
8 |
9 | newmtl metal
10 | Kd 0.8431373 0.8705882 0.9098039
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rocket_topB.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:6172c353cb189cc5be4b5111a3212e15d9be6852615505914e93cf826d3597d9
3 | size 5142
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rocks_smallA.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rock
4 | Kd 0.9098039 0.5176471 0.3882353
5 |
6 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rocks_smallA.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:bb4f66336c638e7580645f32b950ba41b904be9cbb16e804378122b8afc04827
3 | size 6685
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rocks_smallB.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rock
4 | Kd 0.9098039 0.5176471 0.3882353
5 |
6 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rocks_smallB.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:00fa9325b4703fd1a9587976394e35578226926a0892918df05d3de061db4c88
3 | size 5330
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rover.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl dark
4 | Kd 0.2745098 0.2980392 0.3411765
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalRed
10 | Kd 1 0.6285242 0.2028302
11 |
12 | newmtl metalDark
13 | Kd 0.6750623 0.7100219 0.7735849
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/rover.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:e5ec326be88beedb4725886cb317497e150d527d2c6903b148044eaa352d1e37
3 | size 11088
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/satelliteDish.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl dark
7 | Kd 0.2745098 0.2980392 0.3411765
8 |
9 | newmtl _defaultMat
10 | Kd 1 1 1
11 |
12 | newmtl metal
13 | Kd 0.8431373 0.8705882 0.9098039
14 |
15 | newmtl metalRed
16 | Kd 1 0.6285242 0.2028302
17 |
18 |
--------------------------------------------------------------------------------
/resources/models/spacekit/satelliteDish.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:cabd92b8c6593ba4d188af8af6d334a54e7825a650f6a1e89ba230d97213eaa7
3 | size 18790
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/satelliteDish_detailed.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 | newmtl _defaultMat
10 | Kd 1 1 1
11 |
12 | newmtl metalRed
13 | Kd 1 0.6285242 0.2028302
14 |
15 | newmtl dark
16 | Kd 0.2745098 0.2980392 0.3411765
17 |
18 |
--------------------------------------------------------------------------------
/resources/models/spacekit/satelliteDish_detailed.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:d6b4eb54086bd13a37f3403558e396eb4b780bda5edf89c21bc833fbe570221f
3 | size 27114
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/satelliteDish_large.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl dark
10 | Kd 0.2745098 0.2980392 0.3411765
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/satelliteDish_large.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:4bd0a076a5a2e2e7e66bdcb23cc6e9412dfaf895faade0453ae3008927f845eb
3 | size 15529
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/stairs.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl dark
7 | Kd 0.2745098 0.2980392 0.3411765
8 |
9 | newmtl metal
10 | Kd 0.8431373 0.8705882 0.9098039
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/stairs.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:784bda5340586dfb61f2af60cf045e9f7bf526f05dc142aa87e23a06a399cd96
3 | size 13193
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/stairs_corner.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metal
4 | Kd 0.8431373 0.8705882 0.9098039
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 | newmtl dark
10 | Kd 0.2745098 0.2980392 0.3411765
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/stairs_corner.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:5e79c54190185dc953a646372df96f2a9e117d69ea7448cedab95d0301ecc7d4
3 | size 19286
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/stairs_short.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl dark
4 | Kd 0.2745098 0.2980392 0.3411765
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 | newmtl metal
10 | Kd 0.8431373 0.8705882 0.9098039
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/stairs_short.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:f9b8cadc238e3b39392be647d36e647fecae6b40432557c05661a80fea20843e
3 | size 8475
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/structure.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/structure.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:ac295d11a2f45e6eed1e0b264b6f249567b3a7b279fa6f2d2a9837de77eed39d
3 | size 7929
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/structure_closed.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/structure_closed.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:af3d813842d5d620cd1d3b50b9caabcfc78df8f6b16a21c326c258e2f32c714e
3 | size 11563
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/structure_detailed.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/structure_detailed.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:2af734cb7f39a3281677b73462373419101856ea6ecd145fdac46a79f599be5f
3 | size 10387
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/structure_diagonal.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/structure_diagonal.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:836eb5339bf2ffd512988d0c728b684067495908f54a1cf2a357def17ec7ec1c
3 | size 16336
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/supports_high.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 | newmtl metal
10 | Kd 0.8431373 0.8705882 0.9098039
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/supports_high.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:98bb6b2bddb17d4ebbfee314a3d43bb2753619c9301fe3f2a220b7a5f51d1d27
3 | size 14030
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/supports_low.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metalDark
7 | Kd 0.6750623 0.7100219 0.7735849
8 |
9 | newmtl metal
10 | Kd 0.8431373 0.8705882 0.9098039
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/supports_low.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:3d22833798d0543bae0dde51a1d39c050f90bcab4fcaf61c1c18cb064bbfd0ad
3 | size 8934
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rock
4 | Kd 0.9098039 0.5176471 0.3882353
5 |
6 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:377e06fb64e33e2daa9ceab2bf417ed54b6520739020bfefa9fdcafbb516fe11
3 | size 294
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain_ramp.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rock
4 | Kd 0.9098039 0.5176471 0.3882353
5 |
6 | newmtl rockDark
7 | Kd 0.6980392 0.372549 0.2627451
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain_ramp.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:ca621a5b46385ec843c2fa16bf4d032d92b61646dac179eb8302bb144654a614
3 | size 564
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain_rampLarge.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rockDark
4 | Kd 0.6980392 0.372549 0.2627451
5 |
6 | newmtl rock
7 | Kd 0.9098039 0.5176471 0.3882353
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain_rampLarge.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:242e6edd4430eb338f14f6b78947c8e64491ecff3d92237a87110e8a41ed114a
3 | size 596
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain_rampLarge_detailed.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rock
4 | Kd 0.9098039 0.5176471 0.3882353
5 |
6 | newmtl rockDark
7 | Kd 0.6980392 0.372549 0.2627451
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain_rampLarge_detailed.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:83c2e8238478264cb41756080945ed5b59f3bf041830b6b477feb72936800a6a
3 | size 1209
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain_roadCorner.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rock
4 | Kd 0.9098039 0.5176471 0.3882353
5 |
6 | newmtl rockTrack
7 | Kd 0.9811321 0.5809683 0.4489142
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain_roadCorner.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:3c0426b3e8d0cd0f9cd07004d97e9cff4717a2922555d24f7222be3112ecc76f
3 | size 5199
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain_roadCross.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rockTrack
4 | Kd 0.9811321 0.5809683 0.4489142
5 |
6 | newmtl rock
7 | Kd 0.9098039 0.5176471 0.3882353
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain_roadCross.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:63939467bc0f104fd7f1430aea60ede79a97e6e080fe66a7d2d9feef3006d10d
3 | size 2763
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain_roadEnd.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rock
4 | Kd 0.9098039 0.5176471 0.3882353
5 |
6 | newmtl rockTrack
7 | Kd 0.9811321 0.5809683 0.4489142
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain_roadEnd.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:3ef6bad5efe131846403c3054f5ff833c02755958c11ffffb26d6708217d8bec
3 | size 3089
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain_roadSplit.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rock
4 | Kd 0.9098039 0.5176471 0.3882353
5 |
6 | newmtl rockTrack
7 | Kd 0.9811321 0.5809683 0.4489142
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain_roadSplit.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:89e96a05da8a71a0952c966bb0706822ad81fce756b6eed1d3711f2aa847d3e5
3 | size 9419
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain_roadStraight.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rock
4 | Kd 0.9098039 0.5176471 0.3882353
5 |
6 | newmtl rockTrack
7 | Kd 0.9811321 0.5809683 0.4489142
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain_roadStraight.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:58dbca6ec648a284936a7a0d30365c8847dfd8a6da92d350e3ff6b6db46bca6f
3 | size 821
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain_side.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rock
4 | Kd 0.9098039 0.5176471 0.3882353
5 |
6 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain_side.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:17022d6711c3631b19dbdbd2671201f432644616093e46a8fba4f1e819a03d67
3 | size 326
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain_sideCliff.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rock
4 | Kd 0.9098039 0.5176471 0.3882353
5 |
6 | newmtl rockDark
7 | Kd 0.6980392 0.372549 0.2627451
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain_sideCliff.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:a321d44e8603bd3cdf59866464612d13d4720634bf46e0badb80ced32ba7379b
3 | size 1099
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain_sideCorner.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rock
4 | Kd 0.9098039 0.5176471 0.3882353
5 |
6 | newmtl rockDark
7 | Kd 0.6980392 0.372549 0.2627451
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain_sideCorner.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:0d3a4d1ce2c9832fda27433f4bd59eafe78a90c9aca05e195fbc6cbbbb2e3375
3 | size 1062
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain_sideCornerInner.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rockDark
4 | Kd 0.6980392 0.372549 0.2627451
5 |
6 | newmtl rock
7 | Kd 0.9098039 0.5176471 0.3882353
8 |
9 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain_sideCornerInner.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:d9791f7c462e402597b1e393b2b6da72992851848ba97d77d96e0c137c6da4a1
3 | size 814
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain_sideEnd.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl rock
4 | Kd 0.9098039 0.5176471 0.3882353
5 |
6 | newmtl _defaultMat
7 | Kd 1 1 1
8 |
9 | newmtl rockDark
10 | Kd 0.6980392 0.372549 0.2627451
11 |
12 |
--------------------------------------------------------------------------------
/resources/models/spacekit/terrain_sideEnd.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:cc5e121e1e75a9716f54464d551f3e0c3a430b3f8508b445cb97d3c7a74d71f3
3 | size 922
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/turret_double.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl dark
4 | Kd 0.2745098 0.2980392 0.3411765
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 | newmtl metalRed
13 | Kd 1 0.6285242 0.2028302
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/turret_double.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:f511dfa73a94274e1a13ab7d136f1087a99149853fa6659132ece1bbc28311e6
3 | size 54405
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/turret_single.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl dark
4 | Kd 0.2745098 0.2980392 0.3411765
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 | newmtl metalRed
13 | Kd 1 0.6285242 0.2028302
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/turret_single.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:2b3492cde9c9496d73963669d8d59e9f5ebccb9dcbf15dbf5336e7ca630c6a89
3 | size 21724
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/weapon_gun.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalRed
4 | Kd 1 0.6285242 0.2028302
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalDark
10 | Kd 0.6750623 0.7100219 0.7735849
11 |
12 | newmtl dark
13 | Kd 0.2745098 0.2980392 0.3411765
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/weapon_gun.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:fca04d351908849f6931aaa6d6d0b6bacb22e1270ca52a42b9f03e849ca318a6
3 | size 5316
4 |
--------------------------------------------------------------------------------
/resources/models/spacekit/weapon_rifle.mtl:
--------------------------------------------------------------------------------
1 | # Created by Kenney (www.kenney.nl)
2 |
3 | newmtl metalDark
4 | Kd 0.6750623 0.7100219 0.7735849
5 |
6 | newmtl metal
7 | Kd 0.8431373 0.8705882 0.9098039
8 |
9 | newmtl metalRed
10 | Kd 1 0.6285242 0.2028302
11 |
12 | newmtl dark
13 | Kd 0.2745098 0.2980392 0.3411765
14 |
15 |
--------------------------------------------------------------------------------
/resources/models/spacekit/weapon_rifle.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:47c14a99c60b556e5e712af73ba2f702c87f6076bdc6041fa949cfac9c16ea39
3 | size 7264
4 |
--------------------------------------------------------------------------------
/resources/shader/road.frag.glsl:
--------------------------------------------------------------------------------
1 | #version 330 core
2 |
3 | #include "visu/gbuffer_layout.glsl"
4 |
5 | in vec3 v_normal;
6 | in vec3 v_position;
7 | in vec4 v_vposition;
8 |
9 | void main()
10 | {
11 | vec3 basecolor = vec3(0.855, 0.851, 0.843);
12 |
13 | gbuffer_albedo = basecolor;
14 | gbuffer_normal = v_normal;
15 | gbuffer_position = v_position;
16 | gbuffer_vposition = v_vposition.xyz;
17 | }
--------------------------------------------------------------------------------
/resources/shader/road.vert.glsl:
--------------------------------------------------------------------------------
1 | #version 330 core
2 | layout (location = 0) in vec3 a_position;
3 | layout (location = 1) in vec3 a_normal;
4 |
5 | out vec3 v_normal;
6 | out vec3 v_position;
7 | out vec4 v_vposition;
8 |
9 | uniform mat4 projection;
10 | uniform mat4 view;
11 |
12 | uniform vec3 origin = vec3(0.0, 0.0, 0.0);
13 | uniform vec3 p0 = vec3(0.0, 0.0, 0.0);
14 | uniform vec3 dest = vec3(0.0, 0.0, 0.0);
15 | uniform vec2 x_mm = vec2(0.0, 0.0);
16 |
17 | vec3 get_beizer_pos(vec3 origin, vec3 p0, vec3 dest, float t)
18 | {
19 | vec3 p1 = origin + (p0 - origin) * t;
20 | vec3 p2 = p0 + (dest - p0) * t;
21 | vec3 p3 = p1 + (p2 - p1) * t;
22 | return p3;
23 | }
24 |
25 | void main()
26 | {
27 | // normalize the vertex position to be between 0 and 1
28 | vec3 pos = a_position;
29 | pos.x -= x_mm.x;
30 | float t = pos.x / (x_mm.y - x_mm.x);
31 | pos.x = 0; // we compute the x position based on t on the curve
32 |
33 | // current point on the curve
34 | vec3 currp = get_beizer_pos(origin, p0, dest, t);
35 |
36 | // sample some point on the curve to get the tangent
37 | vec3 nextp = get_beizer_pos(origin, p0, dest, t + 0.01);
38 |
39 | // calculate the tangent, normal, and binormal
40 | // so we can rotate the point to the tangent
41 | vec3 tangent = normalize(nextp - currp);
42 | vec3 normal = normalize(cross(tangent, vec3(0.0, 1.0, 0.0)));
43 | vec3 binormal = normalize(cross(normal, tangent));
44 | mat3 rot = mat3(tangent, binormal, normal);
45 |
46 | // build the model matrix from the
47 | // calculated rotation and current point on the curve
48 | mat4 model = mat4(rot);
49 | model[3] = vec4(currp, 1.0);
50 |
51 | vec4 world_pos = model * vec4(pos, 1.0);
52 | v_position = world_pos.xyz;
53 | v_vposition = view * world_pos;
54 |
55 | // world normal
56 | vec3 n = normalize(mat3(model) * a_normal);
57 | v_normal = n;
58 |
59 | gl_Position = projection * view * world_pos;
60 | }
--------------------------------------------------------------------------------
/resources/shader/terrain.frag.glsl:
--------------------------------------------------------------------------------
1 | #version 330 core
2 |
3 | #include "visu/gbuffer_layout.glsl"
4 |
5 | in vec3 v_normal;
6 | in vec3 v_position;
7 | in vec4 v_vposition;
8 |
9 | void main()
10 | {
11 | vec3 basecolor = vec3(0.855, 0.851, 0.843);
12 |
13 | // super simple terrain shading using the normal
14 | // and height to determine the color
15 | float height = v_position.y;
16 |
17 | // grassy plains green color
18 | if (height > -50.0f) {
19 | basecolor = vec3(0.638, 0.658, 0.467);
20 | }
21 |
22 | // base color
23 | // snowy mountain tops
24 | if (height > 150.0f) {
25 | basecolor = vec3(0.955, 0.951, 0.943);
26 | }
27 |
28 | // brownish color for the dirt
29 | if (v_normal.y < 0.98f) {
30 | basecolor = vec3(0.74, 0.551, 0.404);
31 | }
32 |
33 | // if the normal is to steep then it is a cliff
34 | // so the basecolor again
35 | if (v_normal.y < 0.9f) {
36 | basecolor = vec3(0.855, 0.851, 0.843);
37 | }
38 |
39 | // darken the color based on the normal
40 | gbuffer_albedo = basecolor * (0.5f + 0.5f * v_normal.y);
41 | gbuffer_normal = v_normal;
42 | gbuffer_position = v_position;
43 | gbuffer_vposition = v_vposition.xyz;
44 | }
--------------------------------------------------------------------------------
/resources/shader/terrain.vert.glsl:
--------------------------------------------------------------------------------
1 | #version 330 core
2 | layout (location = 0) in vec3 a_position;
3 | layout (location = 1) in vec3 a_normal;
4 |
5 | out vec3 v_normal;
6 | out vec3 v_position;
7 | out vec4 v_vposition;
8 |
9 | uniform mat4 projection;
10 | uniform mat4 view;
11 | uniform mat4 model = mat4(1.0);
12 |
13 | void main()
14 | {
15 | vec4 world_pos = model * vec4(a_position, 1.0);
16 | v_position = world_pos.xyz;
17 | v_vposition = view * world_pos;
18 |
19 | vec3 n = normalize(mat3(model) * a_normal);
20 | v_normal = n;
21 |
22 | gl_Position = projection * view * world_pos;
23 | }
--------------------------------------------------------------------------------
/resources/shader/terrain_heightmap.frag.glsl:
--------------------------------------------------------------------------------
1 | #version 330 core
2 |
3 | out float frag_height;
4 | in vec3 v_position;
5 |
6 | void main()
7 | {
8 | frag_height = v_position.y;
9 | }
--------------------------------------------------------------------------------
/resources/shader/terrain_heightmap.vert.glsl:
--------------------------------------------------------------------------------
1 | #version 330 core
2 | layout (location = 0) in vec3 a_position;
3 |
4 | out vec3 v_position;
5 |
6 | uniform mat4 projection;
7 |
8 | void main()
9 | {
10 | v_position = a_position;
11 | gl_Position = projection * vec4(a_position, 1.0);
12 | }
--------------------------------------------------------------------------------
/resources/terrain/alien_planet/alien_planet_terrain.mtl:
--------------------------------------------------------------------------------
1 | # Blender 3.4.1 MTL File: 'None'
2 | # www.blender.org
3 |
4 | newmtl Default_OBJ.001
5 | Ns 224.999985
6 | Ka 1.000000 1.000000 1.000000
7 | Kd 0.800000 0.800000 0.800000
8 | Ks 0.500000 0.500000 0.500000
9 | Ke 0.000000 0.000000 0.000000
10 | Ni 1.450000
11 | d 1.000000
12 | illum 2
13 |
--------------------------------------------------------------------------------
/resources/terrain/alien_planet/alien_planet_terrain.obj:
--------------------------------------------------------------------------------
1 | version https://git-lfs.github.com/spec/v1
2 | oid sha256:9478c0510a82a331f02275e7e2d544ae90a137f9d7940218f6737c2c9f2fa50d
3 | size 5538190
4 |
--------------------------------------------------------------------------------
/src/Component/GameCameraComponent.php:
--------------------------------------------------------------------------------
1 | focusPoint = new Vec3(0.0);
82 | $this->focusPointVelocity = new Vec3(0.0);
83 | $this->rotationVelocity = new Vec2(0.0);
84 | $this->rotation = new Vec2(0.0);
85 | }
86 |
87 | /**
88 | * Updates the zoom / focus radius safely
89 | */
90 | public function setFocusRadius(float $radius)
91 | {
92 | $this->focusRadius = min(max(abs($radius), 5.0), $this->focusRadiusMax);
93 | }
94 | }
95 |
--------------------------------------------------------------------------------
/src/Component/HealthComponent.php:
--------------------------------------------------------------------------------
1 | cursorWorldPosition = new Vec3(0.0);
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/src/Component/LevelSceneryComponent.php:
--------------------------------------------------------------------------------
1 |
46 | */
47 | private array $rows = [];
48 |
49 | /**
50 | * Toggles debug overlay
51 | */
52 | public bool $enabled = true;
53 |
54 | /**
55 | * Constructor
56 | *
57 | * As this is a debugging utility, we will use the container directly
58 | */
59 | public function __construct(
60 | private GameContainer $container
61 | ) {
62 | $this->debugTextRenderer = new DebugOverlayTextRenderer(
63 | $container->resolveGL(),
64 | DebugOverlayTextRenderer::loadDebugFontAtlas(),
65 | );
66 |
67 | // listen to keyboard events to toggle debug overlay
68 | $container->resolveVisuDispatcher()->register('input.key', function(KeySignal $keySignal) {
69 | if ($keySignal->key == Key::F1 && $keySignal->action == Input::PRESS) {
70 | $this->enabled = !$this->enabled;
71 | }
72 | });
73 | }
74 |
75 | private function gameLoopMetrics(float $deltaTime) : string
76 | {
77 | $gameLoop = $this->container->resolveGameLoopMain();
78 |
79 | $row = str_pad("FPS: " . round($gameLoop->getAverageFps()), 8);
80 | $row .= str_pad(" | TC: " . sprintf("%.2f", $gameLoop->getAverageTickCount()), 10);
81 | $row .= str_pad(" | UT: " . $gameLoop->getAverageTickTimeFormatted(), 18);
82 | $row .= str_pad(" | FT: " . $gameLoop->getAverageFrameTimeFormatted(), 16);
83 | $row .= " | delta: " . sprintf("%.4f", $deltaTime);
84 |
85 | return $row;
86 | }
87 |
88 | private function formatNStoHuman(int $ns) : string
89 | {
90 | if ($ns < 1000) {
91 | return sprintf("%.2f ns", $ns);
92 | }
93 | elseif ($ns < 1000000) {
94 | return sprintf("%.2f µs", $ns / 1000);
95 | }
96 | elseif ($ns < 1000000000) {
97 | return sprintf("%.2f ms", $ns / 1000000);
98 | }
99 | else {
100 | return sprintf("%.2f s", $ns / 1000000000);
101 | }
102 | }
103 |
104 | private function gameProfilerMetrics() : array
105 | {
106 | $profiler = $this->container->resolveProfiler();
107 |
108 | $scopeAverages = $profiler->getAveragesPerScope();
109 | $rows = [];
110 |
111 | // sort the averages by GPU consumption
112 | uasort($scopeAverages, function($a, $b) {
113 | return $b['gpu'] <=> $a['gpu'];
114 | });
115 |
116 | foreach($scopeAverages as $scope => $averages) {
117 | $row = str_pad("[" . $scope . ']', 25);
118 | $row .= str_pad(" CPU(" . $averages['cpu_samples'] . "): " . $this->formatNStoHuman((int) $averages['cpu']), 20);
119 | $row .= str_pad(" | GPU(" . $averages['gpu_samples'] . "): " . $this->formatNStoHuman((int) $averages['gpu']), 20);
120 | $row .= str_pad(" | Tri: " . round($averages['gpu_triangles']), 10);
121 | $rows[] = $row;
122 | }
123 |
124 | return $rows;
125 | }
126 |
127 | /**
128 | * Draws the debug text overlay if enabled
129 | */
130 | public function attachPass(RenderPipeline $pipeline, PipelineResources $resources, RenderTargetResource $rt, float $compensation)
131 | {
132 | // we sync the profile enabled state with the debug overlay
133 | $this->container->resolveProfiler()->enabled = $this->enabled;
134 |
135 | if (!$this->enabled) {
136 | $this->rows = []; // reset the rows to avoid them stacking up
137 | self::$globalRows = [];
138 | return;
139 | }
140 |
141 | // get the actual rendering target
142 | $target = $resources->getRenderTarget($rt);
143 |
144 | // Add current FPS plus the average tick count and the compensation
145 | $this->rows[] = $this->gameLoopMetrics($compensation);
146 | $this->rows[] = "Scene: " . $this->container->resolveGame()->getCurrentScene()->getName() .
147 | ' | Press CTRL + C to open the console';
148 |
149 | // add global rows
150 | $this->rows = array_merge($this->rows, self::$globalRows);
151 |
152 |
153 | // we render to the backbuffer
154 | $this->debugTextRenderer->attachPass($pipeline, $rt, [
155 | new DebugOverlayText(implode("\n", $this->rows), 10, 10)
156 | ]);
157 |
158 | $profilerLines = $this->gameProfilerMetrics();
159 | $y = $rt->height - (count($profilerLines) * $this->debugTextRenderer->lineHeight * $target->contentScaleX);
160 | $y -= 25;
161 | $this->debugTextRenderer->attachPass($pipeline, $rt, [
162 | new DebugOverlayText(implode("\n", $profilerLines), 10, $y, new Vec3(0.726, 0.865, 1.0)),
163 | ]);
164 |
165 |
166 | // clear the rows for the next frame
167 | $this->rows = [];
168 | self::$globalRows = [];
169 | }
170 |
171 | public function __debugInfo()
172 | {
173 | return [
174 | 'enabled' => $this->enabled,
175 | 'rows' => $this->rows,
176 | ];
177 | }
178 | }
179 |
--------------------------------------------------------------------------------
/src/Game.php:
--------------------------------------------------------------------------------
1 | container = $container;
82 | $this->window = $container->resolveWindowMain();
83 |
84 | // initialize the window
85 | $this->window->initailize($this->container->resolveGL());
86 |
87 | // enable vsync by default
88 | $this->window->setSwapInterval(1);
89 |
90 | // make the input the windows event handler
91 | $this->window->setEventHandler($this->container->resolveInput());
92 |
93 | // initialize the input context map
94 | $this->inputContext = $this->container->resolveInputContext();
95 |
96 | // initialize the pipeline resources
97 | $this->pipelineResources = new PipelineResources($container->resolveGL());
98 |
99 | // preload all shaders
100 | $container->resolveShaders()->loadAll(function($name, ShaderProgram $shader) {
101 | Logger::info("(shader) loaded: {$name} -> {$shader->id}");
102 | });
103 |
104 | // initialize the debug renderers
105 | $this->dbgText = new DebugTextOverlay($container);
106 | $this->dbgConsole = new DebugConsole($container->resolveGL(), $container->resolveInput(), $container->resolveVisuDispatcher());
107 | $this->dbg3D = new Debug3DRenderer($container->resolveGL());
108 | Debug3DRenderer::setGlobalInstance($this->dbg3D);
109 |
110 | // load an inital scene
111 | $this->currentScene = new LevelEditorScene($container);
112 | }
113 |
114 | /**
115 | * Returns the current scene
116 | */
117 | public function getCurrentScene() : BaseScene
118 | {
119 | return $this->currentScene;
120 | }
121 |
122 | /**
123 | * Start the game
124 | * This will begin the game loop
125 | */
126 | public function start()
127 | {
128 | // initialize the current scene
129 | $this->currentScene->load();
130 |
131 | // start the game loop
132 | $this->container->resolveGameLoopMain()->start();
133 | }
134 |
135 | /**
136 | * Update the games state
137 | * This method might be called multiple times per frame, or not at all if
138 | * the frame rate is very high.
139 | *
140 | * The update method should step the game forward in time, this is the place
141 | * where you would update the position of your game objects, check for collisions
142 | * and so on.
143 | *
144 | * @return void
145 | */
146 | public function update() : void
147 | {
148 | // reset the input context for the next tick
149 | $this->inputContext->reset();
150 |
151 | // poll for new events
152 | $this->window->pollEvents();
153 |
154 | // update the current scene
155 | $this->currentScene->update();
156 | }
157 |
158 | /**
159 | * Render the current game state
160 | * This method is called once per frame.
161 | *
162 | * The render method should draw the current game state to the screen. You recieve
163 | * a delta time value which you can use to interpolate between the current and the
164 | * previous frame. This is useful for animations and other things that should be
165 | * smooth with variable frame rates.
166 | *
167 | * @param float $deltaTime
168 | * @return void
169 | */
170 | public function render(float $deltaTime) : void
171 | {
172 | $windowRenderTarget = $this->window->getRenderTarget();
173 | // $windowRenderTarget->framebuffer()->clearColor = new Vec4(1, 0.2, 0.2, 1.0);
174 |
175 | $data = new PipelineContainer;
176 | $pipeline = new RenderPipeline($this->pipelineResources, $data, $windowRenderTarget);
177 | $context = new RenderContext($pipeline, $data, $this->pipelineResources, $deltaTime);
178 |
179 | // backbuffer render target
180 | $backbuffer = $data->get(BackbufferData::class)->target;
181 |
182 | // clear the backbuffer
183 | $pipeline->addPass(new ClearPass($backbuffer));
184 |
185 | // render the current scene
186 | $this->currentScene->render($context);
187 |
188 | // render debug text
189 | $this->dbg3D->attachPass($pipeline, $backbuffer);
190 | $this->dbgText->attachPass($pipeline, $this->pipelineResources, $backbuffer, $deltaTime);
191 | $this->dbgConsole->attachPass($pipeline, $this->pipelineResources, $backbuffer);
192 |
193 | // execute the pipeline
194 | $pipeline->execute($this->tick++, $this->container->resolveProfiler());
195 |
196 | // finalize the profiler
197 | $this->container->resolveProfiler()->finalize();
198 |
199 | $this->window->swapBuffers();
200 | }
201 |
202 | /**
203 | * Loop should stop
204 | * This method is called once per frame and should return true if the game loop
205 | * should stop. This is useful if you want to quit the game after a certain amount
206 | * of time or if the player has lost all his lives etc..
207 | *
208 | * @return bool
209 | */
210 | public function shouldStop() : bool
211 | {
212 | return $this->window->shouldClose();
213 | }
214 |
215 | /**
216 | * Custom debug info.
217 | * When because of the way dependencies form in this came the debugging output can become very
218 | * large. This method is used to limit the amount of information that is displayed.
219 | *
220 | * I know, I know, there should't be references to game in the first place..
221 | */
222 | public function __debugInfo() {
223 | return ['currentScene' => $this->currentScene->getName()];
224 | }
225 | }
226 |
--------------------------------------------------------------------------------
/src/Pass/GBufferPass.php:
--------------------------------------------------------------------------------
1 | get(GBufferPassData::class);
32 |
33 | $pipeline->writes($this, $gbuffer->renderTarget);
34 | }
35 |
36 | /**
37 | * Executes the render pass
38 | */
39 | public function execute(PipelineContainer $data, PipelineResources $resources): void
40 | {
41 | $cameraData = $data->get(CameraData::class);
42 | $gbuffer = $data->get(GBufferPassData::class);
43 |
44 | $resources->activateRenderTarget($gbuffer->renderTarget);
45 |
46 | $this->shader->use();
47 | $this->shader->setUniformMatrix4f('projection', false, $cameraData->projection);
48 | $this->shader->setUniformMatrix4f('view', false, $cameraData->view);
49 |
50 | $this->gl->bindVertexArray($this->VAO);
51 | $this->gl->bindVertexArrayBuffer($this->VBO);
52 |
53 | glEnable(GL_DEPTH_TEST);
54 | glEnable(GL_CULL_FACE);
55 |
56 | glDrawArrays(GL_TRIANGLES, 0, $this->vertexCount);
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/src/Renderer/RoadRenderer.php:
--------------------------------------------------------------------------------
1 | roadVAO);
46 | glGenBuffers(1, $this->roadVBO);
47 |
48 | $this->gl->bindVertexArray($this->roadVAO);
49 | $this->gl->bindVertexArrayBuffer($this->roadVBO);
50 |
51 | // vertex attributes for the text
52 | // position
53 | glEnableVertexAttribArray(0);
54 | glVertexAttribPointer(0, 3, GL_FLOAT, false, GL_SIZEOF_FLOAT * 6, 0);
55 |
56 | // normal
57 | glEnableVertexAttribArray(1);
58 | glVertexAttribPointer(1, 3, GL_FLOAT, false, GL_SIZEOF_FLOAT * 6, GL_SIZEOF_FLOAT * 3);
59 |
60 | // create the shader program
61 | $this->roadShader = $this->shaders->get('road');
62 | }
63 |
64 | public function loadRoad(string $path) : void
65 | {
66 | $model = new ObjFileParser($path);
67 |
68 | $meshes = $model->getMeshes('pn');
69 | $mesh = $meshes[0];
70 |
71 | $this->xminMax = new Vec2($mesh->aabbMin->x, $mesh->aabbMax->x);
72 |
73 | /** @var \GL\Buffer\FloatBuffer */
74 | $vertexData = $mesh->vertices;
75 |
76 | $this->gl->bindVertexArray($this->roadVAO);
77 | $this->gl->bindVertexArrayBuffer($this->roadVBO);
78 |
79 | glBufferData(GL_ARRAY_BUFFER, $vertexData, GL_STATIC_DRAW);
80 |
81 | $this->vertexCount = $vertexData->size() / 6;
82 | }
83 |
84 | public function renderToGBuffer(EntitiesInterface $entities, RenderContext $context, GBufferPassData $gbufferData) : void
85 | {
86 | $context->pipeline->addPass(new CallbackPass(
87 | 'Road',
88 | // setup
89 | function(RenderPass $pass, RenderPipeline $pipeline, PipelineContainer $data)
90 | {
91 | $gbuffer = $data->get(GBufferPassData::class);
92 | $pipeline->writes($pass, $gbuffer->renderTarget);
93 | },
94 | // execute
95 | function(PipelineContainer $data, PipelineResources $resources)
96 | {
97 | $cameraData = $data->get(CameraData::class);
98 | $gbuffer = $data->get(GBufferPassData::class);
99 |
100 | $resources->activateRenderTarget($gbuffer->renderTarget);
101 |
102 | $this->roadShader->use();
103 | $this->roadShader->setUniformMatrix4f('projection', false, $cameraData->projection);
104 | $this->roadShader->setUniformMatrix4f('view', false, $cameraData->view);
105 | $this->roadShader->setUniformVec3('origin', $this->tmpOrigin);
106 | $this->roadShader->setUniformVec3('p0', $this->tmpP0);
107 | $this->roadShader->setUniformVec3('dest', $this->tmpDest);
108 | $this->roadShader->setUniformVec2('x_mm', $this->xminMax);
109 |
110 | $this->gl->bindVertexArray($this->roadVAO);
111 | $this->gl->bindVertexArrayBuffer($this->roadVBO);
112 |
113 | glEnable(GL_DEPTH_TEST);
114 | glEnable(GL_CULL_FACE);
115 |
116 | glDrawArrays(GL_TRIANGLES, 0, $this->vertexCount);
117 | }
118 | ));
119 | }
120 |
121 | public function renderToHeightmap(EntitiesInterface $entities, RenderTarget $heightRenderTarget, Mat4 $projection) : void
122 | {
123 | }
124 | }
--------------------------------------------------------------------------------
/src/Renderer/TerrainRenderer.php:
--------------------------------------------------------------------------------
1 | terrainVAO);
36 | glGenBuffers(1, $this->terrainVBO);
37 |
38 | $this->gl->bindVertexArray($this->terrainVAO);
39 | $this->gl->bindVertexArrayBuffer($this->terrainVBO);
40 |
41 | // vertex attributes for the text
42 | // position
43 | glEnableVertexAttribArray(0);
44 | glVertexAttribPointer(0, 3, GL_FLOAT, false, GL_SIZEOF_FLOAT * 6, 0);
45 |
46 | // normal
47 | glEnableVertexAttribArray(1);
48 | glVertexAttribPointer(1, 3, GL_FLOAT, false, GL_SIZEOF_FLOAT * 6, GL_SIZEOF_FLOAT * 3);
49 |
50 | // create the shader program
51 | $this->terrainShader = $this->shaders->get('terrain');
52 | $this->terrainHeightmapShader = $this->shaders->get('terrain_heightmap');
53 | }
54 |
55 | public function loadTerrainFromObj(string $path) : void
56 | {
57 | $model = new ObjFileParser($path);
58 |
59 | /** @var \GL\Buffer\FloatBuffer */
60 | $vertexData = $model->getVertices('pn');
61 |
62 | $this->gl->bindVertexArray($this->terrainVAO);
63 | $this->gl->bindVertexArrayBuffer($this->terrainVBO);
64 |
65 | glBufferData(GL_ARRAY_BUFFER, $vertexData, GL_STATIC_DRAW);
66 |
67 | $this->vertexCount = $vertexData->size() / 6;
68 | }
69 |
70 | /**
71 | * Creates a flat grid terrain with the given width, height and scale.
72 | * The scale is the distance between each vertex in the grid. Default is 1.0. = 1m
73 | *
74 | * @param int $width
75 | * @param int $height
76 | * @param float $scale
77 | * @return void
78 | */
79 | public function createFlatTerrain(int $width, int $height, float $scale = 1.0) : void
80 | {
81 | $vertexData = new FloatBuffer();
82 | $vertexData->reserve($width * $height * 6 * 6);
83 |
84 | // generate a mesh of two triangles for each vertex
85 | // width hand height position on the grid
86 |
87 | $w05 = (int) ($width * 0.5);
88 | $h05 = (int) ($height * 0.5);
89 |
90 | for ($y = 0; $y < $height; $y++)
91 | {
92 | for ($x = 0; $x < $width; $x++)
93 | {
94 | $px = ($x - $w05);
95 | $pz = ($y - $h05);
96 |
97 | $vertexData->pushArray([
98 | // triangle 1
99 | $px * $scale, 0.0, $pz * $scale, // v1 position
100 | 0.0, 1.0, 0.0, // v1 normal
101 |
102 | $px * $scale, 0.0, ($pz + 1) * $scale, // v2 position
103 | 0.0, 1.0, 0.0, // v2 normal
104 |
105 | ($px + 1) * $scale, 0.0, ($pz + 1) * $scale, // v3 position
106 | 0.0, 1.0, 0.0, // v3 normal
107 |
108 | // triangle 2
109 | $px * $scale, 0.0, $pz * $scale, // v1 position
110 | 0.0, 1.0, 0.0, // v1 normal
111 |
112 | ($px + 1) * $scale, 0.0, ($pz + 1) * $scale, // v3 position
113 | 0.0, 1.0, 0.0, // v3 normal
114 |
115 | ($px + 1) * $scale, 0.0, $pz * $scale, // v4 position
116 | 0.0, 1.0, 0.0, // v4 normal
117 | ]);
118 | }
119 | }
120 |
121 | $this->gl->bindVertexArray($this->terrainVAO);
122 | $this->gl->bindVertexArrayBuffer($this->terrainVBO);
123 |
124 | glBufferData(GL_ARRAY_BUFFER, $vertexData, GL_STATIC_DRAW);
125 |
126 | $this->vertexCount = $vertexData->size() / 6;
127 | }
128 |
129 | public function renderToGBuffer(EntitiesInterface $entities, RenderContext $context, GBufferPassData $gbufferData) : void
130 | {
131 | $context->pipeline->addPass(new TerrainPass(
132 | gl: $this->gl,
133 | shader: $this->terrainShader,
134 | VAO: $this->terrainVAO,
135 | VBO: $this->terrainVBO,
136 | vertexCount: $this->vertexCount,
137 | ));
138 | }
139 |
140 | public function renderToHeightmap(EntitiesInterface $entities, RenderTarget $heightRenderTarget, Mat4 $projection) : void
141 | {
142 | $this->terrainHeightmapShader->use();
143 | $this->terrainHeightmapShader->setUniformMat4('projection', false, $projection);
144 |
145 | $this->gl->bindVertexArray($this->terrainVAO);
146 | $this->gl->bindVertexArrayBuffer($this->terrainVBO);
147 |
148 | glEnable(GL_DEPTH_TEST);
149 |
150 | glDrawArrays(GL_TRIANGLES, 0, $this->vertexCount);
151 | }
152 | }
153 |
--------------------------------------------------------------------------------
/src/Scene/BaseScene.php:
--------------------------------------------------------------------------------
1 |
22 | */
23 | protected array $systems = [];
24 |
25 | /**
26 | * Constructor
27 | * Dont load resources here, use the `load` method instead.
28 | * We want to be able to load scenes without loading their resources. For example
29 | * when preparing a scene to be switched or a loading screen.
30 | */
31 | public function __construct(
32 | protected GameContainer $container,
33 | )
34 | {
35 | $this->entities = new EntityRegisty();
36 | }
37 |
38 | /**
39 | * Returns the scenes name
40 | */
41 | abstract public function getName() : string;
42 |
43 | /**
44 | * Binds an array of systems to the scene
45 | * This is handy as you can register and unregister all thsese systems at once
46 | *
47 | * Why do we not just call update and render on all systems automatically?
48 | * Because we want to be able to control the order in which systems are updated and rendered,
49 | * in some cases we don't want to update all systems every frame.
50 | * This is really dependant on the game you are making. Which is why VISU doesn't come with a BaseScene class.
51 | *
52 | * @param array $systems
53 | */
54 | protected function bindSystems(array $systems) : void
55 | {
56 | $this->systems = array_merge($this->systems, $systems);
57 | }
58 |
59 | /**
60 | * Registers all binded systems
61 | */
62 | public function registerSystems() : void
63 | {
64 | foreach ($this->systems as $system) {
65 | $system->register($this->entities);
66 | }
67 | }
68 |
69 | /**
70 | * Unregisters all binded systems
71 | */
72 | public function unregisterSystems() : void
73 | {
74 | foreach ($this->systems as $system) {
75 | $system->unregister($this->entities);
76 | }
77 | }
78 |
79 | /**
80 | * Loads resources required for the scene, prepere base entiteis
81 | * basically prepare anything that is required to be ready before the scene is rendered.
82 | *
83 | * @return void
84 | */
85 | abstract public function load() : void;
86 |
87 | /**
88 | * Updates the scene state
89 | * This is the place where you should update your game state.
90 | *
91 | * @return void
92 | */
93 | abstract public function update() : void;
94 |
95 | /**
96 | * Renders the scene
97 | * This is the place where you should render your game state.
98 | *
99 | * @param RenderContext $context
100 | */
101 | abstract public function render(RenderContext $context) : void;
102 | }
103 |
--------------------------------------------------------------------------------
/src/Scene/LevelData.php:
--------------------------------------------------------------------------------
1 | level->name);
52 | }
53 |
54 | /**
55 | * Constructor
56 | */
57 | public function __construct(
58 | protected GameContainer $container,
59 | )
60 | {
61 | parent::__construct($container);
62 |
63 | // enable the dev picker
64 | $this->devPicker->enabled = true;
65 |
66 | // switch to the editor input context
67 | $this->container->resolveInputContext()->switchTo('level_editor');
68 |
69 | // add a dev gizmo system
70 | $this->gizmoEditorSystem = new GizmoEditorSystem(
71 | $container->resolveGL(),
72 | $container->resolveShaders(),
73 | $container->resolveVisuDispatcher(),
74 | $container->resolveInput()
75 | );
76 |
77 | // bind additional systems
78 | $this->bindSystems([
79 | $this->gizmoEditorSystem,
80 | ]);
81 |
82 |
83 | // listen for editor signals
84 | $this->container->resolveVisuDispatcher()->register(DebugConsole::EVENT_CONSOLE_COMMAND, function(ConsoleCommandSignal $signal)
85 | {
86 | if (!$signal->isAction('editor.spawn')) {
87 | return;
88 | }
89 |
90 | if (!$objName = $signal->commandParts[1] ?? null) {
91 | $signal->console->writeLine('Usage: editor.spawn ');
92 | return;
93 | }
94 |
95 | if (!isset($this->loadedObjects[$objName])) {
96 | $signal->console->writeLine('Object not found: ' . $objName);
97 | return;
98 | }
99 |
100 | $newObj = $this->entities->create();
101 | $renderable = $this->entities->attach($newObj, new DynamicRenderableModel);
102 | $renderable->model = $this->loadedObjects[$objName]; // <- render the turret
103 | $transform = $this->entities->attach($newObj, new Transform);
104 | $transform->scale = $transform->scale * 10;
105 |
106 | $this->selectedEntity = $newObj;
107 | });
108 |
109 | // listen for file drop events
110 | $this->container->resolveVisuDispatcher()->register(Input::EVENT_DROP, function(DropSignal $signal)
111 | {
112 | if (count($signal->paths) !== 1) {
113 | Logger::error('Only one file can be dropped at a time');
114 | return;
115 | }
116 |
117 | // get the basename of the file, as our model files are currently all in one directory
118 | $objName = basename($signal->paths[0]);
119 |
120 | // check if its registered model file
121 | $modelCollection = $this->container->resolveModels();
122 | if (!$modelCollection->has($objName)) {
123 | Logger::error('Model not found in current collection: ' . $objName . ' (did you forget to add it to the collection before dropping it?)');
124 | return;
125 | }
126 |
127 | $droppedObj = $this->entities->create();
128 |
129 | // attach the model component
130 | $renderable = $this->entities->attach($droppedObj, new DynamicRenderableModel);
131 | $renderable->modelIdentifier = $objName;
132 |
133 | // attach a transform component and move it to the cursor position
134 | $transform = $this->entities->attach($droppedObj, new Transform);
135 | $heightmapComponent = $this->entities->getSingleton(HeightmapComponent::class);
136 | $transform->position = $heightmapComponent->cursorWorldPosition->copy();
137 |
138 | // make the object part of the scenery
139 | $this->entities->attach($droppedObj, new LevelSceneryComponent);
140 |
141 | // select the dropped object
142 | $this->devEntityPickerDidSelectEntity($droppedObj);
143 | });
144 | }
145 |
146 | /**
147 | * Loads resources required for the scene, prepere base entiteis
148 | * basically prepare anything that is required to be ready before the scene is rendered.
149 | *
150 | * @return void
151 | */
152 | public function load() : void
153 | {
154 | parent::load();
155 |
156 | // create some random transform to move around
157 | // $entity = $this->entities->firstWith(DynamicRenderableModel::class);
158 | // $this->entities->attach($entity, new GizmoComponent);
159 | }
160 |
161 | /**
162 | * Updates the scene state
163 | * This is the place where you should update your game state.
164 | * @return void
165 | */
166 | public function update() : void
167 | {
168 | parent::update();
169 |
170 | $heightmapComponent = $this->entities->getSingleton(HeightmapComponent::class);
171 |
172 | // get input context
173 | $inputContext = $this->container->resolveInputContext();
174 |
175 | // always enable raycasting
176 | $heightmapComponent->enableRaycasting = true;
177 |
178 | // should we rebuild the heightmap?
179 | if ($inputContext->actions->didButtonPress('rebuild_heightmap')) {
180 | $heightmapComponent->requiresCapture = true;
181 | }
182 |
183 | // should we enable / disable snapping?
184 | if ($inputContext->actions->didButtonPress('toggle_snapping')) {
185 | $this->snappingEnabled = !$this->snappingEnabled;
186 | }
187 |
188 | // adjust the snapping grid
189 | if ($this->snappingEnabled) {
190 | if ($inputContext->actions->isButtonDown('fine_change')) {
191 | $this->snappingGrid = 0.1;
192 | } else {
193 | $this->snappingGrid = 1.0;
194 | }
195 | } else {
196 | $this->snappingGrid = 0.0;
197 | }
198 |
199 | // if an entity is selected and has a transform component
200 | // we update the position until the user clicks the mouse button again
201 | if ($this->entities->valid($this->selectedEntity) && $this->entities->has($this->selectedEntity, Transform::class))
202 | {
203 | // if an entity is selected ensure it has a gizmo attached to it
204 | if (!$this->entities->has($this->selectedEntity, GizmoComponent::class)) {
205 | $this->entities->attach($this->selectedEntity, new GizmoComponent);
206 | }
207 |
208 | // be sure to copy the snapping state
209 | // to the gizmo component
210 | $gizmoComponent = $this->entities->get($this->selectedEntity, GizmoComponent::class);
211 | $gizmoComponent->snapGrid = $this->snappingGrid;
212 |
213 | $transform = $this->entities->get($this->selectedEntity, Transform::class);
214 |
215 | // update the position to heightmap cursor position
216 | // when height placements are requested
217 | if ($inputContext->actions->isButtonDown('place_height')) {
218 | $transform->position = $heightmapComponent->cursorWorldPosition->copy();
219 | }
220 |
221 | // rotation
222 | // ---
223 | // in snapping mode we rotate the object to the nearest 90 degree angle (15 degree steps for fine changes)
224 | // per button press, while in non-snapping mode we rotate the object continuously
225 | if ($this->snappingEnabled)
226 | {
227 | $angle = GLM::radians($inputContext->actions->isButtonDown('fine_change') ? 15 : 90);
228 |
229 | if ($inputContext->actions->didButtonPress('rotate_left')) {
230 | $transform->orientation->rotate($angle, new Vec3(0, 1, 0));
231 | } else if ($inputContext->actions->didButtonPress('rotate_right')) {
232 | $transform->orientation->rotate(-$angle, new Vec3(0, 1, 0));
233 | }
234 | }
235 | else
236 | {
237 | $rotation = $inputContext->actions->isButtonDown('fine_change') ? 0.01 : 0.1;
238 |
239 | if ($inputContext->actions->isButtonDown('rotate_left')) {
240 | $transform->orientation->rotate($rotation, new Vec3(0, 1, 0));
241 | } else if ($inputContext->actions->isButtonDown('rotate_right')) {
242 | $transform->orientation->rotate(-$rotation, new Vec3(0, 1, 0));
243 | }
244 | }
245 |
246 | // scale
247 | // ---
248 | // in snapping mode we scale the object by 1.0 or 0.1 per button press
249 | // while in non-snapping mode we scale the object continuously
250 | if ($inputContext->actions->isButtonDown('scale_up') || $inputContext->actions->isButtonDown('scale_down')) {
251 | if ($this->snappingEnabled) {
252 | if ($inputContext->actions->didButtonPress('scale_up')) {
253 | $transform->scale += $this->snappingGrid;
254 | } else if ($inputContext->actions->didButtonPress('scale_down')) {
255 | $transform->scale -= $this->snappingGrid;
256 | }
257 |
258 | $transform->scale->x = round($transform->scale->x / $this->snappingGrid) * $this->snappingGrid;
259 | $transform->scale->y = round($transform->scale->y / $this->snappingGrid) * $this->snappingGrid;
260 | $transform->scale->z = round($transform->scale->z / $this->snappingGrid) * $this->snappingGrid;
261 | }
262 | else {
263 | $scale = $inputContext->actions->isButtonDown('fine_change') ? 0.01 : 0.1;
264 | if ($inputContext->actions->isButtonDown('scale_up')) {
265 | $transform->scale += $scale;
266 | } else if ($inputContext->actions->isButtonDown('scale_down')) {
267 | $transform->scale -= $scale;
268 | }
269 | }
270 | }
271 |
272 | // if snapping is enabled we snap the position to the grid
273 | if ($this->snappingEnabled) {
274 | $transform->position->x = round($transform->position->x / $this->snappingGrid) * $this->snappingGrid;
275 | $transform->position->y = round($transform->position->y / $this->snappingGrid) * $this->snappingGrid;
276 | $transform->position->z = round($transform->position->z / $this->snappingGrid) * $this->snappingGrid;
277 | }
278 |
279 | $transform->markDirty();
280 |
281 | // copy
282 | if ($inputContext->actions->didButtonRelease('copy')) {
283 | $copy = $this->entities->create();
284 | foreach($this->entities->components($this->selectedEntity) as $component) {
285 | $this->entities->attach($copy, clone $component);
286 | }
287 | $this->devEntityPickerDidSelectEntity($copy);
288 | }
289 |
290 | // delete
291 | if ($inputContext->actions->didButtonRelease('delete')) {
292 | $this->entities->destroy($this->selectedEntity);
293 | $this->deselectEntity();
294 | }
295 |
296 | // place down aka realease
297 | if ($inputContext->actions->didButtonRelease('place')) {
298 | $this->deselectEntity();
299 | }
300 | }
301 | else {
302 | $this->deselectEntity();
303 | }
304 |
305 | // update systems
306 | $this->gizmoEditorSystem->update($this->entities);
307 | }
308 |
309 | /**
310 | * Renders the scene
311 | * This is the place where you should render your game state.
312 | *
313 | * @param RenderContext $context
314 | */
315 | public function render(RenderContext $context) : void
316 | {
317 | parent::render($context);
318 |
319 | // display level editor help
320 | DebugTextOverlay::debugString("Level Editor commands:");
321 | DebugTextOverlay::debugString(" - Rebuild Heightmap: press 'm'");
322 | DebugTextOverlay::debugString(" - Enable/Disable Grid Snapping: press 'b'" . ($this->snappingEnabled ? " (enabled)" : " (disabled)"));
323 |
324 | // draw systems
325 | $this->gizmoEditorSystem->render($this->entities, $context);
326 |
327 | static $origin = new Vec3(50, 00, 50);
328 | static $p0 = new Vec3(0, 0, 0);
329 | static $dest = new Vec3(200, 50, 50);
330 |
331 | if ($this->container->resolveInput()->isKeyPressed(Key::O)) {
332 | $heightmapComponent = $this->entities->getSingleton(HeightmapComponent::class);
333 | $origin = $heightmapComponent->cursorWorldPosition->copy();
334 | }
335 |
336 | if ($this->container->resolveInput()->isKeyPressed(Key::P)) {
337 | $heightmapComponent = $this->entities->getSingleton(HeightmapComponent::class);
338 | $dest = $heightmapComponent->cursorWorldPosition->copy();
339 | }
340 |
341 | if ($this->container->resolveInput()->isKeyPressed(Key::I)) {
342 | $heightmapComponent = $this->entities->getSingleton(HeightmapComponent::class);
343 | $p0 = $heightmapComponent->cursorWorldPosition->copy();
344 | }
345 |
346 |
347 | D3D::bezier(
348 | $origin,
349 | $p0,
350 | $dest,
351 | D3D::$colorRed
352 | );
353 |
354 | D3D::cross($origin, D3D::$colorGreen, 5);
355 | D3D::cross($dest, D3D::$colorGreen, 5);
356 |
357 | $this->roadRenderer->tmpOrigin = $origin;
358 | $this->roadRenderer->tmpP0 = $p0;
359 | $this->roadRenderer->tmpDest = $dest;
360 |
361 | // get the model collection
362 | $modelCollection = $this->container->resolveModels();
363 |
364 | // hightlight the selected entity
365 | // by rendering an AABB around it
366 | if ($this->entities->valid($this->selectedEntity))
367 | {
368 | DebugTextOverlay::debugString("Entity {$this->selectedEntity} selected");
369 | DebugTextOverlay::debugString(" - Rotate: press '.' & ','");
370 | DebugTextOverlay::debugString(" - Follow Terrain: hold 'f'");
371 | DebugTextOverlay::debugString(" - Scale: press 'k' & 'l'");
372 | DebugTextOverlay::debugString(" - Copy: press 'c'");
373 | DebugTextOverlay::debugString(" - Delete: press 'backspace'");
374 |
375 | if (
376 | $this->entities->has($this->selectedEntity, DynamicRenderableModel::class) &&
377 | $this->entities->has($this->selectedEntity, Transform::class)
378 | ) {
379 | $renderable = $this->entities->get($this->selectedEntity, DynamicRenderableModel::class);
380 | $transform = $this->entities->get($this->selectedEntity, Transform::class);
381 |
382 | $model = $modelCollection->get($renderable->modelIdentifier);
383 |
384 | DebugTextOverlay::debugString(
385 | sprintf(
386 | 'Entity Dimensions: ' .
387 | 'width: %.2fm ' .
388 | 'height: %.2fm ' .
389 | 'depth: %.2fm',
390 | $model->aabb->width() * $transform->scale->x,
391 | $model->aabb->height() * $transform->scale->y,
392 | $model->aabb->depth() * $transform->scale->z
393 | )
394 | );
395 |
396 | D3D::aabb($transform->position, $model->aabb->min * $transform->scale, $model->aabb->max * $transform->scale, D3D::$colorGreen);
397 | }
398 | }
399 | }
400 |
401 | private function deselectEntity()
402 | {
403 | // remove gizmo components from the selected one
404 | $this->entities->detach($this->selectedEntity, GizmoComponent::class);
405 |
406 | $this->selectedEntity = 0;
407 | $this->devPicker->enabled = true;
408 | $this->container->resolveInputContext()->switchToNext('level_editor');
409 | }
410 |
411 | private function selectEntity(int $entityId)
412 | {
413 | // remove any gizmo components on the last entity
414 | $this->entities->detach($this->selectedEntity, GizmoComponent::class);
415 |
416 | $this->selectedEntity = $entityId;
417 | $this->devPicker->enabled = false;
418 | $this->container->resolveInputContext()->switchToNext('level_editor.selected');
419 | }
420 |
421 | /**
422 | * Called when the dev entity picker has selected an entity
423 | *
424 | * @param int $entityId
425 | * @return void
426 | */
427 | public function devEntityPickerDidSelectEntity(int $entityId): void
428 | {
429 | if (!$this->entities->valid($entityId)) {
430 | $this->deselectEntity();
431 | return;
432 | }
433 |
434 | Logger::info("Entity selected: {$entityId}");
435 | $this->selectEntity($entityId);
436 | }
437 | }
--------------------------------------------------------------------------------
/src/Scene/LevelLoader.php:
--------------------------------------------------------------------------------
1 |
18 | */
19 | private array $availableLevels = [];
20 |
21 | /**
22 | * @var int
23 | */
24 | private const SERIALIZATION_VERSION = 1;
25 |
26 | public function __construct(
27 | private string $path
28 | )
29 | {
30 | $this->scanDirForLevels();
31 | }
32 |
33 | /**
34 | * Scans the loaders directory for available level files.
35 | */
36 | private function scanDirForLevels() : void
37 | {
38 | $this->availableLevels = [];
39 | $files = scandir($this->path);
40 | foreach ($files as $file) {
41 | if (substr($file, -4) === '.lvl') {
42 | $this->availableLevels[] = substr($file, 0, -4);
43 | }
44 | }
45 | }
46 |
47 | /**
48 | * Returns all available level names
49 | */
50 | public function getAvailableLevels() : array
51 | {
52 | return $this->availableLevels;
53 | }
54 |
55 | /**
56 | * Returns true if the given level exists.
57 | */
58 | public function exists(string $levelName) : bool
59 | {
60 | return file_exists($this->fullPath($levelName));
61 | }
62 |
63 | /**
64 | * Returns the full path for the given level name.
65 | */
66 | public function fullPath(string $levelName) : string
67 | {
68 | return $this->path . '/' . $levelName . '.lvl';
69 | }
70 |
71 | /**
72 | * Returns level loader options for the given level name.
73 | * Will throw an exception if the level has not be found yet.
74 | */
75 | public function createOptions(string $levelName) : LevelLoaderOptions
76 | {
77 | $options = new LevelLoaderOptions($this->fullPath($levelName));
78 | return $options;
79 | }
80 |
81 | /**
82 | * Deserializes the given level file into the given registry.
83 | */
84 | public function deserialize(EntitiesInterface $entities, LevelLoaderOptions $options) : LevelData
85 | {
86 | if (!file_exists($options->levelFilePath) || !is_readable($options->levelFilePath)) {
87 | throw new \Exception('Level file could not be found or is not readable: ' . $options->levelFilePath);
88 | }
89 |
90 | $buffer = file_get_contents($options->levelFilePath);
91 | if (!$buffer = gzdecode($buffer)) {
92 | throw new \Exception('Could not decode level state :(');
93 | }
94 |
95 | $levelData = json_decode($buffer, true);
96 |
97 | if ($levelData['version'] !== static::SERIALIZATION_VERSION) {
98 | throw new \Exception('Level file version mismatch, expected ' . static::SERIALIZATION_VERSION . ' but got ' . $levelData['version']);
99 | }
100 |
101 | if (!$entities instanceof EntityRegisty) {
102 | throw new \Exception('Only EntityRegistry instances are supported for serialization.');
103 | }
104 |
105 | if (!isset($levelData['entities']) || !isset($levelData['level'])) {
106 | throw new \Exception('Level file is corrupt, missing entities or level data.');
107 | }
108 |
109 | $entities->deserialize($levelData['entities']);
110 |
111 | // deserialize level data
112 | $level = unserialize($levelData['level']);
113 | if (!$level instanceof LevelData) {
114 | throw new \Exception('Could not deserialize level data.');
115 | }
116 |
117 | return $level;
118 | }
119 |
120 | /**
121 | * Serializes the given registry into the given level file.
122 | */
123 | public function serialize(EntitiesInterface $entities, LevelData $level, LevelLoaderOptions $options) : void
124 | {
125 | if (!$entities instanceof EntityRegisty) {
126 | throw new \Exception('Only EntityRegistry instances are supported for serialization.');
127 | }
128 |
129 | $levelData = [
130 | 'version' => static::SERIALIZATION_VERSION,
131 | 'level' => serialize($level),
132 | 'entities' => $entities->serialize([
133 | $options->serialisationFilterComponent,
134 | Transform::class,
135 | DynamicRenderableModel::class,
136 | ], $options->serialisationFilterComponent),
137 | ];
138 |
139 | $buffer = json_encode($levelData);
140 | if (!$buffer = gzencode($buffer, 9)) {
141 | throw new \Exception('Could not serialize and compress registry...');
142 | }
143 |
144 | file_put_contents($options->levelFilePath, $buffer);
145 | }
146 | }
147 |
--------------------------------------------------------------------------------
/src/Scene/LevelLoaderOptions.php:
--------------------------------------------------------------------------------
1 | level->name);
19 | }
20 |
21 | /**
22 | * Constructor
23 | */
24 | public function __construct(
25 | protected GameContainer $container,
26 | )
27 | {
28 | parent::__construct($container);
29 | }
30 |
31 | /**
32 | * Loads resources required for the scene, prepere base entiteis
33 | * basically prepare anything that is required to be ready before the scene is rendered.
34 | *
35 | * @return void
36 | */
37 | public function load() : void
38 | {
39 | parent::load();
40 | }
41 |
42 | /**
43 | * Updates the scene state
44 | * This is the place where you should update your game state.
45 | *
46 | * @return void
47 | */
48 | public function update() : void
49 | {
50 | parent::update();
51 | }
52 |
53 |
54 | /**
55 | * Renders the scene
56 | * This is the place where you should render your game state.
57 | *
58 | * @param RenderContext $context
59 | */
60 | public function render(RenderContext $context) : void
61 | {
62 | parent::render($context);
63 | }
64 | }
--------------------------------------------------------------------------------
/src/SignalHandler/WindowActionsHandler.php:
--------------------------------------------------------------------------------
1 | key == GLFW_KEY_ESCAPE && $signal->action == GLFW_PRESS) {
20 | $signal->window->setShouldClose(true);
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/System/CameraSystem.php:
--------------------------------------------------------------------------------
1 | setSingleton(new GameCameraComponent);
50 | }
51 |
52 | /**
53 | * Unregisters the system, this is where you can handle any cleanup.
54 | *
55 | * @return void
56 | */
57 | public function unregister(EntitiesInterface $entities) : void
58 | {
59 | parent::unregister($entities);
60 |
61 | $entities->removeSingleton(GameCameraComponent::class);
62 | }
63 |
64 | /**
65 | * Override this method to handle the cursor position in game mode
66 | *
67 | * @param CursorPosSignal $signal
68 | * @return void
69 | */
70 | protected function handleCursorPosVISUGame(EntitiesInterface $entities, CursorPosSignal $signal) : void
71 | {
72 | $gameCamera = $entities->getSingleton(GameCameraComponent::class);
73 |
74 | if ($this->input->isMouseButtonPressed(MouseButton::LEFT)) {
75 | $gameCamera->rotationVelocity->x = $gameCamera->rotationVelocity->x + ($signal->offsetX * $gameCamera->rotationVelocityMouse);
76 | $gameCamera->rotationVelocity->y = $gameCamera->rotationVelocity->y + ($signal->offsetY * $gameCamera->rotationVelocityMouse);
77 | }
78 | }
79 |
80 | /**
81 | * Override this method to handle the scroll wheel in game mode
82 | *
83 | * @param ScrollSignal $signal
84 | * @return void
85 | */
86 | protected function handleScrollVISUGame(EntitiesInterface $entities, ScrollSignal $signal) : void
87 | {
88 | $gameCamera = $entities->getSingleton(GameCameraComponent::class);
89 |
90 | $c = $gameCamera->focusRadius / $gameCamera->focusRadiusMax;
91 | $newRadius = $gameCamera->focusRadius + ($signal->y * $c * $gameCamera->focusRadiusZoomFactor);
92 | $gameCamera->setFocusRadius($newRadius);
93 | }
94 |
95 | /**
96 | * Override this method to update the camera in game mode
97 | *
98 | * @param EntitiesInterface $entities
99 | */
100 | public function updateGameCamera(EntitiesInterface $entities, Camera $camera) : void
101 | {
102 | // skip until we have a heightmap
103 | if (!$entities->hasSingleton(HeightmapComponent::class)) {
104 | return;
105 | }
106 |
107 | $gameCamera = $entities->getSingleton(GameCameraComponent::class);
108 | $heightmap = $entities->getSingleton(HeightmapComponent::class);
109 |
110 | // calulate the focus point velocity update
111 | $c = $gameCamera->focusRadius / $gameCamera->focusRadiusMax;
112 | $speed = Math::lerp($gameCamera->focusPointSpeedClose, $gameCamera->focusPointSpeedFar, $c);
113 |
114 | if ($this->inputContext->actions->isButtonDown('camera_move_forward'))
115 | {
116 | $dir = Math::projectOnPlane($camera->transform->dirForward(), Transform::worldUp());
117 | $dir->normalize();
118 |
119 | $gameCamera->focusPointVelocity = $gameCamera->focusPointVelocity + ($dir * $speed);
120 | }
121 | elseif ($this->inputContext->actions->isButtonDown('camera_move_backward'))
122 | {
123 | $dir = Math::projectOnPlane($camera->transform->dirBackward(), Transform::worldUp());
124 | $dir->normalize();
125 |
126 | $gameCamera->focusPointVelocity = $gameCamera->focusPointVelocity + ($dir * $speed);
127 | }
128 |
129 | if ($this->inputContext->actions->isButtonDown('camera_move_left'))
130 | {
131 | $dir = Math::projectOnPlane($camera->transform->dirLeft(), Transform::worldUp());
132 | $dir->normalize();
133 |
134 | $gameCamera->focusPointVelocity = $gameCamera->focusPointVelocity + ($dir * $speed);
135 | }
136 | elseif ($this->inputContext->actions->isButtonDown('camera_move_right'))
137 | {
138 | $dir = Math::projectOnPlane($camera->transform->dirRight(), Transform::worldUp());
139 | $dir->normalize();
140 |
141 | $gameCamera->focusPointVelocity = $gameCamera->focusPointVelocity + ($dir * $speed);
142 | }
143 |
144 | // update the focus point itself
145 | $gameCamera->focusPoint = $gameCamera->focusPoint + $gameCamera->focusPointVelocity;
146 | $gameCamera->focusPointVelocity = $gameCamera->focusPointVelocity * $gameCamera->focusPointVelocityDamp;
147 |
148 | // y is always the height of the terrain
149 | $gameCamera->focusPoint->y = $heightmap->heightmap->getHeightAt($gameCamera->focusPoint->x, $gameCamera->focusPoint->z);
150 |
151 | // update the cameras rotation in euler angles
152 | $gameCamera->rotation = $gameCamera->rotation + $gameCamera->rotationVelocity;
153 |
154 | // clamp the rotation on the y axis
155 | $gameCamera->rotation->y = Math::clamp($gameCamera->rotation->y, -90.0, 90.0);
156 |
157 | // apply dampening to the rotation
158 | $gameCamera->rotationVelocity = $gameCamera->rotationVelocity * $gameCamera->rotationVelocityDamp;
159 |
160 | // use the eular angles to to rotate the camera in the correct direction
161 | $camera->transform->position = $gameCamera->focusPoint->copy();
162 | $camera->transform->orientation = new Quat;
163 | $camera->transform->orientation->rotate(GLM::radians($gameCamera->rotation->x), Transform::worldUp());
164 | $camera->transform->orientation->rotate(GLM::radians($gameCamera->rotation->y), Transform::worldRight());
165 | $camera->transform->moveBackward($gameCamera->focusRadius);
166 |
167 | // ensure the camera is always above the terrain
168 | $camera->transform->position->y = max(
169 | $camera->transform->position->y,
170 | $heightmap->heightmap->getHeightAt($camera->transform->position->x, $camera->transform->position->z) + 1.0 // min 1.0 above the terrain
171 | );
172 | }
173 | }
174 |
--------------------------------------------------------------------------------
/src/System/HeightmapSystem.php:
--------------------------------------------------------------------------------
1 | $heightGeometryProducers
35 | */
36 | public function __construct(
37 | private GLState $gl,
38 | private Input $input,
39 | private array $heightGeometryProducers
40 | )
41 | {
42 | $this->heightmapRenderer = new GPUHeightmapRenderer($gl, 4096, 4096);
43 | $this->heightmapRenderer->ppu = 4.0;
44 | }
45 |
46 | /**
47 | * Registers the system, this is where you should register all required components.
48 | *
49 | * @return void
50 | */
51 | public function register(EntitiesInterface $entities) : void
52 | {
53 | }
54 |
55 | /**
56 | * Unregisters the system, this is where you can handle any cleanup.
57 | *
58 | * @return void
59 | */
60 | public function unregister(EntitiesInterface $entities) : void
61 | {
62 | $entities->removeSingleton(HeightmapComponent::class);
63 | }
64 |
65 | /**
66 | * Updates handler, this is where the game state should be updated.
67 | *
68 | * @return void
69 | */
70 | public function update(EntitiesInterface $entities) : void
71 | {
72 | if (!$entities->hasSingleton(HeightmapComponent::class)) {
73 | $entities->setSingleton(new HeightmapComponent);
74 | }
75 |
76 | $heightmapComponent = $entities->getSingleton(HeightmapComponent::class);
77 |
78 | if ($heightmapComponent->requiresCapture) {
79 | $this->caputreHeightmap($entities, $heightmapComponent);
80 | $heightmapComponent->requiresCapture = false;
81 | }
82 |
83 | if ($heightmapComponent->enableRaycasting) {
84 | // fetch the current camera (first.. @todo support multiple cameras)
85 | $camera = $entities->first(Camera::class);
86 |
87 | // create a ray from the camera to the cursor position
88 | $cursorPos = $this->input->getNormalizedCursorPosition();
89 | $ray = $camera->getSSRay($this->lastFrameRenderTarget, $cursorPos);
90 |
91 | // cast the ray and update the cursor world position
92 | $heightmapComponent->cursorWorldPosition = $heightmapComponent->heightmap->castRay($ray);
93 | }
94 | }
95 |
96 | /**
97 | * Handles rendering of the scene, here you can attach additional render passes,
98 | * modify the render pipeline or customize rendering related data.
99 | *
100 | * @param RenderContext $context
101 | */
102 | public function render(EntitiesInterface $entities, RenderContext $context) : void
103 | {
104 | $backbuffer = $context->data->get(BackbufferData::class);
105 | $this->lastFrameRenderTarget = $context->resources->getRenderTarget($backbuffer->target);
106 | }
107 |
108 | /**
109 | * Captures the heightmap from the given height geometry producers
110 | *
111 | * @param EntitiesInterface $entities
112 | */
113 | public function caputreHeightmap(EntitiesInterface $entities, HeightmapComponent $component) : void
114 | {
115 | Logger::info('Capturing heightmap...');
116 | $component->heightmap = new Heightmap(new FloatBuffer(), 1, 1, 1.0); // create a dummy heightmap to destroy the old one
117 | $component->heightmap = $this->heightmapRenderer->caputreHeightmap($entities, $this->heightGeometryProducers);
118 | }
119 | }
120 |
--------------------------------------------------------------------------------