├── .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 | ![s](https://user-images.githubusercontent.com/956212/232910366-5393cd05-3e0d-45d7-80d8-2f888c11bda4.gif) 38 | 39 | Model drag n drop 40 | 41 | ![s](https://user-images.githubusercontent.com/956212/232910955-ce1af982-2530-4219-a8c0-4ca891a895e6.gif) 42 | 43 | Simple rendering profiler: 44 | 45 | s 46 | 47 | Some scene 48 | 49 | ![s](https://user-images.githubusercontent.com/956212/222989984-e1b2d431-26de-47f4-a17d-7800e5afb052.jpg) 50 | 51 | Deferred rendering 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 |
s1s2
s3s4
s5
66 | 67 | 68 | Billboards 69 | 70 | ![s](https://user-images.githubusercontent.com/956212/232915647-aab1b5d7-2925-4ccf-8952-a77c26965241.gif) 71 | 72 | 73 | 74 | Pocedural Roads.. (far from done..) 75 | 76 | ![s](https://user-images.githubusercontent.com/956212/232914266-51655bb2-97f5-40de-81e3-576024e87d0d.gif) 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 | --------------------------------------------------------------------------------