Add Movement library integration with comprehensive test environment: include Movement.csproj reference, create LibraryTest scene with player controller, multiple test areas (bunny hop platforms, surf ramps, vertical tower, speed corridor), advanced lighting setup, input mappings for WASD/gamepad movement controls, and DebugHUD integration
246
Docs/LIBRARY_INTEGRATION.md
Normal file
@@ -0,0 +1,246 @@
|
|||||||
|
# EinSoftworks Library Integration
|
||||||
|
|
||||||
|
This document describes how all EinSoftworks utility libraries are integrated into the Voider project.
|
||||||
|
|
||||||
|
## Integrated Libraries
|
||||||
|
|
||||||
|
All six EinSoftworks libraries are fully integrated and working together:
|
||||||
|
|
||||||
|
### ✅ EinSoftworks.Movement
|
||||||
|
- **Location**: `Libraries/movement`
|
||||||
|
- **Usage**: `FirstPersonController` for player movement
|
||||||
|
- **Features**: Bunny hopping, air strafing, crouching, sprinting
|
||||||
|
- **Integration**: TestPlayer.cs extends FirstPersonController
|
||||||
|
|
||||||
|
### ✅ EinSoftworks.Input
|
||||||
|
- **Location**: `Libraries/input`
|
||||||
|
- **Usage**: Input management via InputManager singleton
|
||||||
|
- **Features**: Action-based input, device detection, remapping
|
||||||
|
- **Integration**: Automatic via InputManager.Instance
|
||||||
|
|
||||||
|
### ✅ EinSoftworks.Events
|
||||||
|
- **Location**: `Libraries/events`
|
||||||
|
- **Usage**: Event system for decoupled communication
|
||||||
|
- **Features**: MovementEvents, EventBus, state notifications
|
||||||
|
- **Integration**: TestGameManager subscribes to movement events
|
||||||
|
|
||||||
|
### ✅ EinSoftworks.StateManagement
|
||||||
|
- **Location**: `Libraries/state-management`
|
||||||
|
- **Usage**: Movement state machine (idle, walking, airborne, crouching)
|
||||||
|
- **Features**: State transitions, hierarchical states
|
||||||
|
- **Integration**: Built into CharacterController
|
||||||
|
|
||||||
|
### ✅ EinSoftworks.Camera
|
||||||
|
- **Location**: `Libraries/camera`
|
||||||
|
- **Usage**: First-person camera with mouse look
|
||||||
|
- **Features**: Camera effects, smooth transitions
|
||||||
|
- **Integration**: CameraMount node in FirstPersonController
|
||||||
|
|
||||||
|
### ✅ EinSoftworks.Utilities
|
||||||
|
- **Location**: `Libraries/utilities`
|
||||||
|
- **Usage**: Math and physics helper functions
|
||||||
|
- **Features**: Vector operations, physics calculations
|
||||||
|
- **Integration**: Used internally by movement system
|
||||||
|
|
||||||
|
## Test Scene
|
||||||
|
|
||||||
|
**Location**: `Scenes/Testing/LibraryTest.tscn`
|
||||||
|
|
||||||
|
The test scene demonstrates all libraries working together in a fully functional first-person movement system.
|
||||||
|
|
||||||
|
### Components
|
||||||
|
|
||||||
|
1. **TestPlayer** (FirstPersonController)
|
||||||
|
- Full movement with all advanced mechanics
|
||||||
|
- Real-time UI updates
|
||||||
|
- Event publishing
|
||||||
|
|
||||||
|
2. **TestGameManager**
|
||||||
|
- Event subscription management
|
||||||
|
- Game state coordination
|
||||||
|
- Player reset functionality
|
||||||
|
|
||||||
|
3. **TestUI**
|
||||||
|
- Live stats display
|
||||||
|
- FPS counter
|
||||||
|
- Control instructions
|
||||||
|
|
||||||
|
4. **Environment**
|
||||||
|
- Floor, ramps, platforms
|
||||||
|
- Testing geometry for all movement types
|
||||||
|
|
||||||
|
## Project Configuration
|
||||||
|
|
||||||
|
### Voider.csproj
|
||||||
|
```xml
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\libraries\utilities\Utilities.csproj" />
|
||||||
|
<ProjectReference Include="..\..\libraries\input\Input.csproj" />
|
||||||
|
<ProjectReference Include="..\..\libraries\events\Events.csproj" />
|
||||||
|
<ProjectReference Include="..\..\libraries\state-management\StateManagement.csproj" />
|
||||||
|
<ProjectReference Include="..\..\libraries\camera\Camera.csproj" />
|
||||||
|
<ProjectReference Include="..\..\libraries\movement\Movement.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
```
|
||||||
|
|
||||||
|
### project.godot
|
||||||
|
Input actions configured:
|
||||||
|
- `move_forward` (W)
|
||||||
|
- `move_back` (S)
|
||||||
|
- `move_left` (A)
|
||||||
|
- `move_right` (D)
|
||||||
|
- `jump` (Space)
|
||||||
|
- `crouch` (Ctrl)
|
||||||
|
- `sprint` (Shift)
|
||||||
|
- `walk` (Ctrl)
|
||||||
|
|
||||||
|
Autoload configured:
|
||||||
|
- `EventManager` - Global event management
|
||||||
|
|
||||||
|
## Usage Examples
|
||||||
|
|
||||||
|
### Creating a Player Controller
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
using EinSoftworks.Movement;
|
||||||
|
|
||||||
|
public partial class MyPlayer : FirstPersonController
|
||||||
|
{
|
||||||
|
public override void _Ready()
|
||||||
|
{
|
||||||
|
base._Ready();
|
||||||
|
|
||||||
|
Config = new MovementConfig
|
||||||
|
{
|
||||||
|
MaxSpeed = 320f,
|
||||||
|
EnableBunnyHopping = true
|
||||||
|
};
|
||||||
|
|
||||||
|
SubscribeToStateChanges(OnStateChanged);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnStateChanged(MovementStateChangedEvent evt)
|
||||||
|
{
|
||||||
|
GD.Print($"State: {evt.StateName}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Subscribing to Events
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
using EinSoftworks.Movement;
|
||||||
|
|
||||||
|
public override void _Ready()
|
||||||
|
{
|
||||||
|
MovementEvents.PlayerJumped += OnPlayerJumped;
|
||||||
|
MovementEvents.SpeedChanged += OnSpeedChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnPlayerJumped()
|
||||||
|
{
|
||||||
|
PlayJumpSound();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _ExitTree()
|
||||||
|
{
|
||||||
|
MovementEvents.ClearAllSubscriptions();
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Using Input Manager
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
using EinSoftworks.Input;
|
||||||
|
|
||||||
|
private InputManager _input;
|
||||||
|
|
||||||
|
public override void _Ready()
|
||||||
|
{
|
||||||
|
_input = InputManager.Instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _Process(double delta)
|
||||||
|
{
|
||||||
|
if (_input.IsActionJustPressed("jump"))
|
||||||
|
{
|
||||||
|
Jump();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Build Status
|
||||||
|
|
||||||
|
✅ **Build Successful**
|
||||||
|
```
|
||||||
|
Build succeeded.
|
||||||
|
0 Warning(s)
|
||||||
|
0 Error(s)
|
||||||
|
```
|
||||||
|
|
||||||
|
All libraries compile and integrate without errors.
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
|
||||||
|
To test the library integration:
|
||||||
|
|
||||||
|
1. Open the Voider project in Godot
|
||||||
|
2. Run the scene: `Scenes/Testing/LibraryTest.tscn`
|
||||||
|
3. Test movement mechanics:
|
||||||
|
- Walk around with WASD
|
||||||
|
- Jump with Space
|
||||||
|
- Sprint with Shift
|
||||||
|
- Crouch with Ctrl
|
||||||
|
- Try bunny hopping (jump + strafe)
|
||||||
|
- Test air strafing
|
||||||
|
4. Observe UI updates in real-time
|
||||||
|
5. Check console for event notifications
|
||||||
|
|
||||||
|
## Performance
|
||||||
|
|
||||||
|
Target: 60+ FPS
|
||||||
|
All libraries are optimized for real-time game performance.
|
||||||
|
|
||||||
|
## Future Integration
|
||||||
|
|
||||||
|
These libraries can be used throughout the Voider project:
|
||||||
|
|
||||||
|
- **Player Systems**: Use Movement + Input for all player characters
|
||||||
|
- **Camera Systems**: Use Camera library for different camera modes
|
||||||
|
- **UI Systems**: Use Events for UI updates and notifications
|
||||||
|
- **AI Systems**: Use StateManagement for enemy AI
|
||||||
|
- **Game Systems**: Use Events for game state management
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Build Errors
|
||||||
|
- Ensure all library references are correct in .csproj
|
||||||
|
- Verify all libraries are in `../../libraries/` relative path
|
||||||
|
- Run `dotnet restore` if needed
|
||||||
|
|
||||||
|
### Runtime Errors
|
||||||
|
- Check that EventManager autoload is configured
|
||||||
|
- Verify input actions are defined in project.godot
|
||||||
|
- Ensure all using statements are present in scripts
|
||||||
|
|
||||||
|
### Movement Issues
|
||||||
|
- Verify collision shapes are properly configured
|
||||||
|
- Check that InputManager is available
|
||||||
|
- Ensure CameraNode is set on the controller
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
Each library has comprehensive documentation in its README:
|
||||||
|
- `/libraries/movement/README.md`
|
||||||
|
- `/libraries/input/README.md`
|
||||||
|
- `/libraries/events/README.md`
|
||||||
|
- `/libraries/state-management/README.md`
|
||||||
|
- `/libraries/camera/README.md`
|
||||||
|
- `/libraries/utilities/README.md`
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
For issues or questions about library integration, refer to:
|
||||||
|
1. Individual library READMEs
|
||||||
|
2. Test scene implementation (`Scripts/Testing/`)
|
||||||
|
3. Library planning document (`documentation/planning/UTILITY_PLANNING.md`)
|
||||||
121
LICENSE
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
Creative Commons Legal Code
|
||||||
|
|
||||||
|
CC0 1.0 Universal
|
||||||
|
|
||||||
|
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
|
||||||
|
LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
|
||||||
|
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
|
||||||
|
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
|
||||||
|
REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
|
||||||
|
PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
|
||||||
|
THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
|
||||||
|
HEREUNDER.
|
||||||
|
|
||||||
|
Statement of Purpose
|
||||||
|
|
||||||
|
The laws of most jurisdictions throughout the world automatically confer
|
||||||
|
exclusive Copyright and Related Rights (defined below) upon the creator
|
||||||
|
and subsequent owner(s) (each and all, an "owner") of an original work of
|
||||||
|
authorship and/or a database (each, a "Work").
|
||||||
|
|
||||||
|
Certain owners wish to permanently relinquish those rights to a Work for
|
||||||
|
the purpose of contributing to a commons of creative, cultural and
|
||||||
|
scientific works ("Commons") that the public can reliably and without fear
|
||||||
|
of later claims of infringement build upon, modify, incorporate in other
|
||||||
|
works, reuse and redistribute as freely as possible in any form whatsoever
|
||||||
|
and for any purposes, including without limitation commercial purposes.
|
||||||
|
These owners may contribute to the Commons to promote the ideal of a free
|
||||||
|
culture and the further production of creative, cultural and scientific
|
||||||
|
works, or to gain reputation or greater distribution for their Work in
|
||||||
|
part through the use and efforts of others.
|
||||||
|
|
||||||
|
For these and/or other purposes and motivations, and without any
|
||||||
|
expectation of additional consideration or compensation, the person
|
||||||
|
associating CC0 with a Work (the "Affirmer"), to the extent that he or she
|
||||||
|
is an owner of Copyright and Related Rights in the Work, voluntarily
|
||||||
|
elects to apply CC0 to the Work and publicly distribute the Work under its
|
||||||
|
terms, with knowledge of his or her Copyright and Related Rights in the
|
||||||
|
Work and the meaning and intended legal effect of CC0 on those rights.
|
||||||
|
|
||||||
|
1. Copyright and Related Rights. A Work made available under CC0 may be
|
||||||
|
protected by copyright and related or neighboring rights ("Copyright and
|
||||||
|
Related Rights"). Copyright and Related Rights include, but are not
|
||||||
|
limited to, the following:
|
||||||
|
|
||||||
|
i. the right to reproduce, adapt, distribute, perform, display,
|
||||||
|
communicate, and translate a Work;
|
||||||
|
ii. moral rights retained by the original author(s) and/or performer(s);
|
||||||
|
iii. publicity and privacy rights pertaining to a person's image or
|
||||||
|
likeness depicted in a Work;
|
||||||
|
iv. rights protecting against unfair competition in regards to a Work,
|
||||||
|
subject to the limitations in paragraph 4(a), below;
|
||||||
|
v. rights protecting the extraction, dissemination, use and reuse of data
|
||||||
|
in a Work;
|
||||||
|
vi. database rights (such as those arising under Directive 96/9/EC of the
|
||||||
|
European Parliament and of the Council of 11 March 1996 on the legal
|
||||||
|
protection of databases, and under any national implementation
|
||||||
|
thereof, including any amended or successor version of such
|
||||||
|
directive); and
|
||||||
|
vii. other similar, equivalent or corresponding rights throughout the
|
||||||
|
world based on applicable law or treaty, and any national
|
||||||
|
implementations thereof.
|
||||||
|
|
||||||
|
2. Waiver. To the greatest extent permitted by, but not in contravention
|
||||||
|
of, applicable law, Affirmer hereby overtly, fully, permanently,
|
||||||
|
irrevocably and unconditionally waives, abandons, and surrenders all of
|
||||||
|
Affirmer's Copyright and Related Rights and associated claims and causes
|
||||||
|
of action, whether now known or unknown (including existing as well as
|
||||||
|
future claims and causes of action), in the Work (i) in all territories
|
||||||
|
worldwide, (ii) for the maximum duration provided by applicable law or
|
||||||
|
treaty (including future time extensions), (iii) in any current or future
|
||||||
|
medium and for any number of copies, and (iv) for any purpose whatsoever,
|
||||||
|
including without limitation commercial, advertising or promotional
|
||||||
|
purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
|
||||||
|
member of the public at large and to the detriment of Affirmer's heirs and
|
||||||
|
successors, fully intending that such Waiver shall not be subject to
|
||||||
|
revocation, rescission, cancellation, termination, or any other legal or
|
||||||
|
equitable action to disrupt the quiet enjoyment of the Work by the public
|
||||||
|
as contemplated by Affirmer's express Statement of Purpose.
|
||||||
|
|
||||||
|
3. Public License Fallback. Should any part of the Waiver for any reason
|
||||||
|
be judged legally invalid or ineffective under applicable law, then the
|
||||||
|
Waiver shall be preserved to the maximum extent permitted taking into
|
||||||
|
account Affirmer's express Statement of Purpose. In addition, to the
|
||||||
|
extent the Waiver is so judged Affirmer hereby grants to each affected
|
||||||
|
person a royalty-free, non transferable, non sublicensable, non exclusive,
|
||||||
|
irrevocable and unconditional license to exercise Affirmer's Copyright and
|
||||||
|
Related Rights in the Work (i) in all territories worldwide, (ii) for the
|
||||||
|
maximum duration provided by applicable law or treaty (including future
|
||||||
|
time extensions), (iii) in any current or future medium and for any number
|
||||||
|
of copies, and (iv) for any purpose whatsoever, including without
|
||||||
|
limitation commercial, advertising or promotional purposes (the
|
||||||
|
"License"). The License shall be deemed effective as of the date CC0 was
|
||||||
|
applied by Affirmer to the Work. Should any part of the License for any
|
||||||
|
reason be judged legally invalid or ineffective under applicable law, such
|
||||||
|
partial invalidity or ineffectiveness shall not invalidate the remainder
|
||||||
|
of the License, and in such case Affirmer hereby affirms that he or she
|
||||||
|
will not (i) exercise any of his or her remaining Copyright and Related
|
||||||
|
Rights in the Work or (ii) assert any associated claims and causes of
|
||||||
|
action with respect to the Work, in either case contrary to Affirmer's
|
||||||
|
express Statement of Purpose.
|
||||||
|
|
||||||
|
4. Limitations and Disclaimers.
|
||||||
|
|
||||||
|
a. No trademark or patent rights held by Affirmer are waived, abandoned,
|
||||||
|
surrendered, licensed or otherwise affected by this document.
|
||||||
|
b. Affirmer offers the Work as-is and makes no representations or
|
||||||
|
warranties of any kind concerning the Work, express, implied,
|
||||||
|
statutory or otherwise, including without limitation warranties of
|
||||||
|
title, merchantability, fitness for a particular purpose, non
|
||||||
|
infringement, or the absence of latent or other defects, accuracy, or
|
||||||
|
the present or absence of errors, whether or not discoverable, all to
|
||||||
|
the greatest extent permissible under applicable law.
|
||||||
|
c. Affirmer disclaims responsibility for clearing rights of other persons
|
||||||
|
that may apply to the Work or any use thereof, including without
|
||||||
|
limitation any person's Copyright and Related Rights in the Work.
|
||||||
|
Further, Affirmer disclaims responsibility for obtaining any necessary
|
||||||
|
consents, permissions or other rights required for any use of the
|
||||||
|
Work.
|
||||||
|
d. Affirmer understands and acknowledges that Creative Commons is not a
|
||||||
|
party to this document and has no duty or obligation with respect to
|
||||||
|
this CC0 or use of the Work.
|
||||||
18
Scenes/Player/Player.tscn
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
[gd_scene load_steps=3 format=3 uid="uid://bpyaqm4xwxqk"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://Scripts/Player/Player.cs" id="1_script"]
|
||||||
|
|
||||||
|
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_player"]
|
||||||
|
radius = 0.4
|
||||||
|
height = 1.8
|
||||||
|
|
||||||
|
[node name="Player" type="CharacterBody3D"]
|
||||||
|
script = ExtResource("1_script")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||||
|
shape = SubResource("CapsuleShape3D_player")
|
||||||
|
|
||||||
|
[node name="CameraMount" type="Node3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.6, 0)
|
||||||
|
|
||||||
|
[node name="Camera3D" type="Camera3D" parent="CameraMount"]
|
||||||
65
Scenes/Testing/EnhancedTestMap.md
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
# Enhanced Movement Test Map
|
||||||
|
|
||||||
|
## Design Philosophy
|
||||||
|
|
||||||
|
This test map is specifically designed to test Source Engine-style movement mechanics:
|
||||||
|
- Bunny hopping
|
||||||
|
- Air strafing
|
||||||
|
- Strafe jumping
|
||||||
|
- Surfing
|
||||||
|
- Crouch jumping
|
||||||
|
- Speed preservation
|
||||||
|
|
||||||
|
## Map Sections
|
||||||
|
|
||||||
|
### 1. Central Hub (Spawn)
|
||||||
|
- Large 100x100m floor
|
||||||
|
- Clear sightlines to all test areas
|
||||||
|
- Color-coded sections for easy navigation
|
||||||
|
|
||||||
|
### 2. Strafe Jump Course (Front-Right)
|
||||||
|
- Series of platforms requiring air strafing
|
||||||
|
- Progressive difficulty (gaps get wider)
|
||||||
|
- Tests momentum preservation and air control
|
||||||
|
|
||||||
|
### 3. Vertical Tower (Back-Left)
|
||||||
|
- Multi-level structure
|
||||||
|
- Tests jump height and climbing
|
||||||
|
- Crouch-jump challenges
|
||||||
|
|
||||||
|
### 4. Speed Corridor (Right)
|
||||||
|
- 50m straight corridor
|
||||||
|
- Distance markers every 10m
|
||||||
|
- Tests acceleration and max speed
|
||||||
|
|
||||||
|
### 5. Surf Ramps (Left)
|
||||||
|
- Multiple angled surfaces
|
||||||
|
- Tests surfing mechanics
|
||||||
|
- Speed gain/loss on slopes
|
||||||
|
|
||||||
|
### 6. Bunny Hop Track (Back)
|
||||||
|
- Flat area with markers
|
||||||
|
- Tests consecutive jumps
|
||||||
|
- Speed preservation measurement
|
||||||
|
|
||||||
|
### 7. Obstacle Course (Front-Left)
|
||||||
|
- Mixed challenges
|
||||||
|
- Stairs, walls, gaps, ramps
|
||||||
|
- Real-world movement scenarios
|
||||||
|
|
||||||
|
## Color Coding
|
||||||
|
|
||||||
|
- **Blue (Cyan with glow)**: Jump targets/platforms
|
||||||
|
- **Orange**: Ramps and slopes
|
||||||
|
- **Brown**: Stairs and steps
|
||||||
|
- **Red**: Walls and boundaries
|
||||||
|
- **Dark Gray**: Main floor
|
||||||
|
- **Green**: Speed markers (to be added)
|
||||||
|
|
||||||
|
## Recommended Additions
|
||||||
|
|
||||||
|
1. **Distance markers** - Visual indicators every 5-10m
|
||||||
|
2. **Height markers** - Show platform heights
|
||||||
|
3. **Speed zones** - Areas that show your speed
|
||||||
|
4. **Checkpoints** - For timing runs
|
||||||
|
5. **Respawn points** - Quick return to sections
|
||||||
@@ -1,6 +1,386 @@
|
|||||||
[gd_scene load_steps=2 format=3 uid="uid://c8yv7qm3xwxqj"]
|
[gd_scene load_steps=30 format=3 uid="uid://c8yv7qm3xwxqj"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://Scripts/Testing/LibraryTest.cs" id="1_library_test"]
|
[ext_resource type="Script" uid="uid://dc5vhsqbhnpea" path="res://Scripts/Testing/TestGameManager.cs" id="1_test_manager"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://d2xg4ujj8ho6p" path="res://addons/kenney_prototype_textures/dark/texture_09.png" id="2_cr4a3"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bpyaqm4xwxqk" path="res://Scenes/Player/Player.tscn" id="2_player"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cx3oppvfp20t" path="res://Scenes/UI/DebugHUD.tscn" id="3_debug_hud"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cpm5xlowyxqjj" path="res://addons/kenney_prototype_textures/orange/texture_05.png" id="3_x2nju"]
|
||||||
|
|
||||||
[node name="LibraryTest" type="Node"]
|
[sub_resource type="Environment" id="Environment_1"]
|
||||||
script = ExtResource("1_library_test")
|
background_mode = 1
|
||||||
|
background_color = Color(0.15, 0.18, 0.22, 1)
|
||||||
|
ambient_light_source = 2
|
||||||
|
ambient_light_color = Color(0.8, 0.85, 1, 1)
|
||||||
|
ambient_light_energy = 0.4
|
||||||
|
tonemap_mode = 2
|
||||||
|
tonemap_exposure = 1.3
|
||||||
|
ssao_enabled = true
|
||||||
|
ssao_radius = 1.5
|
||||||
|
glow_enabled = true
|
||||||
|
glow_strength = 1.2
|
||||||
|
glow_bloom = 0.3
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_floor"]
|
||||||
|
size = Vector3(200, 2, 200)
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_floor"]
|
||||||
|
lightmap_size_hint = Vector2i(2018, 1048)
|
||||||
|
uv2_padding = 9.38
|
||||||
|
size = Vector3(200, 2, 200)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_x2nju"]
|
||||||
|
albedo_texture = ExtResource("2_cr4a3")
|
||||||
|
metallic = 0.4
|
||||||
|
roughness = 0.6
|
||||||
|
uv1_scale = Vector3(200, 200, 200)
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_platform"]
|
||||||
|
size = Vector3(6, 1, 6)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ocbyc"]
|
||||||
|
albedo_texture = ExtResource("3_x2nju")
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_platform"]
|
||||||
|
size = Vector3(6, 1, 6)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_r1pjp"]
|
||||||
|
albedo_texture = ExtResource("3_x2nju")
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_platform"]
|
||||||
|
albedo_color = Color(0.1, 0.6, 0.9, 1)
|
||||||
|
albedo_texture = ExtResource("3_x2nju")
|
||||||
|
metallic = 0.5
|
||||||
|
roughness = 0.4
|
||||||
|
emission_enabled = true
|
||||||
|
emission = Color(0.05, 0.3, 0.5, 1)
|
||||||
|
emission_energy_multiplier = 0.5
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_i8e4c"]
|
||||||
|
albedo_texture = ExtResource("3_x2nju")
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xwclk"]
|
||||||
|
albedo_texture = ExtResource("3_x2nju")
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_eg5h4"]
|
||||||
|
albedo_texture = ExtResource("3_x2nju")
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_ramp"]
|
||||||
|
size = Vector3(12, 1, 25)
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_ramp"]
|
||||||
|
size = Vector3(12, 1, 25)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ramp"]
|
||||||
|
albedo_color = Color(0.9, 0.5, 0.2, 1)
|
||||||
|
metallic = 0.2
|
||||||
|
roughness = 0.7
|
||||||
|
emission_enabled = true
|
||||||
|
emission = Color(0.3, 0.15, 0.05, 1)
|
||||||
|
emission_energy_multiplier = 0.2
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_step"]
|
||||||
|
size = Vector3(8, 0.5, 8)
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_step"]
|
||||||
|
size = Vector3(8, 0.5, 8)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_step"]
|
||||||
|
albedo_color = Color(0.6, 0.4, 0.2, 1)
|
||||||
|
metallic = 0.1
|
||||||
|
roughness = 0.9
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_wall"]
|
||||||
|
size = Vector3(2, 5, 2)
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_wall"]
|
||||||
|
size = Vector3(2, 5, 2)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_wall"]
|
||||||
|
albedo_color = Color(0.8, 0.2, 0.2, 1)
|
||||||
|
metallic = 0.3
|
||||||
|
roughness = 0.8
|
||||||
|
emission_enabled = true
|
||||||
|
emission = Color(0.3, 0.05, 0.05, 1)
|
||||||
|
emission_energy_multiplier = 0.3
|
||||||
|
|
||||||
|
[sub_resource type="CylinderShape3D" id="CylinderShape3D_pillar"]
|
||||||
|
height = 10.0
|
||||||
|
radius = 1.5
|
||||||
|
|
||||||
|
[sub_resource type="CylinderMesh" id="CylinderMesh_pillar"]
|
||||||
|
top_radius = 1.5
|
||||||
|
bottom_radius = 1.5
|
||||||
|
height = 10.0
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_pillar"]
|
||||||
|
albedo_color = Color(0.3, 0.8, 0.4, 1)
|
||||||
|
metallic = 0.6
|
||||||
|
roughness = 0.3
|
||||||
|
emission_enabled = true
|
||||||
|
emission = Color(0.1, 0.3, 0.15, 1)
|
||||||
|
emission_energy_multiplier = 0.4
|
||||||
|
|
||||||
|
[node name="LibraryTest" type="Node3D"]
|
||||||
|
|
||||||
|
[node name="GameManager" type="Node" parent="."]
|
||||||
|
script = ExtResource("1_test_manager")
|
||||||
|
|
||||||
|
[node name="Environment" type="Node3D" parent="."]
|
||||||
|
|
||||||
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="Environment"]
|
||||||
|
environment = SubResource("Environment_1")
|
||||||
|
|
||||||
|
[node name="DirectionalLight_Main" type="DirectionalLight3D" parent="Environment"]
|
||||||
|
transform = Transform3D(0.866025, -0.5, 0, 0.25, 0.433013, 0.866025, -0.433013, -0.75, 0.5, 0, 20, 0)
|
||||||
|
light_color = Color(1, 0.95, 0.85, 1)
|
||||||
|
light_energy = 1.5
|
||||||
|
shadow_enabled = true
|
||||||
|
shadow_bias = 0.03
|
||||||
|
shadow_blur = 2.0
|
||||||
|
|
||||||
|
[node name="DirectionalLight_Fill" type="DirectionalLight3D" parent="Environment"]
|
||||||
|
transform = Transform3D(-0.5, -0.866025, 0, -0.433013, 0.25, 0.866025, -0.75, 0.433013, -0.5, 0, 15, 0)
|
||||||
|
light_color = Color(0.6, 0.7, 1, 1)
|
||||||
|
light_energy = 0.3
|
||||||
|
|
||||||
|
[node name="OmniLight_Center" type="OmniLight3D" parent="Environment"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 10, 0)
|
||||||
|
light_energy = 3.0
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 50.0
|
||||||
|
|
||||||
|
[node name="OmniLight_North" type="OmniLight3D" parent="Environment"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8, -40)
|
||||||
|
light_color = Color(0.3, 0.5, 1, 1)
|
||||||
|
light_energy = 4.0
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 35.0
|
||||||
|
|
||||||
|
[node name="OmniLight_South" type="OmniLight3D" parent="Environment"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8, 40)
|
||||||
|
light_color = Color(1, 0.5, 0.3, 1)
|
||||||
|
light_energy = 4.0
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 35.0
|
||||||
|
|
||||||
|
[node name="OmniLight_East" type="OmniLight3D" parent="Environment"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 40, 8, 0)
|
||||||
|
light_color = Color(0.5, 1, 0.3, 1)
|
||||||
|
light_energy = 4.0
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 35.0
|
||||||
|
|
||||||
|
[node name="OmniLight_West" type="OmniLight3D" parent="Environment"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -40, 8, 0)
|
||||||
|
light_color = Color(1, 0.3, 0.8, 1)
|
||||||
|
light_energy = 4.0
|
||||||
|
shadow_enabled = true
|
||||||
|
omni_range = 35.0
|
||||||
|
|
||||||
|
[node name="Geometry" type="Node3D" parent="."]
|
||||||
|
|
||||||
|
[node name="MainFloor" type="StaticBody3D" parent="Geometry"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0)
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Geometry/MainFloor"]
|
||||||
|
shape = SubResource("BoxShape3D_floor")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Geometry/MainFloor"]
|
||||||
|
mesh = SubResource("BoxMesh_floor")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_x2nju")
|
||||||
|
|
||||||
|
[node name="BunnyHopCourse" type="Node3D" parent="Geometry"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -50, 0, 0)
|
||||||
|
|
||||||
|
[node name="Platform1" type="StaticBody3D" parent="Geometry/BunnyHopCourse"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Geometry/BunnyHopCourse/Platform1"]
|
||||||
|
shape = SubResource("BoxShape3D_platform")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Geometry/BunnyHopCourse/Platform1"]
|
||||||
|
material_override = SubResource("StandardMaterial3D_ocbyc")
|
||||||
|
mesh = SubResource("BoxMesh_platform")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_x2nju")
|
||||||
|
|
||||||
|
[node name="Platform2" type="StaticBody3D" parent="Geometry/BunnyHopCourse"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, -10)
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Geometry/BunnyHopCourse/Platform2"]
|
||||||
|
shape = SubResource("BoxShape3D_platform")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Geometry/BunnyHopCourse/Platform2"]
|
||||||
|
material_override = SubResource("StandardMaterial3D_r1pjp")
|
||||||
|
mesh = SubResource("BoxMesh_platform")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_platform")
|
||||||
|
|
||||||
|
[node name="Platform3" type="StaticBody3D" parent="Geometry/BunnyHopCourse"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, -20)
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Geometry/BunnyHopCourse/Platform3"]
|
||||||
|
shape = SubResource("BoxShape3D_platform")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Geometry/BunnyHopCourse/Platform3"]
|
||||||
|
material_override = SubResource("StandardMaterial3D_i8e4c")
|
||||||
|
mesh = SubResource("BoxMesh_platform")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_platform")
|
||||||
|
|
||||||
|
[node name="Platform4" type="StaticBody3D" parent="Geometry/BunnyHopCourse"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, -32)
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Geometry/BunnyHopCourse/Platform4"]
|
||||||
|
shape = SubResource("BoxShape3D_platform")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Geometry/BunnyHopCourse/Platform4"]
|
||||||
|
material_override = SubResource("StandardMaterial3D_xwclk")
|
||||||
|
mesh = SubResource("BoxMesh_platform")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_platform")
|
||||||
|
|
||||||
|
[node name="Platform5" type="StaticBody3D" parent="Geometry/BunnyHopCourse"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, -46)
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Geometry/BunnyHopCourse/Platform5"]
|
||||||
|
shape = SubResource("BoxShape3D_platform")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Geometry/BunnyHopCourse/Platform5"]
|
||||||
|
material_override = SubResource("StandardMaterial3D_eg5h4")
|
||||||
|
mesh = SubResource("BoxMesh_platform")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_platform")
|
||||||
|
|
||||||
|
[node name="SurfRamps" type="Node3D" parent="Geometry"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 50, 0, 0)
|
||||||
|
|
||||||
|
[node name="Ramp1" type="StaticBody3D" parent="Geometry/SurfRamps"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 0.866025, 0.5, 0, -0.5, 0.866025, 0, 5, 0)
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Geometry/SurfRamps/Ramp1"]
|
||||||
|
shape = SubResource("BoxShape3D_ramp")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Geometry/SurfRamps/Ramp1"]
|
||||||
|
mesh = SubResource("BoxMesh_ramp")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_ramp")
|
||||||
|
|
||||||
|
[node name="Ramp2" type="StaticBody3D" parent="Geometry/SurfRamps"]
|
||||||
|
transform = Transform3D(-1, 0, 0, 0, 0.866025, 0.5, 0, 0.5, -0.866025, 0, 5, -30)
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Geometry/SurfRamps/Ramp2"]
|
||||||
|
shape = SubResource("BoxShape3D_ramp")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Geometry/SurfRamps/Ramp2"]
|
||||||
|
mesh = SubResource("BoxMesh_ramp")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_ramp")
|
||||||
|
|
||||||
|
[node name="VerticalTower" type="Node3D" parent="Geometry"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -60)
|
||||||
|
|
||||||
|
[node name="Level1" type="StaticBody3D" parent="Geometry/VerticalTower"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Geometry/VerticalTower/Level1"]
|
||||||
|
shape = SubResource("BoxShape3D_step")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Geometry/VerticalTower/Level1"]
|
||||||
|
mesh = SubResource("BoxMesh_step")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_step")
|
||||||
|
|
||||||
|
[node name="Level2" type="StaticBody3D" parent="Geometry/VerticalTower"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0)
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Geometry/VerticalTower/Level2"]
|
||||||
|
shape = SubResource("BoxShape3D_step")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Geometry/VerticalTower/Level2"]
|
||||||
|
mesh = SubResource("BoxMesh_step")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_step")
|
||||||
|
|
||||||
|
[node name="Level3" type="StaticBody3D" parent="Geometry/VerticalTower"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, 0)
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Geometry/VerticalTower/Level3"]
|
||||||
|
shape = SubResource("BoxShape3D_step")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Geometry/VerticalTower/Level3"]
|
||||||
|
mesh = SubResource("BoxMesh_step")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_step")
|
||||||
|
|
||||||
|
[node name="Level4" type="StaticBody3D" parent="Geometry/VerticalTower"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0)
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Geometry/VerticalTower/Level4"]
|
||||||
|
shape = SubResource("BoxShape3D_step")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Geometry/VerticalTower/Level4"]
|
||||||
|
mesh = SubResource("BoxMesh_step")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_step")
|
||||||
|
|
||||||
|
[node name="SpeedCorridor" type="Node3D" parent="Geometry"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 60)
|
||||||
|
|
||||||
|
[node name="WallLeft" type="StaticBody3D" parent="Geometry/SpeedCorridor"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8, 2.5, 0)
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Geometry/SpeedCorridor/WallLeft"]
|
||||||
|
shape = SubResource("BoxShape3D_wall")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Geometry/SpeedCorridor/WallLeft"]
|
||||||
|
mesh = SubResource("BoxMesh_wall")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_wall")
|
||||||
|
|
||||||
|
[node name="WallRight" type="StaticBody3D" parent="Geometry/SpeedCorridor"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 2.5, 0)
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Geometry/SpeedCorridor/WallRight"]
|
||||||
|
shape = SubResource("BoxShape3D_wall")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Geometry/SpeedCorridor/WallRight"]
|
||||||
|
mesh = SubResource("BoxMesh_wall")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_wall")
|
||||||
|
|
||||||
|
[node name="Pillars" type="Node3D" parent="Geometry"]
|
||||||
|
|
||||||
|
[node name="Pillar1" type="StaticBody3D" parent="Geometry/Pillars"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30, 5, -30)
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Geometry/Pillars/Pillar1"]
|
||||||
|
shape = SubResource("CylinderShape3D_pillar")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Geometry/Pillars/Pillar1"]
|
||||||
|
mesh = SubResource("CylinderMesh_pillar")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_pillar")
|
||||||
|
|
||||||
|
[node name="Pillar2" type="StaticBody3D" parent="Geometry/Pillars"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 5, -30)
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Geometry/Pillars/Pillar2"]
|
||||||
|
shape = SubResource("CylinderShape3D_pillar")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Geometry/Pillars/Pillar2"]
|
||||||
|
mesh = SubResource("CylinderMesh_pillar")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_pillar")
|
||||||
|
|
||||||
|
[node name="Pillar3" type="StaticBody3D" parent="Geometry/Pillars"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30, 5, 30)
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Geometry/Pillars/Pillar3"]
|
||||||
|
shape = SubResource("CylinderShape3D_pillar")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Geometry/Pillars/Pillar3"]
|
||||||
|
mesh = SubResource("CylinderMesh_pillar")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_pillar")
|
||||||
|
|
||||||
|
[node name="Pillar4" type="StaticBody3D" parent="Geometry/Pillars"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 5, 30)
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Geometry/Pillars/Pillar4"]
|
||||||
|
shape = SubResource("CylinderShape3D_pillar")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Geometry/Pillars/Pillar4"]
|
||||||
|
mesh = SubResource("CylinderMesh_pillar")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_pillar")
|
||||||
|
|
||||||
|
[node name="Player" parent="." instance=ExtResource("2_player")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0)
|
||||||
|
|
||||||
|
[node name="UI" type="CanvasLayer" parent="."]
|
||||||
|
|
||||||
|
[node name="DebugHUD" parent="UI" instance=ExtResource("3_debug_hud")]
|
||||||
|
|||||||
156
Scenes/Testing/README.md
Normal file
@@ -0,0 +1,156 @@
|
|||||||
|
# Library Integration Test Scene
|
||||||
|
|
||||||
|
This test scene demonstrates all EinSoftworks utility libraries working together in a single integrated environment.
|
||||||
|
|
||||||
|
## Libraries Tested
|
||||||
|
|
||||||
|
- ✅ **EinSoftworks.Movement** - First-person character controller with bunny hopping and air strafing
|
||||||
|
- ✅ **EinSoftworks.Input** - Input management and action handling
|
||||||
|
- ✅ **EinSoftworks.Events** - Event system for state changes and notifications
|
||||||
|
- ✅ **EinSoftworks.StateManagement** - Movement state machine (idle, walking, airborne, crouching)
|
||||||
|
- ✅ **EinSoftworks.Camera** - First-person camera with mouse look
|
||||||
|
- ✅ **EinSoftworks.Utilities** - Math and physics helpers
|
||||||
|
|
||||||
|
## Reusable Scene Files
|
||||||
|
|
||||||
|
### TestPlayer.tscn
|
||||||
|
A reusable first-person player character scene that can be instantiated in any level.
|
||||||
|
|
||||||
|
**Features:**
|
||||||
|
- Full movement system with advanced mechanics (bunny hopping, air strafing, crouching)
|
||||||
|
- Integrated camera with smooth crouch transitions
|
||||||
|
- Gamepad and keyboard/mouse support
|
||||||
|
- Optional UI integration (works standalone or with TestUI)
|
||||||
|
|
||||||
|
**Usage:**
|
||||||
|
```gdscript
|
||||||
|
# Instance the player scene
|
||||||
|
var player = preload("res://Scenes/Testing/TestPlayer.tscn").instantiate()
|
||||||
|
add_child(player)
|
||||||
|
player.position = Vector3(0, 2, 0)
|
||||||
|
|
||||||
|
# Optionally connect UI labels
|
||||||
|
player.SpeedVal = $UI/TestUI/StatsPanel/VBoxContainerValues/SpeedVal
|
||||||
|
player.StateVal = $UI/TestUI/StatsPanel/VBoxContainerValues/StateVal
|
||||||
|
# etc...
|
||||||
|
```
|
||||||
|
|
||||||
|
### TestUI.tscn
|
||||||
|
A reusable debug UI overlay showing real-time movement statistics.
|
||||||
|
|
||||||
|
**Features:**
|
||||||
|
- Stats panel with speed, state, position, and velocity
|
||||||
|
- Clean, non-intrusive bottom-left placement
|
||||||
|
- Automatically updates when connected to TestPlayer
|
||||||
|
|
||||||
|
**Usage:**
|
||||||
|
```gdscript
|
||||||
|
# Instance the UI scene
|
||||||
|
var ui_layer = CanvasLayer.new()
|
||||||
|
add_child(ui_layer)
|
||||||
|
var test_ui = preload("res://Scenes/Testing/TestUI.tscn").instantiate()
|
||||||
|
ui_layer.add_child(test_ui)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Scene Components
|
||||||
|
|
||||||
|
### LibraryTest.tscn
|
||||||
|
The main integration test scene demonstrating all libraries working together.
|
||||||
|
|
||||||
|
**Components:**
|
||||||
|
- TestPlayer instance with full movement capabilities
|
||||||
|
- TestUI instance showing real-time stats
|
||||||
|
- TestGameManager for event handling and player reset
|
||||||
|
- Test environment (floor, ramp, platforms, walls)
|
||||||
|
|
||||||
|
### TestGameManager
|
||||||
|
- Manages game state and event subscriptions
|
||||||
|
- Listens to movement events
|
||||||
|
- Provides player reset functionality (Home key)
|
||||||
|
|
||||||
|
### Environment
|
||||||
|
- Large floor for movement testing
|
||||||
|
- Ramp for testing slope movement and surfing
|
||||||
|
- Multiple platforms for jump testing
|
||||||
|
- Wall boundaries
|
||||||
|
|
||||||
|
## Controls
|
||||||
|
|
||||||
|
| Key | Action |
|
||||||
|
|-----|--------|
|
||||||
|
| W/A/S/D | Move forward/left/back/right |
|
||||||
|
| Space | Jump |
|
||||||
|
| Shift | Sprint |
|
||||||
|
| Ctrl | Crouch |
|
||||||
|
| Mouse | Look around |
|
||||||
|
| ESC | Toggle mouse capture |
|
||||||
|
| Home | Reset player position |
|
||||||
|
|
||||||
|
## Testing Features
|
||||||
|
|
||||||
|
### Movement Mechanics
|
||||||
|
1. **Basic Movement**: Walk around using WASD
|
||||||
|
2. **Sprinting**: Hold Shift while moving for increased speed
|
||||||
|
3. **Crouching**: Hold Ctrl to crouch (reduces speed and height)
|
||||||
|
4. **Jumping**: Press Space to jump
|
||||||
|
5. **Bunny Hopping**: Jump repeatedly while strafing to gain speed
|
||||||
|
6. **Air Strafing**: Strafe left/right while in air and turn mouse to gain speed
|
||||||
|
7. **Surfing**: Run up the ramp and maintain speed on the slope
|
||||||
|
|
||||||
|
### State Management
|
||||||
|
Watch the State label change as you:
|
||||||
|
- Stand still (Idle)
|
||||||
|
- Move (Walking)
|
||||||
|
- Jump (Airborne)
|
||||||
|
- Crouch (Crouching)
|
||||||
|
|
||||||
|
### Event System
|
||||||
|
Check the console output for event notifications:
|
||||||
|
- Movement state changes
|
||||||
|
- Jump events
|
||||||
|
- Speed change events
|
||||||
|
|
||||||
|
## Expected Behavior
|
||||||
|
|
||||||
|
1. **Smooth Movement**: Character should accelerate and decelerate smoothly
|
||||||
|
2. **Air Control**: Should be able to change direction slightly while airborne
|
||||||
|
3. **Speed Preservation**: Speed should be maintained between jumps (bunny hopping)
|
||||||
|
4. **State Transitions**: States should change smoothly without glitches
|
||||||
|
5. **UI Updates**: All UI elements should update in real-time
|
||||||
|
6. **Event Flow**: Console should show event notifications
|
||||||
|
|
||||||
|
## Performance
|
||||||
|
|
||||||
|
Target: 60+ FPS on modern hardware
|
||||||
|
The FPS counter in the top-right shows current performance.
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Mouse Not Captured
|
||||||
|
- Press ESC to toggle mouse capture mode
|
||||||
|
- Mouse must be captured for camera look to work
|
||||||
|
|
||||||
|
### Character Not Moving
|
||||||
|
- Verify input actions are defined in project.godot
|
||||||
|
- Check console for any error messages
|
||||||
|
- Ensure all libraries are properly referenced
|
||||||
|
|
||||||
|
### No UI Updates
|
||||||
|
- Check that UI labels are properly connected to TestPlayer
|
||||||
|
- Verify TestUI script is attached to the UI Control node
|
||||||
|
|
||||||
|
### Events Not Firing
|
||||||
|
- Check console output for event messages
|
||||||
|
- Verify EventManager autoload is configured
|
||||||
|
- Ensure event subscriptions in TestGameManager._Ready()
|
||||||
|
|
||||||
|
## Development Notes
|
||||||
|
|
||||||
|
This scene serves as both a test environment and a reference implementation for integrating all EinSoftworks libraries. You can use this as a template for your own game scenes.
|
||||||
|
|
||||||
|
The scene demonstrates:
|
||||||
|
- Proper library initialization
|
||||||
|
- Event subscription/unsubscription patterns
|
||||||
|
- UI integration with game systems
|
||||||
|
- State management integration
|
||||||
|
- Input handling best practices
|
||||||
255
Scenes/Testing/TEST_MAP_GUIDE.md
Normal file
@@ -0,0 +1,255 @@
|
|||||||
|
# Library Test Map Guide
|
||||||
|
|
||||||
|
This test map is designed to comprehensively test all movement mechanics from the EinSoftworks.Movement library.
|
||||||
|
|
||||||
|
## Map Layout
|
||||||
|
|
||||||
|
### Spawn Area (Center)
|
||||||
|
- **Location**: (0, 2, 0)
|
||||||
|
- **Purpose**: Starting point with clear view of all test areas
|
||||||
|
- **Features**: Large open floor for basic movement testing
|
||||||
|
|
||||||
|
### Test Areas
|
||||||
|
|
||||||
|
#### 1. Stairs (Right Side - Position: 10, 0, -10)
|
||||||
|
- **Purpose**: Test vertical movement and step climbing
|
||||||
|
- **Features**: 4 steps, each 0.5m high
|
||||||
|
- **Tests**:
|
||||||
|
- Walking up stairs smoothly
|
||||||
|
- Step height handling
|
||||||
|
- Momentum preservation on steps
|
||||||
|
- Crouch movement on stairs
|
||||||
|
|
||||||
|
#### 2. Jump Gap (Left Side - Position: -20, 0, 0)
|
||||||
|
- **Purpose**: Test jump distance and height
|
||||||
|
- **Features**: Two platforms with 12m gap between them
|
||||||
|
- **Tests**:
|
||||||
|
- Basic jump distance (should NOT be able to cross without sprint)
|
||||||
|
- Sprint + jump distance (should be able to cross)
|
||||||
|
- Landing mechanics
|
||||||
|
- Edge detection
|
||||||
|
|
||||||
|
#### 3. Speed Test Corridor (Right Side - Position: 20, 0, 0)
|
||||||
|
- **Purpose**: Test acceleration and max speed
|
||||||
|
- **Features**: 20m long corridor with walls
|
||||||
|
- **Tests**:
|
||||||
|
- Acceleration from standstill
|
||||||
|
- Time to reach max speed
|
||||||
|
- Sprint speed comparison
|
||||||
|
- Friction/deceleration when stopping
|
||||||
|
|
||||||
|
#### 4. Gentle Ramp (Right Front - Position: 15, 2, 0)
|
||||||
|
- **Purpose**: Test slope movement
|
||||||
|
- **Features**: ~30° incline ramp
|
||||||
|
- **Tests**:
|
||||||
|
- Walking up slopes
|
||||||
|
- Sliding down slopes
|
||||||
|
- Speed preservation on slopes
|
||||||
|
- Basic surfing mechanics
|
||||||
|
|
||||||
|
#### 5. Steep Ramp (Left Back - Position: -15, 3, 10)
|
||||||
|
- **Purpose**: Test steep slope handling and surfing
|
||||||
|
- **Features**: 45° incline ramp
|
||||||
|
- **Tests**:
|
||||||
|
- Steep slope climbing
|
||||||
|
- Advanced surfing
|
||||||
|
- Speed gain on steep surfaces
|
||||||
|
- Slope angle limits
|
||||||
|
|
||||||
|
#### 6. Original Platforms (Left Back - Positions: -10, 2, -10 and -10, 4, -20)
|
||||||
|
- **Purpose**: Test vertical jumping and platforming
|
||||||
|
- **Features**: Two platforms at different heights
|
||||||
|
- **Tests**:
|
||||||
|
- Single jump height (2m)
|
||||||
|
- Double platform jumping
|
||||||
|
- Precision landing
|
||||||
|
- Air control
|
||||||
|
|
||||||
|
## Movement Testing Checklist
|
||||||
|
|
||||||
|
### Basic Movement
|
||||||
|
- [ ] Walk forward/back/left/right smoothly
|
||||||
|
- [ ] Diagonal movement works correctly
|
||||||
|
- [ ] Stopping is responsive (friction works)
|
||||||
|
- [ ] Movement speed feels appropriate
|
||||||
|
|
||||||
|
### Sprint
|
||||||
|
- [ ] Sprint increases speed noticeably
|
||||||
|
- [ ] Sprint + jump covers more distance
|
||||||
|
- [ ] Can sprint in all directions
|
||||||
|
- [ ] Sprint speed cap is working
|
||||||
|
|
||||||
|
### Jumping
|
||||||
|
- [ ] Jump height is consistent (~1.5-2m)
|
||||||
|
- [ ] Can jump while moving
|
||||||
|
- [ ] Landing doesn't cause stutter
|
||||||
|
- [ ] Jump cooldown works (if enabled)
|
||||||
|
|
||||||
|
### Crouching
|
||||||
|
- [ ] Crouch reduces height
|
||||||
|
- [ ] Crouch reduces speed
|
||||||
|
- [ ] Can move while crouched
|
||||||
|
- [ ] Can't stand up when blocked
|
||||||
|
|
||||||
|
### Air Control
|
||||||
|
- [ ] Can change direction slightly in air
|
||||||
|
- [ ] Air strafing works
|
||||||
|
- [ ] Momentum is preserved
|
||||||
|
- [ ] Gravity feels natural
|
||||||
|
|
||||||
|
### Stairs
|
||||||
|
- [ ] Can walk up stairs smoothly
|
||||||
|
- [ ] No stuttering on steps
|
||||||
|
- [ ] Can jump up stairs
|
||||||
|
- [ ] Can crouch on stairs
|
||||||
|
|
||||||
|
### Slopes
|
||||||
|
- [ ] Can walk up gentle slopes
|
||||||
|
- [ ] Slides down steep slopes appropriately
|
||||||
|
- [ ] Surfing mechanics work
|
||||||
|
- [ ] Speed changes on slopes feel right
|
||||||
|
|
||||||
|
### Bunny Hopping (if enabled)
|
||||||
|
- [ ] Can chain jumps
|
||||||
|
- [ ] Speed increases with successful hops
|
||||||
|
- [ ] Direction control while hopping
|
||||||
|
- [ ] Speed cap is enforced
|
||||||
|
|
||||||
|
## Recommended Movement Values
|
||||||
|
|
||||||
|
Based on testing, here are suggested value ranges:
|
||||||
|
|
||||||
|
### Speed Settings (m/s)
|
||||||
|
```csharp
|
||||||
|
MaxSpeed = 5f; // Base walking speed
|
||||||
|
MaxSprintSpeed = 8f; // Sprint speed (1.6x walk)
|
||||||
|
MaxWalkSpeed = 3f; // Slow walk
|
||||||
|
MaxCrouchSpeed = 2f; // Crouch speed (0.4x walk)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Acceleration & Friction
|
||||||
|
```csharp
|
||||||
|
Acceleration = 8f; // How fast you reach max speed
|
||||||
|
AirAcceleration = 2f; // Air control strength
|
||||||
|
Friction = 6f; // How fast you stop
|
||||||
|
StopSpeed = 1f; // Speed threshold for friction
|
||||||
|
```
|
||||||
|
|
||||||
|
### Jump & Gravity
|
||||||
|
```csharp
|
||||||
|
JumpVelocity = 5f; // Initial jump speed (gives ~1.5m height)
|
||||||
|
Gravity = 15f; // Downward acceleration
|
||||||
|
```
|
||||||
|
|
||||||
|
## Testing Procedures
|
||||||
|
|
||||||
|
### 1. Basic Movement Test (2 minutes)
|
||||||
|
1. Spawn in center
|
||||||
|
2. Walk in all 8 directions
|
||||||
|
3. Test stopping from full speed
|
||||||
|
4. Try diagonal movement
|
||||||
|
5. **Expected**: Smooth, responsive movement
|
||||||
|
|
||||||
|
### 2. Sprint Test (1 minute)
|
||||||
|
1. Sprint forward in Speed Test Corridor
|
||||||
|
2. Time how long to reach max speed
|
||||||
|
3. Try sprint jumping
|
||||||
|
4. **Expected**: Noticeable speed increase, ~1-2 seconds to max speed
|
||||||
|
|
||||||
|
### 3. Jump Test (3 minutes)
|
||||||
|
1. Jump in place 5 times
|
||||||
|
2. Jump while moving forward
|
||||||
|
3. Try to cross Jump Gap without sprint (should fail)
|
||||||
|
4. Sprint + jump across Jump Gap (should succeed)
|
||||||
|
5. **Expected**: Consistent jump height, gap requires sprint
|
||||||
|
|
||||||
|
### 4. Stairs Test (2 minutes)
|
||||||
|
1. Walk up stairs normally
|
||||||
|
2. Sprint up stairs
|
||||||
|
3. Jump up stairs
|
||||||
|
4. Crouch on stairs
|
||||||
|
5. **Expected**: Smooth climbing, no stuttering
|
||||||
|
|
||||||
|
### 5. Slope Test (3 minutes)
|
||||||
|
1. Walk up Gentle Ramp
|
||||||
|
2. Run down Gentle Ramp
|
||||||
|
3. Try to walk up Steep Ramp
|
||||||
|
4. Surf down Steep Ramp
|
||||||
|
5. **Expected**: Can climb gentle, slides on steep, surfing works
|
||||||
|
|
||||||
|
### 6. Advanced Test (5 minutes)
|
||||||
|
1. Try bunny hopping across main floor
|
||||||
|
2. Test air strafing while jumping
|
||||||
|
3. Try crouch jumping for extra height
|
||||||
|
4. Test edge cases (corners, tight spaces)
|
||||||
|
5. **Expected**: Advanced mechanics work as designed
|
||||||
|
|
||||||
|
## Tuning Guide
|
||||||
|
|
||||||
|
### Movement Feels Too Slow
|
||||||
|
- Increase `MaxSpeed` and `MaxSprintSpeed`
|
||||||
|
- Increase `Acceleration`
|
||||||
|
- Decrease `Friction`
|
||||||
|
|
||||||
|
### Movement Feels Too Fast
|
||||||
|
- Decrease `MaxSpeed` and `MaxSprintSpeed`
|
||||||
|
- Decrease `Acceleration`
|
||||||
|
- Increase `Friction`
|
||||||
|
|
||||||
|
### Can't Climb Stairs
|
||||||
|
- Decrease `StepHeight` in config
|
||||||
|
- Increase `Acceleration`
|
||||||
|
- Check collision shape height
|
||||||
|
|
||||||
|
### Jumps Too High/Low
|
||||||
|
- Adjust `JumpVelocity` (higher = higher jumps)
|
||||||
|
- Adjust `Gravity` (higher = falls faster)
|
||||||
|
- Test with: height = (JumpVelocity²) / (2 * Gravity)
|
||||||
|
|
||||||
|
### Slides Too Much
|
||||||
|
- Increase `Friction`
|
||||||
|
- Decrease `StopSpeed`
|
||||||
|
- Check surface friction values
|
||||||
|
|
||||||
|
### Air Control Issues
|
||||||
|
- Adjust `AirAcceleration` (higher = more control)
|
||||||
|
- Adjust `AirSpeedCap` (limits air speed gain)
|
||||||
|
- Check `AirControl` value
|
||||||
|
|
||||||
|
## Debug Commands
|
||||||
|
|
||||||
|
While testing, these debug outputs are helpful:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
EnableDebugOutput = true; // Shows speed and state in console
|
||||||
|
```
|
||||||
|
|
||||||
|
Watch for:
|
||||||
|
- Speed values (should match expected ranges)
|
||||||
|
- State transitions (idle → walking → airborne)
|
||||||
|
- OnFloor status (true when grounded)
|
||||||
|
|
||||||
|
## Known Issues to Test For
|
||||||
|
|
||||||
|
1. **Stuck on edges**: Can player get stuck on platform edges?
|
||||||
|
2. **Stair stuttering**: Does movement stutter when climbing stairs?
|
||||||
|
3. **Slope sliding**: Does player slide uncontrollably on slopes?
|
||||||
|
4. **Air control**: Can player change direction reasonably in air?
|
||||||
|
5. **Speed capping**: Does bunny hopping break speed limits?
|
||||||
|
6. **Crouch stuck**: Can player get stuck in crouch state?
|
||||||
|
|
||||||
|
## Performance Targets
|
||||||
|
|
||||||
|
- **FPS**: Maintain 60 FPS with debug output enabled
|
||||||
|
- **Input Latency**: Movement should feel instant (<1 frame delay)
|
||||||
|
- **State Transitions**: Should be smooth and immediate
|
||||||
|
- **Physics**: No jittering or stuttering during normal movement
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
|
||||||
|
After testing this map:
|
||||||
|
1. Document any issues found
|
||||||
|
2. Adjust movement values in `TestPlayer.cs`
|
||||||
|
3. Test specific mechanics that felt off
|
||||||
|
4. Create additional test scenarios if needed
|
||||||
|
5. Consider adding visual markers (distance indicators, height markers)
|
||||||
65
Scenes/UI/DebugHUD.tscn
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
[gd_scene load_steps=2 format=3 uid="uid://cx3oppvfp20t"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://Scripts/UI/DebugHUD.cs" id="1_script"]
|
||||||
|
|
||||||
|
[node name="DebugHUD" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
script = ExtResource("1_script")
|
||||||
|
|
||||||
|
[node name="StatsPanel" type="PanelContainer" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 2
|
||||||
|
anchor_top = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
offset_left = 5.0
|
||||||
|
offset_top = -125.0
|
||||||
|
offset_right = 205.0
|
||||||
|
offset_bottom = -5.0
|
||||||
|
grow_vertical = 0
|
||||||
|
|
||||||
|
[node name="VBoxContainerLabels" type="VBoxContainer" parent="StatsPanel"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 0
|
||||||
|
alignment = 1
|
||||||
|
|
||||||
|
[node name="SpeedLabel" type="Label" parent="StatsPanel/VBoxContainerLabels"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = " Speed:"
|
||||||
|
|
||||||
|
[node name="StateLabel" type="Label" parent="StatsPanel/VBoxContainerLabels"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = " State:"
|
||||||
|
|
||||||
|
[node name="PositionLabel" type="Label" parent="StatsPanel/VBoxContainerLabels"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = " Position:"
|
||||||
|
|
||||||
|
[node name="VelocityLabel" type="Label" parent="StatsPanel/VBoxContainerLabels"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = " Velocity:"
|
||||||
|
|
||||||
|
[node name="VBoxContainerValues" type="VBoxContainer" parent="StatsPanel"]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 8
|
||||||
|
alignment = 1
|
||||||
|
|
||||||
|
[node name="SpeedVal" type="Label" parent="StatsPanel/VBoxContainerValues"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "0.0 u/s"
|
||||||
|
|
||||||
|
[node name="StateVal" type="Label" parent="StatsPanel/VBoxContainerValues"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Idle"
|
||||||
|
|
||||||
|
[node name="PositionVal" type="Label" parent="StatsPanel/VBoxContainerValues"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "(0, 0, 0)"
|
||||||
|
|
||||||
|
[node name="VelocityVal" type="Label" parent="StatsPanel/VBoxContainerValues"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "(0, 0, 0)"
|
||||||
216
Scripts/Player/Player.cs
Normal file
@@ -0,0 +1,216 @@
|
|||||||
|
using EinSoftworks.Events;
|
||||||
|
using EinSoftworks.Input;
|
||||||
|
using EinSoftworks.Movement;
|
||||||
|
using Godot;
|
||||||
|
|
||||||
|
namespace Voider.Player;
|
||||||
|
|
||||||
|
public partial class Player : FirstPersonController
|
||||||
|
{
|
||||||
|
[Export]
|
||||||
|
public Label SpeedVal { get; set; }
|
||||||
|
|
||||||
|
[Export]
|
||||||
|
public Label StateVal { get; set; }
|
||||||
|
|
||||||
|
[Export]
|
||||||
|
public Label PositionVal { get; set; }
|
||||||
|
|
||||||
|
[Export]
|
||||||
|
public Label VelocityVal { get; set; }
|
||||||
|
|
||||||
|
private float _lastSpeed = 0f;
|
||||||
|
|
||||||
|
public override void _Ready()
|
||||||
|
{
|
||||||
|
// InputManager is initialized by the library
|
||||||
|
InputManager = InputManager.Instance;
|
||||||
|
|
||||||
|
// Assign CameraNode from scene before calling base._Ready()
|
||||||
|
if (CameraNode == null)
|
||||||
|
{
|
||||||
|
CameraNode = GetNode<Node3D>("CameraMount");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set FOV and camera settings before base._Ready()
|
||||||
|
BaseFov = 75f;
|
||||||
|
MouseSensitivity = 0.35f;
|
||||||
|
ControllerSensitivity = 3.0f;
|
||||||
|
MinPitch = -89f;
|
||||||
|
MaxPitch = 89f;
|
||||||
|
EnableDebugOutput = true;
|
||||||
|
|
||||||
|
base._Ready();
|
||||||
|
|
||||||
|
// Try to find UI labels if they're not already assigned
|
||||||
|
// This allows the scene to work standalone or with external UI
|
||||||
|
if (SpeedVal == null || StateVal == null || PositionVal == null || VelocityVal == null)
|
||||||
|
{
|
||||||
|
// Try to find DebugHUD in the scene tree
|
||||||
|
var ui = GetNodeOrNull<Control>("/root/LibraryTest/UI/DebugHUD");
|
||||||
|
if (ui == null)
|
||||||
|
{
|
||||||
|
ui = GetNodeOrNull<Control>("/root/Main/UI/DebugHUD");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ui != null)
|
||||||
|
{
|
||||||
|
SpeedVal = ui.GetNodeOrNull<Label>("StatsPanel/VBoxContainerValues/SpeedVal");
|
||||||
|
StateVal = ui.GetNodeOrNull<Label>("StatsPanel/VBoxContainerValues/StateVal");
|
||||||
|
PositionVal = ui.GetNodeOrNull<Label>("StatsPanel/VBoxContainerValues/PositionVal");
|
||||||
|
VelocityVal = ui.GetNodeOrNull<Label>("StatsPanel/VBoxContainerValues/VelocityVal");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Config = new MovementConfig
|
||||||
|
{
|
||||||
|
// Base speeds (HL2-style)
|
||||||
|
MaxSpeed = 5f,
|
||||||
|
MaxSprintSpeed = 8f,
|
||||||
|
MaxWalkSpeed = 3f,
|
||||||
|
MaxCrouchSpeed = 2f,
|
||||||
|
Acceleration = 8f,
|
||||||
|
AirAcceleration = 1.5f,
|
||||||
|
AirSpeedCap = 8f,
|
||||||
|
AirControl = 0.3f,
|
||||||
|
Friction = 6f,
|
||||||
|
StopSpeed = 1f,
|
||||||
|
JumpVelocity = 5f,
|
||||||
|
Gravity = 15f,
|
||||||
|
|
||||||
|
// Bunny hopping with momentum preservation
|
||||||
|
EnableBunnyHopping = true,
|
||||||
|
EnableAutoHop = false,
|
||||||
|
BunnyHopSpeedMultiplier = 1.05f,
|
||||||
|
|
||||||
|
// Crouching
|
||||||
|
EnableCrouching = true,
|
||||||
|
CrouchHeight = 0.5f,
|
||||||
|
|
||||||
|
// Titanfall 2-style sliding
|
||||||
|
EnableSliding = true,
|
||||||
|
SlideSpeed = 10f,
|
||||||
|
SlideAcceleration = 15f,
|
||||||
|
SlideFriction = 3f,
|
||||||
|
SlideMinSpeed = 5f,
|
||||||
|
SlideJumpBoost = 1.2f,
|
||||||
|
SlideDuration = 1.2f,
|
||||||
|
|
||||||
|
EnableSurfing = true,
|
||||||
|
};
|
||||||
|
|
||||||
|
MouseSensitivity = 0.35f;
|
||||||
|
EnableDebugOutput = false;
|
||||||
|
|
||||||
|
GD.Print($"InputManager assigned: {InputManager != null}");
|
||||||
|
GD.Print($"CameraNode assigned: {CameraNode != null}");
|
||||||
|
GD.Print($"Config assigned: {Config != null}");
|
||||||
|
|
||||||
|
SubscribeToStateChanges(OnMovementStateChanged);
|
||||||
|
|
||||||
|
MovementEvents.PlayerJumped += OnPlayerJumped;
|
||||||
|
MovementEvents.SpeedChanged += OnSpeedChanged;
|
||||||
|
|
||||||
|
GD.Print("TestPlayer initialized with all libraries!");
|
||||||
|
GD.Print("- Movement: Enabled");
|
||||||
|
GD.Print("- Input: Enabled");
|
||||||
|
GD.Print("- Events: Enabled");
|
||||||
|
GD.Print("- StateManagement: Enabled");
|
||||||
|
GD.Print("- Camera: Enabled");
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _Process(double delta)
|
||||||
|
{
|
||||||
|
base._Process(delta);
|
||||||
|
|
||||||
|
UpdateUI();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateUI()
|
||||||
|
{
|
||||||
|
if (SpeedVal != null)
|
||||||
|
{
|
||||||
|
SpeedVal.Text = $"{CurrentSpeed:F1} u/s ";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (StateVal != null)
|
||||||
|
{
|
||||||
|
string state = "Unknown";
|
||||||
|
// Check crouch first since IsOnFloor() is unreliable when crouched
|
||||||
|
if (IsCrouching)
|
||||||
|
{
|
||||||
|
state = "Crouching";
|
||||||
|
}
|
||||||
|
else if (IsOnFloor())
|
||||||
|
{
|
||||||
|
if (WishDirection.LengthSquared() > 0.01f)
|
||||||
|
state = "Walking";
|
||||||
|
else
|
||||||
|
state = "Idle";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
state = "Airborne";
|
||||||
|
}
|
||||||
|
|
||||||
|
StateVal.Text = $"{state} ";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (PositionVal != null)
|
||||||
|
{
|
||||||
|
PositionVal.Text =
|
||||||
|
$"({GlobalPosition.X:F1}, {GlobalPosition.Y:F1}, {GlobalPosition.Z:F1}) ";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (VelocityVal != null)
|
||||||
|
{
|
||||||
|
VelocityVal.Text = $"({Velocity.X:F1}, {Velocity.Y:F1}, {Velocity.Z:F1}) ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnMovementStateChanged(MovementStateChangedEvent evt)
|
||||||
|
{
|
||||||
|
GD.Print($"[Movement] State changed to: {evt.StateName} (Speed: {evt.Speed:F1})");
|
||||||
|
|
||||||
|
MovementEvents.RaiseStateChanged(evt.StateName);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnPlayerJumped()
|
||||||
|
{
|
||||||
|
GD.Print($"[Event] Player jumped at speed: {CurrentSpeed:F1}");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnSpeedChanged(float speed)
|
||||||
|
{
|
||||||
|
if (Mathf.Abs(speed - _lastSpeed) > 50f)
|
||||||
|
{
|
||||||
|
GD.Print($"[Event] Speed changed significantly: {_lastSpeed:F1} -> {speed:F1}");
|
||||||
|
_lastSpeed = speed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _Input(InputEvent @event)
|
||||||
|
{
|
||||||
|
base._Input(@event);
|
||||||
|
|
||||||
|
if (@event.IsActionPressed("ui_cancel"))
|
||||||
|
{
|
||||||
|
if (Godot.Input.MouseMode == Godot.Input.MouseModeEnum.Captured)
|
||||||
|
{
|
||||||
|
Godot.Input.MouseMode = Godot.Input.MouseModeEnum.Visible;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Godot.Input.MouseMode = Godot.Input.MouseModeEnum.Captured;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _ExitTree()
|
||||||
|
{
|
||||||
|
MovementEvents.PlayerJumped -= OnPlayerJumped;
|
||||||
|
MovementEvents.SpeedChanged -= OnSpeedChanged;
|
||||||
|
|
||||||
|
base._ExitTree();
|
||||||
|
}
|
||||||
|
}
|
||||||
1
Scripts/Player/Player.cs.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://ckqlkvlsfck0d
|
||||||
@@ -264,7 +264,9 @@ public partial class LibraryTest : Node
|
|||||||
// Subscribe to camera events
|
// Subscribe to camera events
|
||||||
_fpCamera.EventBus.Subscribe(evt =>
|
_fpCamera.EventBus.Subscribe(evt =>
|
||||||
{
|
{
|
||||||
GD.Print($" → Camera event: {evt.OldMode} → {evt.NewMode} (Transition: {evt.TransitionTime}s)");
|
GD.Print(
|
||||||
|
$" → Camera event: {evt.OldMode} → {evt.NewMode} (Transition: {evt.TransitionTime}s)"
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
_fpCamera.CameraModeChanged += (oldMode, newMode) =>
|
_fpCamera.CameraModeChanged += (oldMode, newMode) =>
|
||||||
|
|||||||
74
Scripts/Testing/TestGameManager.cs
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
using EinSoftworks.Events;
|
||||||
|
using EinSoftworks.Input;
|
||||||
|
using EinSoftworks.Movement;
|
||||||
|
using Godot;
|
||||||
|
using Voider.Player;
|
||||||
|
|
||||||
|
namespace Voider.Testing;
|
||||||
|
|
||||||
|
public partial class TestGameManager : Node
|
||||||
|
{
|
||||||
|
[Export]
|
||||||
|
public Label InfoLabel { get; set; }
|
||||||
|
|
||||||
|
[Export]
|
||||||
|
public Player.Player Player { get; set; }
|
||||||
|
|
||||||
|
private InputManager _inputManager;
|
||||||
|
private float _gameTime = 0f;
|
||||||
|
|
||||||
|
public override void _Ready()
|
||||||
|
{
|
||||||
|
// InputManager is initialized by the library itself
|
||||||
|
_inputManager = InputManager.Instance;
|
||||||
|
|
||||||
|
MovementEvents.StateChanged += OnStateChanged;
|
||||||
|
MovementEvents.PlayerJumped += OnPlayerJumped;
|
||||||
|
|
||||||
|
if (InfoLabel != null)
|
||||||
|
{
|
||||||
|
InfoLabel.Text =
|
||||||
|
"Library Integration Test\nPress ESC to toggle mouse capture\nWASD to move, Space to jump, Shift to sprint, Ctrl to crouch";
|
||||||
|
}
|
||||||
|
|
||||||
|
GD.Print("=== Library Integration Test Started ===");
|
||||||
|
GD.Print("All EinSoftworks libraries loaded successfully!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _Process(double delta)
|
||||||
|
{
|
||||||
|
_gameTime += (float)delta;
|
||||||
|
|
||||||
|
if (_inputManager != null && _inputManager.IsActionJustPressed("ui_home"))
|
||||||
|
{
|
||||||
|
ResetPlayer();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnStateChanged(string state)
|
||||||
|
{
|
||||||
|
GD.Print($"[GameManager] Movement state: {state}");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnPlayerJumped()
|
||||||
|
{
|
||||||
|
GD.Print($"[GameManager] Player jumped at time: {_gameTime:F2}s");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ResetPlayer()
|
||||||
|
{
|
||||||
|
if (Player != null)
|
||||||
|
{
|
||||||
|
Player.GlobalPosition = new Vector3(0, 2, 0);
|
||||||
|
Player.Velocity = Vector3.Zero;
|
||||||
|
GD.Print("Player reset to spawn position");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _ExitTree()
|
||||||
|
{
|
||||||
|
MovementEvents.StateChanged -= OnStateChanged;
|
||||||
|
MovementEvents.PlayerJumped -= OnPlayerJumped;
|
||||||
|
MovementEvents.ClearAllSubscriptions();
|
||||||
|
}
|
||||||
|
}
|
||||||
1
Scripts/Testing/TestGameManager.cs.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://dc5vhsqbhnpea
|
||||||
16
Scripts/UI/DebugHUD.cs
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
using Godot;
|
||||||
|
|
||||||
|
namespace Voider.UI;
|
||||||
|
|
||||||
|
public partial class DebugHUD : Control
|
||||||
|
{
|
||||||
|
[Export] public Label SpeedVal { get; set; }
|
||||||
|
[Export] public Label StateVal { get; set; }
|
||||||
|
[Export] public Label PositionVal { get; set; }
|
||||||
|
[Export] public Label VelocityVal { get; set; }
|
||||||
|
|
||||||
|
public override void _Ready()
|
||||||
|
{
|
||||||
|
Engine.MaxFps = 120;
|
||||||
|
}
|
||||||
|
}
|
||||||
1
Scripts/UI/DebugHUD.cs.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://caa7p7sqjhaw0
|
||||||
@@ -12,5 +12,6 @@
|
|||||||
<ProjectReference Include="..\..\libraries\events\Events.csproj" />
|
<ProjectReference Include="..\..\libraries\events\Events.csproj" />
|
||||||
<ProjectReference Include="..\..\libraries\state-management\StateManagement.csproj" />
|
<ProjectReference Include="..\..\libraries\state-management\StateManagement.csproj" />
|
||||||
<ProjectReference Include="..\..\libraries\camera\Camera.csproj" />
|
<ProjectReference Include="..\..\libraries\camera\Camera.csproj" />
|
||||||
|
<ProjectReference Include="..\..\libraries\movement\Movement.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
23
addons/kenney_prototype_textures/LICENSE.txt
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
|
||||||
|
|
||||||
|
Prototype Textures 1.0
|
||||||
|
|
||||||
|
Created/distributed by Kenney (www.kenney.nl)
|
||||||
|
Creation date: 08-04-2020
|
||||||
|
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
License: (Creative Commons Zero, CC0)
|
||||||
|
http://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
|
||||||
|
This content is free to use in personal, educational and commercial projects.
|
||||||
|
Support us by crediting Kenney or www.kenney.nl (this is not mandatory)
|
||||||
|
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
Donate: http://support.kenney.nl
|
||||||
|
Request: http://request.kenney.nl
|
||||||
|
Patreon: http://patreon.com/kenney/
|
||||||
|
|
||||||
|
Follow on Twitter for updates:
|
||||||
|
http://twitter.com/KenneyNL
|
||||||
BIN
addons/kenney_prototype_textures/dark/texture_01.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
40
addons/kenney_prototype_textures/dark/texture_01.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://vs6yd07oo2fj"
|
||||||
|
path="res://.godot/imported/texture_01.png-60e3b3d3143b179c069dbcbff77ff160.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/dark/texture_01.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_01.png-60e3b3d3143b179c069dbcbff77ff160.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/dark/texture_02.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
40
addons/kenney_prototype_textures/dark/texture_02.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cj0202al5l8i8"
|
||||||
|
path="res://.godot/imported/texture_02.png-814d4f515892bb8274d285748f4a73a0.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/dark/texture_02.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_02.png-814d4f515892bb8274d285748f4a73a0.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/dark/texture_03.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
40
addons/kenney_prototype_textures/dark/texture_03.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b2ioqsahn0ik6"
|
||||||
|
path="res://.godot/imported/texture_03.png-eef45c22e5a84c5df22e7f80e41112c6.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/dark/texture_03.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_03.png-eef45c22e5a84c5df22e7f80e41112c6.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/dark/texture_04.png
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
40
addons/kenney_prototype_textures/dark/texture_04.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://clqbl3gum43dh"
|
||||||
|
path="res://.godot/imported/texture_04.png-af505c12b2a7903458bb29299e718506.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/dark/texture_04.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_04.png-af505c12b2a7903458bb29299e718506.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/dark/texture_05.png
Normal file
|
After Width: | Height: | Size: 8.6 KiB |
40
addons/kenney_prototype_textures/dark/texture_05.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b2ent0kcndetv"
|
||||||
|
path="res://.godot/imported/texture_05.png-ed8122ecdc41ff5aeccab84e8db1e4f0.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/dark/texture_05.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_05.png-ed8122ecdc41ff5aeccab84e8db1e4f0.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/dark/texture_06.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
40
addons/kenney_prototype_textures/dark/texture_06.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://d1flp3bv1hjp4"
|
||||||
|
path="res://.godot/imported/texture_06.png-004ed3d5b88361cdfb83a20714e917e7.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/dark/texture_06.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_06.png-004ed3d5b88361cdfb83a20714e917e7.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/dark/texture_07.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
40
addons/kenney_prototype_textures/dark/texture_07.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dnoc8ponyv5gg"
|
||||||
|
path="res://.godot/imported/texture_07.png-7c77ff22e41b4a54319073cb71530d81.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/dark/texture_07.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_07.png-7c77ff22e41b4a54319073cb71530d81.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/dark/texture_08.png
Normal file
|
After Width: | Height: | Size: 635 B |
40
addons/kenney_prototype_textures/dark/texture_08.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bd4xmmwji8npx"
|
||||||
|
path="res://.godot/imported/texture_08.png-5883ddd047173c8b118ead887054e6fc.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/dark/texture_08.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_08.png-5883ddd047173c8b118ead887054e6fc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/dark/texture_09.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
41
addons/kenney_prototype_textures/dark/texture_09.png.import
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://d2xg4ujj8ho6p"
|
||||||
|
path.s3tc="res://.godot/imported/texture_09.png-8e25cd5657e2d326068eb27bfa1aacec.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/dark/texture_09.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_09.png-8e25cd5657e2d326068eb27bfa1aacec.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=0
|
||||||
BIN
addons/kenney_prototype_textures/dark/texture_10.png
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
40
addons/kenney_prototype_textures/dark/texture_10.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://d0tdnv6gb1s1m"
|
||||||
|
path="res://.godot/imported/texture_10.png-1e788999a192eabd201c3b3435475799.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/dark/texture_10.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_10.png-1e788999a192eabd201c3b3435475799.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/dark/texture_11.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
40
addons/kenney_prototype_textures/dark/texture_11.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dtma0d54e8ln2"
|
||||||
|
path="res://.godot/imported/texture_11.png-f61ad46caf1a41d85454e490ec43c8ec.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/dark/texture_11.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_11.png-f61ad46caf1a41d85454e490ec43c8ec.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/dark/texture_12.png
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
40
addons/kenney_prototype_textures/dark/texture_12.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://boqkhxq2yhvgg"
|
||||||
|
path="res://.godot/imported/texture_12.png-aa893b2c5354267551e55ec14bb1999b.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/dark/texture_12.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_12.png-aa893b2c5354267551e55ec14bb1999b.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/dark/texture_13.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
40
addons/kenney_prototype_textures/dark/texture_13.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cjuk6qbytkl0p"
|
||||||
|
path="res://.godot/imported/texture_13.png-51cb3f38ea774c85cb3ad561d20c5b53.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/dark/texture_13.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_13.png-51cb3f38ea774c85cb3ad561d20c5b53.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/green/texture_01.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
40
addons/kenney_prototype_textures/green/texture_01.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bnatcibtuclfq"
|
||||||
|
path="res://.godot/imported/texture_01.png-94ebd82494c839e91a05b9e1cc2750ca.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/green/texture_01.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_01.png-94ebd82494c839e91a05b9e1cc2750ca.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/green/texture_02.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
40
addons/kenney_prototype_textures/green/texture_02.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://8qx6ufxvrks3"
|
||||||
|
path="res://.godot/imported/texture_02.png-aa1bb055b55bdc7c20e196b7286eebdf.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/green/texture_02.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_02.png-aa1bb055b55bdc7c20e196b7286eebdf.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/green/texture_03.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
40
addons/kenney_prototype_textures/green/texture_03.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://ec2o0tithw71"
|
||||||
|
path="res://.godot/imported/texture_03.png-3fec31a20982e9bd2e5e1aa731ea99cf.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/green/texture_03.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_03.png-3fec31a20982e9bd2e5e1aa731ea99cf.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/green/texture_04.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
40
addons/kenney_prototype_textures/green/texture_04.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://7al08w1fyqii"
|
||||||
|
path="res://.godot/imported/texture_04.png-4678cc1dfb831f775bdc30cfd7f78769.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/green/texture_04.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_04.png-4678cc1dfb831f775bdc30cfd7f78769.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/green/texture_05.png
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
40
addons/kenney_prototype_textures/green/texture_05.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dhm4qx2uw2qqp"
|
||||||
|
path="res://.godot/imported/texture_05.png-8448519b39c1d98d64cf807b48969765.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/green/texture_05.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_05.png-8448519b39c1d98d64cf807b48969765.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/green/texture_06.png
Normal file
|
After Width: | Height: | Size: 8.6 KiB |
40
addons/kenney_prototype_textures/green/texture_06.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://oqdp7y0nctaw"
|
||||||
|
path="res://.godot/imported/texture_06.png-01c48f82ab8bc613ec4efc2c2c669b12.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/green/texture_06.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_06.png-01c48f82ab8bc613ec4efc2c2c669b12.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/green/texture_07.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
40
addons/kenney_prototype_textures/green/texture_07.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bhdrd52s1u2tb"
|
||||||
|
path="res://.godot/imported/texture_07.png-eec10b758cacbb71a02166a7f8cee6c0.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/green/texture_07.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_07.png-eec10b758cacbb71a02166a7f8cee6c0.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/green/texture_08.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
40
addons/kenney_prototype_textures/green/texture_08.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://lxyffr0s1xpg"
|
||||||
|
path="res://.godot/imported/texture_08.png-d1888869b0d1d3a0ab2d517cbac7820a.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/green/texture_08.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_08.png-d1888869b0d1d3a0ab2d517cbac7820a.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/green/texture_09.png
Normal file
|
After Width: | Height: | Size: 635 B |
40
addons/kenney_prototype_textures/green/texture_09.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://0wfram6n0pol"
|
||||||
|
path="res://.godot/imported/texture_09.png-a21adfe1a090b0dd8f0d376d9ee5f68e.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/green/texture_09.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_09.png-a21adfe1a090b0dd8f0d376d9ee5f68e.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/green/texture_10.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
40
addons/kenney_prototype_textures/green/texture_10.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dmtig3y6rcgtq"
|
||||||
|
path="res://.godot/imported/texture_10.png-3f72abba172432380bd86a508e997833.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/green/texture_10.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_10.png-3f72abba172432380bd86a508e997833.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/green/texture_11.png
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
40
addons/kenney_prototype_textures/green/texture_11.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dvj28yioslhil"
|
||||||
|
path="res://.godot/imported/texture_11.png-ad76ef70f9eb459fb1e8d9ba9cc092c4.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/green/texture_11.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_11.png-ad76ef70f9eb459fb1e8d9ba9cc092c4.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/green/texture_12.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
40
addons/kenney_prototype_textures/green/texture_12.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dirscv501u212"
|
||||||
|
path="res://.godot/imported/texture_12.png-d4577347200436d9060aa21fce76cd93.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/green/texture_12.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_12.png-d4577347200436d9060aa21fce76cd93.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/green/texture_13.png
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
40
addons/kenney_prototype_textures/green/texture_13.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://p0e5hrsjr72p"
|
||||||
|
path="res://.godot/imported/texture_13.png-f5b9867fd39cd83793f3a92217d9eac6.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/green/texture_13.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_13.png-f5b9867fd39cd83793f3a92217d9eac6.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/light/texture_01.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
40
addons/kenney_prototype_textures/light/texture_01.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://clyvg7yeweaba"
|
||||||
|
path="res://.godot/imported/texture_01.png-e10423e44834e1b4a90c3134e446b32d.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/light/texture_01.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_01.png-e10423e44834e1b4a90c3134e446b32d.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/light/texture_02.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
40
addons/kenney_prototype_textures/light/texture_02.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://ba3ry8rb2hlvx"
|
||||||
|
path="res://.godot/imported/texture_02.png-ffde4d38b35463525c3815b255790206.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/light/texture_02.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_02.png-ffde4d38b35463525c3815b255790206.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/light/texture_03.png
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
40
addons/kenney_prototype_textures/light/texture_03.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://ccfkpdy0b4vlg"
|
||||||
|
path="res://.godot/imported/texture_03.png-6e55012c4e1c3f4d809747f3852d75ad.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/light/texture_03.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_03.png-6e55012c4e1c3f4d809747f3852d75ad.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/light/texture_04.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
40
addons/kenney_prototype_textures/light/texture_04.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cq4dok2ahbmfs"
|
||||||
|
path="res://.godot/imported/texture_04.png-201edfe05d5c4f7f54049864048cfaf1.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/light/texture_04.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_04.png-201edfe05d5c4f7f54049864048cfaf1.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/light/texture_05.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
40
addons/kenney_prototype_textures/light/texture_05.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b6fj2jbf4qjfy"
|
||||||
|
path="res://.godot/imported/texture_05.png-07ce2eafef84a176bcf77bc59cb1f6ec.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/light/texture_05.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_05.png-07ce2eafef84a176bcf77bc59cb1f6ec.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/light/texture_06.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
40
addons/kenney_prototype_textures/light/texture_06.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://gib62vrtq038"
|
||||||
|
path="res://.godot/imported/texture_06.png-88331a9f246e47943dc01d0128a4ca4e.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/light/texture_06.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_06.png-88331a9f246e47943dc01d0128a4ca4e.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/light/texture_07.png
Normal file
|
After Width: | Height: | Size: 635 B |
40
addons/kenney_prototype_textures/light/texture_07.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://tccdojl7g8lr"
|
||||||
|
path="res://.godot/imported/texture_07.png-ab5f4a6ad655d06104ea7939a06ec496.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/light/texture_07.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_07.png-ab5f4a6ad655d06104ea7939a06ec496.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/light/texture_08.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
40
addons/kenney_prototype_textures/light/texture_08.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bgmjhbqxtyxgc"
|
||||||
|
path="res://.godot/imported/texture_08.png-7b5c5c16cd076d2bbc9eeb33a454861b.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/light/texture_08.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_08.png-7b5c5c16cd076d2bbc9eeb33a454861b.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/light/texture_09.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
40
addons/kenney_prototype_textures/light/texture_09.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cibeaywjyawh2"
|
||||||
|
path="res://.godot/imported/texture_09.png-53f655f3d7e1722128f99e8aff9071f9.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/light/texture_09.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_09.png-53f655f3d7e1722128f99e8aff9071f9.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/light/texture_10.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
40
addons/kenney_prototype_textures/light/texture_10.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://2fq0mbsd8ni4"
|
||||||
|
path="res://.godot/imported/texture_10.png-499479b9aaf089d55adf67874bc0ff66.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/light/texture_10.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_10.png-499479b9aaf089d55adf67874bc0ff66.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/light/texture_11.png
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
40
addons/kenney_prototype_textures/light/texture_11.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cptsu33sidiyu"
|
||||||
|
path="res://.godot/imported/texture_11.png-4e4ade9ab136614b6cf0b0e879f1d510.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/light/texture_11.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_11.png-4e4ade9ab136614b6cf0b0e879f1d510.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/light/texture_12.png
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
40
addons/kenney_prototype_textures/light/texture_12.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://c4y5if608sp80"
|
||||||
|
path="res://.godot/imported/texture_12.png-8fe800bbb69d01cae0c0d84c062244bf.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/light/texture_12.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_12.png-8fe800bbb69d01cae0c0d84c062244bf.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/light/texture_13.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
40
addons/kenney_prototype_textures/light/texture_13.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://db0pd2xu03pnv"
|
||||||
|
path="res://.godot/imported/texture_13.png-a43b6ac63b0fe1c4a3f66335474e59b6.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/light/texture_13.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_13.png-a43b6ac63b0fe1c4a3f66335474e59b6.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/orange/texture_01.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cbvtrqjtllbe8"
|
||||||
|
path="res://.godot/imported/texture_01.png-2bf7db98e09b5b5073e8e8ca66419718.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/orange/texture_01.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_01.png-2bf7db98e09b5b5073e8e8ca66419718.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/orange/texture_02.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b43k5f8a7v14a"
|
||||||
|
path="res://.godot/imported/texture_02.png-4eab4e19c2171e5b0668b65373b74c6d.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/kenney_prototype_textures/orange/texture_02.png"
|
||||||
|
dest_files=["res://.godot/imported/texture_02.png-4eab4e19c2171e5b0668b65373b74c6d.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
addons/kenney_prototype_textures/orange/texture_03.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |