Compare commits

6 Commits

Author SHA1 Message Date
2c2641c1d3 Add 'README.md' 2022-12-31 12:01:35 +01:00
54a90ab22c add trenchbroom map 2022-12-31 03:49:35 +01:00
d808ef5a53 add runtime object loader (gltf only) 2022-12-31 03:49:01 +01:00
56255f5473 add modding support 2022-12-31 03:48:00 +01:00
d2ed1afdc7 Add modified weapon models 2022-12-07 08:41:10 +01:00
307eec1f4e Add Reload Animation 2022-12-06 15:10:38 +01:00
77 changed files with 3151 additions and 1581 deletions

BIN
Game.exr

Binary file not shown.

View File

@@ -1,28 +0,0 @@
[remap]
importer="2d_array_texture"
type="CompressedTexture2DArray"
uid="uid://djhovwrdokme0"
path.etc2="res://.godot/imported/Game.exr-72bd638e1628ca77f007b851e1ccfc0d.etc2.ctexarray"
path.s3tc="res://.godot/imported/Game.exr-72bd638e1628ca77f007b851e1ccfc0d.s3tc.ctexarray"
metadata={
"imported_formats": ["etc2", "s3tc"],
"vram_texture": true
}
[deps]
source_file="res://Game.exr"
dest_files=["res://.godot/imported/Game.exr-72bd638e1628ca77f007b851e1ccfc0d.etc2.ctexarray", "res://.godot/imported/Game.exr-72bd638e1628ca77f007b851e1ccfc0d.s3tc.ctexarray"]
[params]
compress/mode=2
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/bptc_ldr=0
compress/channel_pack=1
mipmaps/generate=false
mipmaps/limit=-1
slices/horizontal=1
slices/vertical=1

View File

@@ -2,7 +2,7 @@ extends Node3D
@onready var label : Label = $CanvasLayer/Label
@onready var player : CharacterBody3D = $PlayerQ3
@onready var player : CharacterBody3D = $TBLoader/PlayerQ3
func _ready():

Binary file not shown.

View File

@@ -1,51 +0,0 @@
[gd_scene load_steps=8 format=3 uid="uid://cqutof7bvocqc"]
[ext_resource type="LightmapGIData" uid="uid://k5haifo34pp6" path="res://Game.lmbake" id="2_3k1jt"]
[ext_resource type="PackedScene" uid="uid://bl7jynld7s25o" path="res://scenes/player/PlayerQ3.tscn" id="2_dhifo"]
[ext_resource type="Script" path="res://Game.gd" id="3"]
[ext_resource type="PackedScene" uid="uid://bke5cip8sjpoq" path="res://scenes/map/entity_0_worldspawn.tscn" id="3_3r3q4"]
[sub_resource type="PhysicalSkyMaterial" id="PhysicalSkyMaterial_mv01y"]
[sub_resource type="Sky" id="Sky_ybtis"]
sky_material = SubResource("PhysicalSkyMaterial_mv01y")
[sub_resource type="Environment" id="Environment_ul6y4"]
background_mode = 2
sky = SubResource("Sky_ybtis")
ambient_light_source = 3
reflected_light_source = 2
tonemap_mode = 2
tonemap_exposure = 2.0
[node name="Game" type="Node3D"]
script = ExtResource("3")
[node name="LightmapGI" type="LightmapGI" parent="."]
visible = false
quality = 2
bounces = 6
light_data = ExtResource("2_3k1jt")
[node name="LightmapProbe" type="LightmapProbe" parent="."]
visible = false
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_ul6y4")
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
transform = Transform3D(0.77938, 0.395123, -0.486256, 0.383799, 0.312364, 0.86898, 0.495243, -0.86389, 0.0918022, 0, 22.9909, 0)
light_indirect_energy = 1.5
light_bake_mode = 1
shadow_enabled = true
[node name="entity_0_worldspawn" parent="." instance=ExtResource("3_3r3q4")]
[node name="CanvasLayer" type="CanvasLayer" parent="."]
[node name="Label" type="Label" parent="CanvasLayer"]
offset_right = 40.0
offset_bottom = 14.0
[node name="PlayerQ3" parent="." instance=ExtResource("2_dhifo")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.6672, 11.2181)

View File

@@ -3,4 +3,4 @@ Developing a 3D game inspired by Doom64 on Godot 4 engine.
Using:
- [Simple-Q3-Controller](https://github.com/fossegutten/Simple-Q3-Controller) by fossegutten
- [CrosshairShader](https://github.com/0xspig/CrosshairShader) by 0xspig
- [CrosshairShader](https://github.com/0xspig/CrosshairShader) by 0xspig

View File

@@ -1,20 +0,0 @@
@tool
extends EditorPlugin
func _enter_tree() -> void:
add_custom_type(
"SfxrStreamPlayer", "AudioStreamPlayer", load("res://addons/godot_sfxr/SfxrStreamPlayer.gd"),
get_editor_interface().get_base_control().get_theme_icon("AudioStreamPlayer", "EditorIcons"))
add_custom_type(
"SfxrStreamPlayer2D", "AudioStreamPlayer2D", load("res://addons/godot_sfxr/SfxrStreamPlayer2D.gd"),
get_editor_interface().get_base_control().get_theme_icon("AudioStreamPlayer2D", "EditorIcons"))
add_custom_type(
"SfxrStreamPlayer3D", "AudioStreamPlayer3D", load("res://addons/godot_sfxr/SfxrStreamPlayer3D.gd"),
get_editor_interface().get_base_control().get_theme_icon("AudioStreamPlayer3D", "EditorIcons"))
func _exit_tree() -> void:
remove_custom_type("SfxrStreamPlayer")
remove_custom_type("SfxrStreamPlayer2D")
remove_custom_type("SfxrStreamPlayer3D")

View File

@@ -1,309 +0,0 @@
extends RefCounted
class_name SfxrGenerator
var params
var wave_shape: int
var repeat_time: float
var elapsed_since_repeat: float
var arpeggio_time: int
var arpeggio_multiplier: float
var period: float
var period_mult: float
var period_mult_slide: float
var period_max: float
var enable_frequency_cutoff: bool
var duty_cycle: float
var duty_cycle_slide: float
var fltw: float
var fltw_d: float
var fltdmp: float
var flthp: float
var flthp_d: float
var enable_low_pass_filter: bool
var vibrato_speed: float
var vibrato_amplitude: float
var envelope_length: Array
var envelope_punch: float
var flanger_offset: float
var flanger_offset_slide: float
var gain: float
var sample_rate: float
func init_params(stream_player) -> void:
params = stream_player
prepare_values()
# Wave shape
wave_shape = params.wave_type
# Filter
fltw = pow(params.p_lpf_freq, 3.0) * 0.1
enable_low_pass_filter = params.p_lpf_freq != 1.0
fltw_d = 1.0 + params.p_lpf_ramp * 0.0001
fltdmp = 5.0 / (1.0 + pow(params.p_lpf_resonance, 2.0) * 20.0) * (0.01 + fltw)
if (fltdmp > 0.8):
fltdmp = 0.8
flthp = pow(params.p_hpf_freq, 2.0) * 0.1
flthp_d = 1 + params.p_hpf_ramp * 0.0003
# Vibrato
vibrato_speed = pow(params.p_vib_speed, 2.0) * 0.01
vibrato_amplitude = params.p_vib_strength * 0.5
# Envelope
envelope_length = [
floor(params.p_env_attack * params.p_env_attack * 100000.0),
floor(params.p_env_sustain * params.p_env_sustain * 100000.0),
floor(params.p_env_decay * params.p_env_decay * 100000.0),
]
envelope_punch = params.p_env_punch
# Flanger
flanger_offset = pow(params.p_pha_offset, 2.0) * 1020.0
if (params.p_pha_offset < 0.0):
flanger_offset = -flanger_offset
flanger_offset_slide = pow(params.p_pha_ramp, 2.0) * 1.0
if (params.p_pha_ramp < 0.0):
flanger_offset_slide = -flanger_offset_slide
# Repeat
repeat_time = floor(pow(1 - params.p_repeat_speed, 2.0) * 20000.0 + 32.0)
if (params.p_repeat_speed == 0.0):
repeat_time = 0.0
gain = exp(params.sound_vol) - 1.0
sample_rate = params.sample_rate
func prepare_values() -> void:
elapsed_since_repeat = 0.0
period = 100.0 / (params.p_base_freq * params.p_base_freq + 0.001)
period_max = 100.0 / (params.p_freq_limit * params.p_freq_limit + 0.001)
enable_frequency_cutoff = params.p_freq_limit > 0.0
period_mult = 1.0 - pow(params.p_freq_ramp, 3.0) * 0.01
period_mult_slide = -pow(params.p_freq_dramp, 3.0) * 0.000001
duty_cycle = 0.5 - params.p_duty * 0.5
duty_cycle_slide = -params.p_duty_ramp * 0.00005
if (params.p_arp_mod >= 0.0):
arpeggio_multiplier = 1.0 - pow(params.p_arp_mod, 2.0) * 0.9
else:
arpeggio_multiplier = 1.0 + pow(params.p_arp_mod, 2.0) * 10.0
arpeggio_time = floor(pow(1.0 - params.p_arp_speed, 2.0) * 20000.0 + 32.0)
if (params.p_arp_speed == 1.0):
arpeggio_time = 0
func get_raw_buffer() -> Array:
randomize()
var fltp: float = 0.0
var fltdp: float = 0.0
var fltphp: float = 0.0
var noise_buffer_length: int = 32
var noise_buffer: Array = []
for i in noise_buffer_length:
noise_buffer.append(randf() * 2.0 - 1.0)
var envelope_stage: int = 0
var envelope_elapsed: float = 0.0
var vibrato_phase: float = 0.0
var phase: int = 0
var ipp: int = 0
var flanger_buffer_length: int = 1024
var flanger_buffer: Array = []
for i in flanger_buffer_length:
flanger_buffer.append(0.0)
var _buffer: Array = []
var sample_sum: float = 0.0
var num_summed: float = 0.0
var summands: int = floor(44100.0 / sample_rate)
var t: float = -1.0
while t < INF:
t += 1
# Repeats
elapsed_since_repeat += 1.0
if (repeat_time != 0.0 and elapsed_since_repeat >= repeat_time):
prepare_values()
# Arpeggio (single)
if (arpeggio_time != 0 and t >= arpeggio_time):
arpeggio_time = 0
period *= arpeggio_multiplier
# Frequency slide, and frequency slide slide!
period_mult += period_mult_slide
period *= period_mult
if (period > period_max):
period = period_max
if (enable_frequency_cutoff):
break
# Vibrato
var rfperiod: float = period
if (vibrato_amplitude > 0.0):
vibrato_phase += vibrato_speed
rfperiod = period * (1.0 + sin(vibrato_phase) * vibrato_amplitude)
var iperiod: int = floor(rfperiod)
if (iperiod < SfxrGlobals.OVERSAMPLING):
iperiod = SfxrGlobals.OVERSAMPLING
# Square wave duty cycle
duty_cycle = duty_cycle + duty_cycle_slide
if (duty_cycle > 0.5):
duty_cycle = 0.5
elif (duty_cycle < 0.0):
duty_cycle = 0.0
# Volume envelope
envelope_elapsed += 1.0
if (envelope_elapsed > envelope_length[envelope_stage]):
envelope_elapsed = 0.0
envelope_stage += 1.0
if (envelope_stage > 2.0):
break
if (envelope_length[envelope_stage] == 0):
continue
var env_vol: float = 0.0
var envf: float = envelope_elapsed / envelope_length[envelope_stage]
if (envelope_stage == 0.0): # Attack
env_vol = envf
elif (envelope_stage == 1.0): # Sustain
env_vol = 1.0 + (1.0 - envf) * 2.0 * envelope_punch
else: # Decay
env_vol = 1.0 - envf
# Flanger step
flanger_offset += flanger_offset_slide
var iphase: int = abs(floor(flanger_offset))
if (iphase > 1023):
iphase = 1023
if (flthp_d != 0.0):
flthp = flthp * flthp_d
if (flthp > 0.1):
flthp = 0.1
elif (flthp < 0.00001):
flthp = 0.00001
# 8x Oversampling
var sample: float = 0.0
for i in SfxrGlobals.OVERSAMPLING:
var sub_sample: float = 0.0
phase += 1
if (phase >= iperiod):
phase %= iperiod
if (wave_shape == SfxrGlobals.WAVE_SHAPES.NOISE):
for j in noise_buffer_length:
noise_buffer[i] = randf() * 2.0 - 1.0
# Base waveform
var fp: float = float(phase) / float(iperiod)
if (wave_shape == SfxrGlobals.WAVE_SHAPES.SQUARE):
if (fp < duty_cycle):
sub_sample = 0.5
else:
sub_sample = -0.5
elif (wave_shape == SfxrGlobals.WAVE_SHAPES.SAWTOOTH):
if (fp < duty_cycle):
sub_sample = -1.0 + 2.0 * fp / duty_cycle
else:
sub_sample = 1.0 - 2.0 * (fp - duty_cycle) / (1 - duty_cycle)
elif (wave_shape == SfxrGlobals.WAVE_SHAPES.SINE):
sub_sample = sin(fp * 2.0 * PI)
elif (wave_shape == SfxrGlobals.WAVE_SHAPES.NOISE):
sub_sample = noise_buffer[int(floor(phase * 32.0 / iperiod))]
else:
printerr("ERROR: Bad wave type: " + str(wave_shape))
sub_sample = 0
# Low-pass filter
var pp: float = fltp
fltw *= fltw_d
if (fltw > 0.1):
fltw = 0.1
elif (fltw < 0.0):
fltw = 0.0
if (enable_low_pass_filter):
fltdp += (sub_sample - fltp) * fltw
fltdp -= fltdp * fltdmp
else:
fltp = sub_sample
fltdp = 0.0
fltp += fltdp
# High-pass filter
fltphp += fltp - pp
fltphp -= fltphp * flthp
sub_sample = fltphp
# Flanger
flanger_buffer[ipp & 1023] = sub_sample
sub_sample += flanger_buffer[(ipp - iphase + 1024) & 1023]
ipp = (ipp + 1) & 1023
# Final accumulation and envelope application
sample += sub_sample * env_vol
# Accumulate samples appropriately for sample rate
sample_sum += sample
num_summed += 1.0
if (num_summed >= summands):
num_summed = 0.0
sample = sample_sum / summands
sample_sum = 0.0
else:
continue
sample = sample / SfxrGlobals.OVERSAMPLING * SfxrGlobals.MASTER_VOLUME
sample *= gain
sample = floor((sample + 1) * 128)
if (sample > 255):
sample = 255;
elif (sample < 0):
sample = 0
sample += 128
if sample > 255:
sample -= 255
_buffer.append(sample)
return _buffer
func build_sample(stream_player):
init_params(stream_player)
var sample: AudioStreamWAV = stream_player.stream
if (not sample):
stream_player.stream = AudioStreamWAV.new()
sample = stream_player.stream
sample.mix_rate = sample_rate
sample.data = PackedByteArray(get_raw_buffer())
return sample

View File

@@ -1,30 +0,0 @@
extends Object
class_name SfxrGlobals
enum WAVE_SHAPES {
SQUARE,
SAWTOOTH,
SINE,
NOISE,
}
enum PRESETS {
NONE,
PICKUP,
LASER,
EXPLOSION,
POWERUP,
HIT,
JUMP,
CLICK,
BLIP,
SYNTH,
RANDOM,
TONE,
MUTATE,
}
const OVERSAMPLING = 8
const MASTER_VOLUME = 1

View File

@@ -1,119 +0,0 @@
@tool
extends AudioStreamPlayer
# Wave Shape
var wave_type: int
# Envelope
var p_env_attack: float
var p_env_sustain: float
var p_env_punch: float
var p_env_decay: float
# Tone
var p_base_freq: float
var p_freq_limit: float
var p_freq_ramp: float
var p_freq_dramp: float
# Vibrato
var p_vib_strength: float
var p_vib_speed: float
# Tonal Change
var p_arp_mod: float
var p_arp_speed: float
# Square wve duty (proportion of time signal is high vs low)
var p_duty: float
var p_duty_ramp: float
# Repeat
var p_repeat_speed: float
# Flanger
var p_pha_offset: float
var p_pha_ramp: float
# Low-pass filter
var p_lpf_freq: float
var p_lpf_ramp: float
var p_lpf_resonance: float
# High-pass filter
var p_hpf_freq: float
var p_hpf_ramp: float
# Sample parameters
var sound_vol: float
var sample_rate: float
# Sfx Generation
var sfx_timer: SceneTreeTimer
##################################
# Inspector Properties
##################################
func _get_property_list() -> Array:
return SfxrStreamPlayerInterface.object_get_property_list()
func _get(property):
return SfxrStreamPlayerInterface.object_get(self, property)
func _set(property, value) -> bool:
return SfxrStreamPlayerInterface.object_set(self, property, value)
##################################
# Defaults
##################################
func _init():
SfxrStreamPlayerInterface.object_set_defaults(self)
func property_can_revert(property: String):
return SfxrStreamPlayerInterface.object_property_can_revert(property)
func property_get_revert(property: String):
return SfxrStreamPlayerInterface.object_property_get_revert(property)
##################################
# Presets
##################################
func random_preset() -> bool:
return SfxrStreamPlayerInterface.random_preset(self)
func preset_values(preset_key: int) -> bool:
return SfxrStreamPlayerInterface.preset_values(self, preset_key)
##################################
# Playback
##################################
func _on_sfx_timer_timeout(timer: SceneTreeTimer, play_after_build: bool):
SfxrStreamPlayerInterface._on_sfx_timer_timeout(self, timer, play_after_build)
func build_sfx(play_after_build: bool = false):
SfxrStreamPlayerInterface.build_sfx(self, play_after_build)
func play(from_position: float = 0.0):
if playing:
stop()
super.play(from_position)

View File

@@ -1,119 +0,0 @@
@tool
extends AudioStreamPlayer2D
# Wave Shape
var wave_type: int
# Envelope
var p_env_attack: float
var p_env_sustain: float
var p_env_punch: float
var p_env_decay: float
# Tone
var p_base_freq: float
var p_freq_limit: float
var p_freq_ramp: float
var p_freq_dramp: float
# Vibrato
var p_vib_strength: float
var p_vib_speed: float
# Tonal Change
var p_arp_mod: float
var p_arp_speed: float
# Square wve duty (proportion of time signal is high vs low)
var p_duty: float
var p_duty_ramp: float
# Repeat
var p_repeat_speed: float
# Flanger
var p_pha_offset: float
var p_pha_ramp: float
# Low-pass filter
var p_lpf_freq: float
var p_lpf_ramp: float
var p_lpf_resonance: float
# High-pass filter
var p_hpf_freq: float
var p_hpf_ramp: float
# Sample parameters
var sound_vol: float
var sample_rate: float
# Sfx Generation
var sfx_timer: SceneTreeTimer
##################################
# Inspector Properties
##################################
func _get_property_list() -> Array:
return SfxrStreamPlayerInterface.object_get_property_list()
func _get(property):
return SfxrStreamPlayerInterface.object_get(self, property)
func _set(property, value) -> bool:
return SfxrStreamPlayerInterface.object_set(self, property, value)
##################################
# Defaults
##################################
func _init():
SfxrStreamPlayerInterface.object_set_defaults(self)
func property_can_revert(property: String):
return SfxrStreamPlayerInterface.object_property_can_revert(property)
func property_get_revert(property: String):
return SfxrStreamPlayerInterface.object_property_get_revert(property)
##################################
# Presets
##################################
func random_preset() -> bool:
return SfxrStreamPlayerInterface.random_preset(self)
func preset_values(preset_key: int) -> bool:
return SfxrStreamPlayerInterface.preset_values(self, preset_key)
##################################
# Playback
##################################
func _on_sfx_timer_timeout(timer: SceneTreeTimer, play_after_build: bool):
SfxrStreamPlayerInterface._on_sfx_timer_timeout(self, timer, play_after_build)
func build_sfx(play_after_build: bool = false):
SfxrStreamPlayerInterface.build_sfx(self, play_after_build)
func play(from_position: float = 0.0):
if playing:
stop()
super.play(from_position)

View File

@@ -1,119 +0,0 @@
@tool
extends AudioStreamPlayer3D
# Wave Shape
var wave_type: int
# Envelope
var p_env_attack: float
var p_env_sustain: float
var p_env_punch: float
var p_env_decay: float
# Tone
var p_base_freq: float
var p_freq_limit: float
var p_freq_ramp: float
var p_freq_dramp: float
# Vibrato
var p_vib_strength: float
var p_vib_speed: float
# Tonal Change
var p_arp_mod: float
var p_arp_speed: float
# Square wve duty (proportion of time signal is high vs low)
var p_duty: float
var p_duty_ramp: float
# Repeat
var p_repeat_speed: float
# Flanger
var p_pha_offset: float
var p_pha_ramp: float
# Low-pass filter
var p_lpf_freq: float
var p_lpf_ramp: float
var p_lpf_resonance: float
# High-pass filter
var p_hpf_freq: float
var p_hpf_ramp: float
# Sample parameters
var sound_vol: float
var sample_rate: float
# Sfx Generation
var sfx_timer: SceneTreeTimer
##################################
# Inspector Properties
##################################
func _get_property_list() -> Array:
return SfxrStreamPlayerInterface.object_get_property_list()
func _get(property):
return SfxrStreamPlayerInterface.object_get(self, property)
func _set(property, value):
return SfxrStreamPlayerInterface.object_set(self, property, value)
##################################
# Defaults
##################################
func _init():
SfxrStreamPlayerInterface.object_set_defaults(self)
func property_can_revert(property: String):
return SfxrStreamPlayerInterface.object_property_can_revert(property)
func property_get_revert(property: String):
return SfxrStreamPlayerInterface.object_property_get_revert(property)
##################################
# Presets
##################################
func random_preset() -> bool:
return SfxrStreamPlayerInterface.random_preset(self)
func preset_values(preset_key: int) -> bool:
return SfxrStreamPlayerInterface.preset_values(self, preset_key)
##################################
# Playback
##################################
func _on_sfx_timer_timeout(timer: SceneTreeTimer, play_after_build: bool):
SfxrStreamPlayerInterface._on_sfx_timer_timeout(self, timer, play_after_build)
func build_sfx(play_after_build: bool = false):
SfxrStreamPlayerInterface.build_sfx(self, play_after_build)
func play(from_position: float = 0.0):
if playing:
stop()
super.play(from_position)

View File

@@ -1,477 +0,0 @@
extends Object
class_name SfxrStreamPlayerInterface
##################################
# Inspector Properties
##################################
const PROPERTY_MAP = {
# Sample params
"sample_params/sound_vol": {"name": "sound_vol", "hint_string": "0,1,0.000000001", "default": 0.25},
"sample_params/sample_rate": {"name": "sample_rate", "hint_string": "6000,44100,1", "default": 44100.0},
# Envelope
"envelope/attack_time": {"name": "p_env_attack", "hint_string": "0,1,0.000000001", "default": 0.0},
"envelope/sustain_time": {"name": "p_env_sustain", "hint_string": "0,1,0.000000001", "default": 0.6641},
"envelope/punch_time": {"name": "p_env_punch", "hint_string": "0,1,0.000000001", "default": 0.0},
"envelope/decay_time": {"name": "p_env_decay", "hint_string": "0,1,0.000000001", "default": 0.0},
# Frequency
"frequency/start_frequency": {"name": "p_base_freq", "hint_string": "0,1,0.000000001", "default": 0.35173364},
"frequency/min_freq_cutoff": {"name": "p_freq_limit", "hint_string": "0,1,0.000000001", "default": 0.0},
"frequency/slide": {"name": "p_freq_ramp", "hint_string": "-1,1,0.000000001", "default": 0.0},
"frequency/delta_slide": {"name": "p_freq_dramp", "hint_string": "-1,1,0.000000001", "default": 0.0},
# Vibrato
"vibrato/depth": {"name": "p_vib_strength", "hint_string": "0,1,0.000000001", "default": 0.0},
"vibrato/speed": {"name": "p_vib_speed", "hint_string": "0,1,0.000000001", "default": 0.0},
# Arpeggiation
"arpeggiation/frequency_mult": {"name": "p_arp_mod", "hint_string": "-1,1,0.000000001", "default": 0.0},
"arpeggiation/change_speed": {"name": "p_arp_speed", "hint_string": "0,1,0.000000001", "default": 0.0},
# Duty cycle
"duty_cycle/duty_cycle": {"name": "p_duty", "hint_string": "0,1,0.000000001", "default": 0.0},
"duty_cycle/sweep": {"name": "p_duty_ramp", "hint_string": "-1,1,0.000000001", "default": 0.0},
# Retrigger
"retrigger/rate": {"name": "p_repeat_speed", "hint_string": "0,1,0.000000001", "default": 0.0},
# Flanger
"flanger/offset": {"name": "p_pha_offset", "hint_string": "-1,1,0.000000001", "default": 0.0},
"flanger/sweep": {"name": "p_pha_ramp", "hint_string": "-1,1,0.000000001", "default": 0.0},
# Low-pass filter
"low_pass_filter/cutoff_frequency": {"name": "p_lpf_freq", "hint_string": "0,1,0.000000001", "default": 1.0},
"low_pass_filter/cutoff_sweep": {"name": "p_lpf_ramp", "hint_string": "-1,1,0.000000001", "default": 0.0},
"low_pass_filter/resonance": {"name": "p_lpf_resonance", "hint_string": "0,1,0.000000001", "default": 0.0},
# High-pass filter
"high_pass_filter/cutoff_frequency": {"name": "p_hpf_freq", "hint_string": "0,1,0.000000001", "default": 0.0},
"high_pass_filter/cutoff_sweep": {"name": "p_hpf_ramp", "hint_string": "-1,1,0.000000001", "default": 0.0},
}
static func object_get_property_list() -> Array:
var presets = SfxrGlobals.PRESETS.keys()
presets.pop_front()
var props = []
props.append({
"name": "SfxrStreamPlayer",
"type": TYPE_NIL,
"usage": PROPERTY_USAGE_CATEGORY | PROPERTY_USAGE_SCRIPT_VARIABLE,
})
for preset in presets:
props.append({
"name": "generators/" + str(preset).to_lower(),
"type": TYPE_BOOL,
"usage": PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_NO_INSTANCE_STATE,
})
props.append({
"name": "wave/type",
"type": TYPE_INT,
"hint": PROPERTY_HINT_ENUM,
"hint_string": ",".join(PackedStringArray(SfxrGlobals.WAVE_SHAPES.keys())),
})
for property in PROPERTY_MAP:
props.append({
"name": property,
"type": TYPE_FLOAT,
"hint": PROPERTY_HINT_RANGE,
"hint_string": PROPERTY_MAP[property]["hint_string"],
})
props.append_array([
{
"name": "actions/force_rebuild",
"type": TYPE_BOOL,
"usage": PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_NO_INSTANCE_STATE,
},
])
return props
static func object_get(object: Node, property: String):
if property in PROPERTY_MAP:
return object[PROPERTY_MAP[property]["name"]]
elif property == "wave/type":
return object.wave_type
static func object_set(object: Node, property: String, value) -> bool:
var auto_build = Engine.is_editor_hint() and object.is_inside_tree()
if property in PROPERTY_MAP:
object[PROPERTY_MAP[property]["name"]] = value
if auto_build:
_schedule_build_sfx(object, true)
return true
elif property == "wave/type":
object.wave_type = value
if auto_build:
_schedule_build_sfx(object, true)
return true
elif property == "actions/force_rebuild":
if value and auto_build:
build_sfx(object, true)
return true
elif property == "sfxr_generator":
if not value:
value = 0
if preset_values(object, value) and auto_build:
build_sfx(object, true)
return true
elif property.begins_with("generators/"):
property = property.replace("generators/", "").to_upper()
if preset_values(object, SfxrGlobals.PRESETS.get(property, -1)) and auto_build:
build_sfx(object, true)
return true
return false
##################################
# Defaults
##################################
static func object_set_defaults(object: Node):
object.wave_type = SfxrGlobals.WAVE_SHAPES.SAWTOOTH
for property in PROPERTY_MAP:
object[PROPERTY_MAP[property]["name"]] = PROPERTY_MAP[property]["default"]
static func object_property_can_revert(property: String):
return property in PROPERTY_MAP
static func object_property_get_revert(property: String):
return PROPERTY_MAP[property]["default"]
##################################
# Helpers
##################################
static func frnd(rrange) -> float:
return randf() * rrange
static func rndr(from, to) -> float:
return randf() * (to - from) + from
static func rnd(rmax) -> float:
return floor(randf() * (rmax + 1))
##################################
# Presets
##################################
static func _presets_pickup(object: Node):
object_set_defaults(object)
object.wave_type = SfxrGlobals.WAVE_SHAPES.SAWTOOTH
object.p_base_freq = 0.4 + frnd(0.5)
object.p_env_attack = 0
object.p_env_sustain = frnd(0.1)
object.p_env_decay = 0.1 + frnd(0.4)
object.p_env_punch = 0.3 + frnd(0.3)
if rnd(1):
object.p_arp_speed = 0.5 + frnd(0.2)
object.p_arp_mod = 0.2 + frnd(0.4)
static func _presets_laser(object: Node):
object_set_defaults(object)
object.wave_type = rnd(2)
if object.wave_type == SfxrGlobals.WAVE_SHAPES.SINE and rnd(1):
object.wave_type = rnd(1)
if rnd(2) == 0:
object.p_base_freq = 0.3 + frnd(0.6)
object.p_freq_limit = frnd(0.1)
object.p_freq_ramp = -0.35 - frnd(0.3)
else:
object.p_base_freq = 0.5 + frnd(0.5)
object.p_freq_limit = object.p_base_freq - 0.2 - frnd(0.6)
if object.p_freq_limit < 0.2:
object.p_freq_limit = 0.2
object.p_freq_ramp = -0.15 - frnd(0.2)
if object.wave_type == SfxrGlobals.WAVE_SHAPES.SAWTOOTH:
object.p_duty = 1
if rnd(1):
object.p_duty = frnd(0.5)
object.p_duty_ramp = frnd(0.2)
else:
object.p_duty = 0.4 + frnd(0.5)
object.p_duty_ramp = -frnd(0.7)
object.p_env_attack = 0
object.p_env_sustain = 0.1 + frnd(0.2)
object.p_env_decay = frnd(0.4)
if rnd(1):
object.p_env_punch = frnd(0.3)
if rnd(2) == 0:
object.p_pha_offset = frnd(0.2)
object.p_pha_ramp = -frnd(0.2)
object.p_hpf_freq = frnd(0.3)
static func _presets_explosion(object: Node):
object_set_defaults(object)
object.wave_type = SfxrGlobals.WAVE_SHAPES.NOISE
if rnd(1):
object.p_base_freq = pow(0.1 + frnd(0.4), 2)
object.p_freq_ramp = -0.1 + frnd(0.4)
else:
object.p_base_freq = pow(0.2 + frnd(0.7), 2)
object.p_freq_ramp = -0.2 - frnd(0.2)
if rnd(4) == 0:
object.p_freq_ramp = 0
if rnd(2) == 0:
object.p_repeat_speed = 0.3 + frnd(0.5)
object.p_env_attack = 0
object.p_env_sustain = 0.1 + frnd(0.3)
object.p_env_decay = frnd(0.5)
if rnd(1):
object.p_pha_offset = -0.3 + frnd(0.9)
object.p_pha_ramp = -frnd(0.3)
object.p_env_punch = 0.2 + frnd(0.6)
if rnd(1):
object.p_vib_strength = frnd(0.7)
object.p_vib_speed = frnd(0.6)
if rnd(2) == 0:
object.p_arp_speed = 0.6 + frnd(0.3)
object.p_arp_mod = 0.8 - frnd(1.6)
static func _presets_powerup(object: Node):
object_set_defaults(object)
if rnd(1):
object.wave_type = SfxrGlobals.WAVE_SHAPES.SAWTOOTH
object.p_duty = 1
else:
object.p_duty = frnd(0.6)
object.p_base_freq = 0.2 + frnd(0.3)
if rnd(1):
object.p_freq_ramp = 0.1 + frnd(0.4)
object.p_repeat_speed = 0.4 + frnd(0.4)
else:
object.p_freq_ramp = 0.05 + frnd(0.2)
if rnd(1):
object.p_vib_strength = frnd(0.7)
object.p_vib_speed = frnd(0.6)
object.p_env_attack = 0
object.p_env_sustain = frnd(0.4)
object.p_env_decay = 0.1 + frnd(0.4)
static func _presets_hit(object: Node):
object_set_defaults(object)
object.wave_type = rnd(2)
if object.wave_type == SfxrGlobals.WAVE_SHAPES.SINE:
object.wave_type = SfxrGlobals.WAVE_SHAPES.NOISE
if object.wave_type == SfxrGlobals.WAVE_SHAPES.SQUARE:
object.p_duty = frnd(0.6)
if object.wave_type == SfxrGlobals.WAVE_SHAPES.SAWTOOTH:
object.p_duty = 1
object.p_base_freq = 0.2 + frnd(0.6)
object.p_freq_ramp = -0.3 - frnd(0.4)
object.p_env_attack = 0
object.p_env_sustain = frnd(0.1)
object.p_env_decay = 0.1 + frnd(0.2)
if rnd(1):
object.p_hpf_freq = frnd(0.3)
static func _presets_jump(object: Node):
object_set_defaults(object)
object.wave_type = SfxrGlobals.WAVE_SHAPES.SQUARE
object.p_duty = frnd(0.6)
object.p_base_freq = 0.3 + frnd(0.3)
object.p_freq_ramp = 0.1 + frnd(0.2)
object.p_env_attack = 0
object.p_env_sustain = 0.1 + frnd(0.3)
object.p_env_decay = 0.1 + frnd(0.2)
if rnd(1):
object.p_hpf_freq = frnd(0.3)
if rnd(1):
object.p_lpf_freq = 1 - frnd(0.6)
static func _presets_blip(object: Node):
object_set_defaults(object)
object.wave_type = rnd(1)
if object.wave_type == SfxrGlobals.WAVE_SHAPES.SQUARE:
object.p_duty = frnd(0.6)
else:
object.p_duty = 1
object.p_base_freq = 0.2 + frnd(0.4)
object.p_env_attack = 0
object.p_env_sustain = 0.1 + frnd(0.1)
object.p_env_decay = frnd(0.2)
object.p_hpf_freq = 0.1
static func _presets_synth(object: Node):
object_set_defaults(object)
object.wave_type = rnd(1)
object.p_base_freq = [0.2723171360931539, 0.19255692561524382, 0.13615778746815113][rnd(2)]
object.p_env_attack = frnd(0.5) if rnd(4) > 3 else 0
object.p_env_sustain = frnd(1)
object.p_env_punch = frnd(1)
object.p_env_decay = frnd(0.9) + 0.1
object.p_arp_mod = [0, 0, 0, 0, -0.3162, 0.7454, 0.7454][rnd(6)]
object.p_arp_speed = frnd(0.5) + 0.4
object.p_duty = frnd(1)
object.p_duty_ramp = frnd(1) if rnd(2) == 2 else 0
object.p_lpf_freq = [1, frnd(1) * frnd(1)][rnd(1)]
object.p_lpf_ramp = rndr(-1, 1)
object.p_lpf_resonance = frnd(1)
object.p_hpf_freq = frnd(1) if rnd(3) == 3 else 0
object.p_hpf_ramp = frnd(1) if rnd(3) == 3 else 0
static func _presets_tone(object: Node):
object_set_defaults(object)
static func _presets_click(object: Node):
if rnd(1):
_presets_hit(object)
else:
_presets_explosion(object)
if rnd(1):
object.p_freq_ramp = -0.5 + frnd(1.0)
if rnd(1):
object.p_env_sustain = (frnd(0.4) + 0.2) * object.p_env_sustain
object.p_env_decay = (frnd(0.4) + 0.2) * object.p_env_decay
if rnd(3) == 0:
object.p_env_attack = frnd(0.3)
object.p_base_freq = 1 - frnd(0.25)
object.p_hpf_freq = 1 - frnd(0.1)
static func _presets_random(object: Node):
object_set_defaults(object)
object.wave_type = rnd(3)
if rnd(1):
object.p_base_freq = pow(frnd(2) - 1, 3) + 0.5
else:
object.p_base_freq = pow(frnd(1), 2)
object.p_freq_limit = 0
object.p_freq_ramp = pow(frnd(2) - 1, 5)
if object.p_base_freq > 0.7 and object.p_freq_ramp > 0.2:
object.p_freq_ramp = -object.p_freq_ramp
if object.p_base_freq < 0.2 and object.p_freq_ramp < -0.05:
object.p_freq_ramp = -object.p_freq_ramp
object.p_freq_dramp = pow(frnd(2) - 1, 3)
object.p_duty = frnd(2) - 1
object.p_duty_ramp = pow(frnd(2) - 1, 3)
object.p_vib_strength = pow(frnd(2) - 1, 3)
object.p_vib_speed = rndr(-1, 1)
object.p_env_attack = pow(rndr(-1, 1), 3)
object.p_env_sustain = pow(rndr(-1, 1), 2)
object.p_env_decay = rndr(-1, 1)
object.p_env_punch = pow(frnd(0.8), 2)
if object.p_env_attack + object.p_env_sustain + object.p_env_decay < 0.2:
object.p_env_sustain += 0.2 + frnd(0.3)
object.p_env_decay += 0.2 + frnd(0.3)
object.p_lpf_resonance = rndr(-1, 1)
object.p_lpf_freq = 1 - pow(frnd(1), 3)
object.p_lpf_ramp = pow(frnd(2) - 1, 3)
if object.p_lpf_freq < 0.1 and object.p_lpf_ramp < -0.05:
object.p_lpf_ramp = -object.p_lpf_ramp
object.p_hpf_freq = pow(frnd(1), 5)
object.p_hpf_ramp = pow(frnd(2) - 1, 5)
object.p_pha_offset = pow(frnd(2) - 1, 3)
object.p_pha_ramp = pow(frnd(2) - 1, 3)
object.p_repeat_speed = frnd(2) - 1
object.p_arp_speed = frnd(2) - 1
object.p_arp_mod = frnd(2) - 1
static func _presets_mutate(object: Node):
if rnd(1): object.p_base_freq += frnd(0.1) - 0.05
if rnd(1): object.p_freq_ramp += frnd(0.1) - 0.05
if rnd(1): object.p_freq_dramp += frnd(0.1) - 0.05
if rnd(1): object.p_duty += frnd(0.1) - 0.05
if rnd(1): object.p_duty_ramp += frnd(0.1) - 0.05
if rnd(1): object.p_vib_strength += frnd(0.1) - 0.05
if rnd(1): object.p_vib_speed += frnd(0.1) - 0.05
if rnd(1): object.p_env_attack += frnd(0.1) - 0.05
if rnd(1): object.p_env_sustain += frnd(0.1) - 0.05
if rnd(1): object.p_env_decay += frnd(0.1) - 0.05
if rnd(1): object.p_env_punch += frnd(0.1) - 0.05
if rnd(1): object.p_lpf_resonance += frnd(0.1) - 0.05
if rnd(1): object.p_lpf_freq += frnd(0.1) - 0.05
if rnd(1): object.p_lpf_ramp += frnd(0.1) - 0.05
if rnd(1): object.p_hpf_freq += frnd(0.1) - 0.05
if rnd(1): object.p_hpf_ramp += frnd(0.1) - 0.05
if rnd(1): object.p_pha_offset += frnd(0.1) - 0.05
if rnd(1): object.p_pha_ramp += frnd(0.1) - 0.05
if rnd(1): object.p_repeat_speed += frnd(0.1) - 0.05
if rnd(1): object.p_arp_speed += frnd(0.1) - 0.05
if rnd(1): object.p_arp_mod += frnd(0.1) - 0.05
static func random_preset(object: Node) -> bool:
return preset_values(object, (randi() % (len(SfxrGlobals.PRESETS) - 1)) + 1)
static func preset_values(object: Node, preset_key: int) -> bool:
if preset_key >= 0 and preset_key < len(SfxrGlobals.PRESETS):
var preset = SfxrGlobals.PRESETS.keys()[preset_key].to_lower()
match preset:
"pickup":
_presets_pickup(object)
return true
"laser":
_presets_laser(object)
return true
"explosion":
_presets_explosion(object)
return true
"powerup":
_presets_powerup(object)
return true
"hit":
_presets_hit(object)
return true
"jump":
_presets_jump(object)
return true
"click":
_presets_click(object)
return true
"blip":
_presets_blip(object)
return true
"synth":
_presets_synth(object)
return true
"random":
_presets_random(object)
return true
"tone":
_presets_tone(object)
return true
"mutate":
_presets_mutate(object)
return true
return false
##################################
# Playback
##################################
static func _schedule_build_sfx(object: Node, play_after_build: bool):
var timer: SceneTreeTimer = object.get_tree().create_timer(.5)
object.sfx_timer = timer
timer.timeout.connect(func(): object._on_sfx_timer_timeout(timer, play_after_build))
static func _on_sfx_timer_timeout(object: Node, timer: SceneTreeTimer, play_after_build: bool):
if timer == object.sfx_timer:
build_sfx(object, play_after_build)
static func build_sfx(object: Node, play_after_build: bool = false):
var sfxg = SfxrGenerator.new()
sfxg.build_sample(object)
if play_after_build:
object.play()
object.notify_property_list_changed()

View File

@@ -1,7 +0,0 @@
[plugin]
name="GodotSfxr"
description="Sfx Generator. Port of jsfxr (https://sfxr.me - by Eric Fredricksen) which is a port of sfxr (https://www.drpetter.se/project_sfxr.html - by DrPetter)."
author="Tomeyro"
version="1.0"
script="GodotSfxr.gd"

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
addons/tbloader/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cbbpw5sol06i6"
path="res://.godot/imported/icon.png-7c6403be1be0a98a34b14bf837b41c44.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/tbloader/icon.png"
dest_files=["res://.godot/imported/icon.png-7c6403be1be0a98a34b14bf837b41c44.ctex"]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/bptc_ldr=0
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
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

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>TBLoader</title>
<metadata>
<rdf:RDF>
<cc:Work rdf:about="">
<dc:title>TBLoader</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g transform="matrix(.23996 0 0 .24633 -15.301 -26.547)" fill="none">
<path d="m97.213 109.57-30.357 8.4385-5.37e-4 -5.6e-4 8.3597 29.977 21.989 21.198v8.6e-4l9.36e-4 -5.5e-4 5.35e-4 5.5e-4v-8.6e-4l21.99-21.198 8.356-29.965 0.0192-0.0115zm0 25.412 0.0083 0.5401-0.01402 9e-3zm-0.0083 0.54822 0.0022 8.5e-4 -9.37e-4 0.94463z" stop-color="#000000" style="-inkscape-stroke:none;font-variation-settings:normal"/>
<path transform="translate(-6.7616,1.2332)" d="m103.97 109.62-29.045 8.0742 29.039 16.766 6e-3 -0.52539 8e-3 0.52539 29.039-16.766z" stop-color="#000000" stroke="#fb8080" stroke-miterlimit="3" stroke-width="3.3" style="-inkscape-stroke:none;font-variation-settings:normal;paint-order:normal"/>
<path d="m68.168 118.93 29.038 16.766 0.01581 32.214-21.055-20.297zm58.077 0-29.038 16.766-0.01581 32.214 21.055-20.297z" stop-color="#000000" stroke="#fb8080" stroke-miterlimit="3" stroke-width="3.3" style="-inkscape-stroke:none;font-variation-settings:normal;paint-order:normal"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b6bigon1m2gl"
path="res://.godot/imported/tbloader.svg-ac537690612434f49f9a80d3b536a819.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/tbloader/icons/tbloader.svg"
dest_files=["res://.godot/imported/tbloader.svg-ac537690612434f49f9a80d3b536a819.ctex"]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/bptc_ldr=0
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
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
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View File

@@ -0,0 +1,7 @@
[plugin]
name="TBLoader"
description="TrenchBroom map loader."
author="Codecat"
version="0.9.0"
script="src/plugin.gd"

View File

@@ -0,0 +1,64 @@
@tool
extends EditorPlugin
class_name TBPlugin
var map_control: Control = null
var editing_loader: WeakRef = weakref(null)
func _enter_tree():
set_icons(true)
map_control = create_map_control()
map_control.set_visible(false)
add_control_to_container(EditorPlugin.CONTAINER_SPATIAL_EDITOR_MENU, map_control)
func _exit_tree():
set_icons(false)
remove_control_from_container(EditorPlugin.CONTAINER_SPATIAL_EDITOR_MENU, map_control)
map_control.queue_free()
map_control = null
func _handles(object):
return object is TBLoader
func _make_visible(visible: bool):
map_control.set_visible(visible)
func _edit(object):
editing_loader = weakref(object)
func create_map_control() -> Control:
var button_build_meshes = Button.new()
button_build_meshes.flat = true
button_build_meshes.text = "Build Meshes"
button_build_meshes.connect("pressed", Callable(self, "build_meshes"))
var button_build_csg = Button.new()
button_build_csg.flat = true
button_build_csg.text = "Build Combined CSG"
button_build_csg.connect("pressed", Callable(self, "build_combined_csg"))
var ret = HBoxContainer.new()
ret.add_child(button_build_meshes)
ret.add_child(button_build_csg)
return ret
func build_meshes():
var loader = editing_loader.get_ref()
loader.build_meshes()
func build_combined_csg():
var loader = editing_loader.get_ref()
loader.build_combined_csg()
func set_icons(on):
var editor_interface = get_editor_interface()
var base_control = editor_interface.get_base_control()
var theme = base_control.theme
if on:
var texture = ResourceLoader.load("res://addons/tbloader/icons/tbloader.svg")
theme.set_icon("TBLoader", "EditorIcons", texture)
else:
theme.clear_icon("TBLoader", "EditorIcons")

View File

@@ -0,0 +1,7 @@
[configuration]
entry_symbol = "tbloader_init"
[libraries]
windows.64 = "bin/tbloader.windows.x86_64.dll"
linux.64 = "bin/libtbloader.linux.x86_64.so"
macos.64 = "bin/libtbloader.macos.universal.dylib"

Binary file not shown.

View File

@@ -3,13 +3,13 @@
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://beiad4ywiojba"
path="res://.godot/imported/Revolver.gltf-1c0c2c3864f727f53cf3435925795736.scn"
uid="uid://ccbo4ow0r0q4y"
path="res://.godot/imported/Chainsaw.glb-2f2de7b5d8d66d3c4163f0ec92578dbd.scn"
[deps]
source_file="res://assets/Weapons/Gun/Revolver.gltf"
dest_files=["res://.godot/imported/Revolver.gltf-1c0c2c3864f727f53cf3435925795736.scn"]
source_file="res://assets/Weapons/Chainsaw/Chainsaw.glb"
dest_files=["res://.godot/imported/Chainsaw.glb-2f2de7b5d8d66d3c4163f0ec92578dbd.scn"]
[params]
@@ -25,12 +25,6 @@ meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
import_script/path=""
_subresources={
"materials": {
"Material": {
"use_external/enabled": true,
"use_external/path": "res://assets/Weapons/Gun/Gun.tres"
}
}
}
_subresources={}

View File

@@ -1,9 +0,0 @@
[gd_resource type="StandardMaterial3D" load_steps=3 format=3 uid="uid://cui8yu4njh1td"]
[ext_resource type="Texture2D" uid="uid://670hioiwiwy0" path="res://assets/Weapons/Gun/untitled.png" id="1_2k5kb"]
[ext_resource type="Texture2D" uid="uid://bsfkj480gegj3" path="res://assets/Weapons/Gun/Revolver_Material_Metallic.png" id="2_3065p"]
[resource]
albedo_texture = ExtResource("1_2k5kb")
metallic = 1.0
metallic_texture = ExtResource("2_3065p")

View File

@@ -1,173 +0,0 @@
{
"asset": {
"generator": "FBX2glTF",
"version": "2.0"
},
"scene": 0,
"buffers": [
{
"byteLength": 66576,
"uri": "buffer.bin"
}
],
"bufferViews": [
{
"buffer": 0,
"byteLength": 7824,
"byteOffset": 0,
"target": 34963
},
{
"buffer": 0,
"byteLength": 22032,
"byteOffset": 7824,
"target": 34962
},
{
"buffer": 0,
"byteLength": 22032,
"byteOffset": 29856,
"target": 34962
},
{
"buffer": 0,
"byteLength": 14688,
"byteOffset": 51888,
"target": 34962
}
],
"scenes": [
{
"name": "Root Scene",
"nodes": [
0
]
}
],
"accessors": [
{
"componentType": 5123,
"type": "SCALAR",
"count": 3912,
"bufferView": 0,
"byteOffset": 0
},
{
"componentType": 5126,
"type": "VEC3",
"count": 1836,
"bufferView": 1,
"byteOffset": 0,
"min": [
-0.015752213075757,
-0.00636364426463842,
-0.056483943015337
],
"max": [
0.015752213075757,
0.131857424974442,
0.00461326725780964
]
},
{
"componentType": 5126,
"type": "VEC3",
"count": 1836,
"bufferView": 2,
"byteOffset": 0
},
{
"componentType": 5126,
"type": "VEC2",
"count": 1836,
"bufferView": 3,
"byteOffset": 0
}
],
"samplers": [
{}
],
"materials": [
{
"name": "Material",
"alphaMode": "OPAQUE",
"extras": {
"fromFBX": {
"shadingModel": "Phong",
"isTruePBR": false
}
},
"pbrMetallicRoughness": {
"baseColorFactor": [
0.800000011920929,
0.800000011920929,
0.800000011920929,
1.0
],
"metallicFactor": 0.400000005960464,
"roughnessFactor": 0.229415729641914
}
}
],
"meshes": [
{
"name": "Cube.011",
"primitives": [
{
"material": 0,
"mode": 4,
"attributes": {
"NORMAL": 2,
"POSITION": 1,
"TEXCOORD_0": 3
},
"indices": 0
}
]
}
],
"nodes": [
{
"name": "RootNode",
"translation": [
0.0,
0.0,
0.0
],
"rotation": [
0.0,
0.0,
0.0,
1.0
],
"scale": [
1.0,
1.0,
1.0
],
"children": [
1
]
},
{
"name": "Cube.011",
"translation": [
-1.86264514923096e-09,
1.2553083896637,
3.58785033226013
],
"rotation": [
-0.707106828689575,
0.0,
0.0,
0.707106709480286
],
"scale": [
100.0,
100.0,
100.0
],
"mesh": 0
}
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

View File

@@ -0,0 +1,29 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://d3sl3ypfxbfmw"
path="res://.godot/imported/Revolver.glb-42b722e7214b13489cbe235a595da532.scn"
[deps]
source_file="res://assets/Weapons/Revolver/Revolver.glb"
dest_files=["res://.godot/imported/Revolver.glb-42b722e7214b13489cbe235a595da532.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
import_script/path=""
_subresources={}

View File

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 65 KiB

BIN
assets/Weapons/Uzi/Uzi.glb Normal file

Binary file not shown.

View File

@@ -0,0 +1,29 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://qc35m1a5gq81"
path="res://.godot/imported/Uzi.glb-866af1e12117b5342702c3f3313b68b1.scn"
[deps]
source_file="res://assets/Weapons/Uzi/Uzi.glb"
dest_files=["res://.godot/imported/Uzi.glb-866af1e12117b5342702c3f3313b68b1.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
import_script/path=""
_subresources={}

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -0,0 +1,55 @@
shader_type spatial;
render_mode blend_mix,depth_draw_opaque,cull_back,diffuse_burley,specular_schlick_ggx;
uniform float viewmodel_fov = 50.0f;
uniform vec4 albedo = vec4(1.0);
uniform sampler2D texture_albedo;
uniform float specular = 0.5f;
uniform float metallic = 1.0f;
uniform float roughness : hint_range(0,1) = 1.0f;
uniform float point_size : hint_range(0,128);
uniform sampler2D texture_metallic;
uniform vec4 metallic_texture_channel = vec4(1.0, 0.0, 0.0, 0.0);
uniform sampler2D texture_roughness;
uniform vec4 roughness_texture_channel = vec4(1.0, 0.0, 0.0, 0.0);
//uniform sampler2D texture_emission : hint_black_albedo;
//uniform vec4 emission : hint_color;
//uniform float emission_energy;
uniform sampler2D texture_normal : hint_normal;
uniform float normal_scale : hint_range(-16,16) = 0.5f;
uniform vec3 uv1_scale = vec3(1.0f);
uniform vec3 uv1_offset = vec3(0.0f);
uniform vec3 uv2_scale = vec3(1.0f);
uniform vec3 uv2_offset = vec3(0.0f);
void vertex() {
UV = UV * uv1_scale.xy + uv1_offset.xy;
/* begin shader magic*/
float onetanfov = 1.0f / tan(0.5f * (viewmodel_fov * PI / 180.0f));
float aspect = VIEWPORT_SIZE.x / VIEWPORT_SIZE.y;
// modify projection matrix
PROJECTION_MATRIX[1][1] = onetanfov;
PROJECTION_MATRIX[0][0] = onetanfov / aspect;
// draws the viewmodel over everything (disable if you want dof near on viewmodel)
POSITION = PROJECTION_MATRIX * MODELVIEW_MATRIX * vec4(VERTEX.xyz, 1.0);
POSITION.z = mix(POSITION.z, 0, 0.999);
/* end shader magic */
}
void fragment() {
vec2 base_uv = UV;
vec4 albedo_tex = texture(texture_albedo,base_uv);
albedo_tex *= COLOR;
ALBEDO = albedo.rgb * albedo_tex.rgb;
float metallic_tex = dot(texture(texture_metallic,base_uv),metallic_texture_channel);
METALLIC = metallic_tex * metallic;
float roughness_tex = dot(texture(texture_roughness,base_uv),roughness_texture_channel);
ROUGHNESS = roughness_tex * roughness;
SPECULAR = specular;
NORMAL_MAP = texture(texture_normal,base_uv).rgb;
NORMAL_MAP_DEPTH = normal_scale;
//vec3 emission_tex = texture(texture_emission,base_uv).rgb;
//EMISSION = (emission.rgb+emission_tex)*emission_energy;
}

View File

@@ -1,7 +0,0 @@
[gd_resource type="Environment" load_steps=2 format=2]
[sub_resource type="Sky" id=1]
[resource]
background_mode = 2
background_sky = SubResource( 1 )

View File

@@ -9,17 +9,17 @@
[sub_resource type="ShaderMaterial" id="ShaderMaterial_mqdp4"]
shader = ExtResource("3_3vnqi")
shader_parameter/center_enabled = null
shader_parameter/center_radius = null
shader_parameter/legs_enabled = null
shader_parameter/inverted = null
shader_parameter/color_id = null
shader_parameter/color_0 = null
shader_parameter/color_1 = null
shader_parameter/color_2 = null
shader_parameter/color_id = null
shader_parameter/inverted = null
shader_parameter/legs_enabled = null
shader_parameter/center_radius = null
shader_parameter/width = null
shader_parameter/len = null
shader_parameter/spacing = null
shader_parameter/spread = null
shader_parameter/width = null
[node name="PlayerQ3" type="CharacterBody3D"]
script = ExtResource("1")
@@ -36,7 +36,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.75, 0)
[node name="Hand" type="Node3D" parent="Body/Head"]
script = ExtResource("2_dl1i1")
[node name="ColorRect" type="ColorRect" parent="Body/Head/Hand"]
[node name="Crosshair" type="ColorRect" parent="Body/Head/Hand"]
material = SubResource("ShaderMaterial_mqdp4")
anchors_preset = 15
anchor_right = 1.0
@@ -45,7 +45,9 @@ grow_horizontal = 2
grow_vertical = 2
[node name="Camera3D" type="Camera3D" parent="Body/Head"]
cull_mask = 1048573
current = true
[node name="AimCast" type="RayCast3D" parent="Body/Head/Camera3D"]
target_position = Vector3(0, 0, -1)
collision_mask = 512

24
entities/enemy/dummy.tscn Normal file
View File

@@ -0,0 +1,24 @@
[gd_scene load_steps=5 format=3 uid="uid://bp5ekvan8qsmc"]
[ext_resource type="Script" path="res://scripts/player/Hitable.gd" id="1_f1sho"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_uw38t"]
albedo_color = Color(0.85098, 0, 0.172549, 1)
[sub_resource type="CapsuleMesh" id="CapsuleMesh_3ufk0"]
material = SubResource("StandardMaterial3D_uw38t")
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_mfgnk"]
[node name="Enemy" type="CharacterBody3D"]
collision_layer = 512
collision_mask = 512
script = ExtResource("1_f1sho")
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
mesh = SubResource("CapsuleMesh_3ufk0")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
shape = SubResource("CapsuleShape3D_mfgnk")

View File

@@ -9,20 +9,15 @@
config_version=5
_global_script_classes=[{
"base": "RefCounted",
"class": &"SfxrGenerator",
"base": "Node",
"class": &"Hitable",
"language": &"GDScript",
"path": "res://addons/godot_sfxr/SfxrGenerator.gd"
"path": "res://scripts/player/Hitable.gd"
}, {
"base": "Object",
"class": &"SfxrGlobals",
"base": "EditorPlugin",
"class": &"TBPlugin",
"language": &"GDScript",
"path": "res://addons/godot_sfxr/SfxrGlobals.gd"
}, {
"base": "Object",
"class": &"SfxrStreamPlayerInterface",
"language": &"GDScript",
"path": "res://addons/godot_sfxr/SfxrStreamPlayerInterface.gd"
"path": "res://addons/tbloader/src/plugin.gd"
}, {
"base": "Node3D",
"class": &"Weapon",
@@ -30,19 +25,22 @@ _global_script_classes=[{
"path": "res://scripts/player/Weapon.gd"
}]
_global_script_class_icons={
"SfxrGenerator": "",
"SfxrGlobals": "",
"SfxrStreamPlayerInterface": "",
"Hitable": "",
"TBPlugin": "",
"Weapon": ""
}
[application]
config/name="Scoom"
run/main_scene="res://Game.tscn"
run/main_scene="res://scenes/map/Map.tscn"
config/features=PackedStringArray("4.0")
config/icon="res://textures/icon.png"
[autoload]
Runtimeloader="*res://scripts/utils/runtimeloader.gd"
[display]
window/stretch/mode="2d"
@@ -53,7 +51,7 @@ window/size/test_height=720
[editor_plugins]
enabled=PackedStringArray("res://addons/godot_sfxr/plugin.cfg")
enabled=PackedStringArray("res://addons/tbloader/plugin.cfg")
[input]

BIN
scenes/map/Map.exr Normal file

Binary file not shown.

28
scenes/map/Map.exr.import Normal file
View File

@@ -0,0 +1,28 @@
[remap]
importer="2d_array_texture"
type="CompressedTexture2DArray"
uid="uid://cvieei4g32tkl"
path.etc2="res://.godot/imported/Map.exr-8b312acacc04c1841d718e5bb61b8317.etc2.ctexarray"
path.s3tc="res://.godot/imported/Map.exr-8b312acacc04c1841d718e5bb61b8317.s3tc.ctexarray"
metadata={
"imported_formats": ["etc2", "s3tc"],
"vram_texture": true
}
[deps]
source_file="res://scenes/map/Map.exr"
dest_files=["res://.godot/imported/Map.exr-8b312acacc04c1841d718e5bb61b8317.etc2.ctexarray", "res://.godot/imported/Map.exr-8b312acacc04c1841d718e5bb61b8317.s3tc.ctexarray"]
[params]
compress/mode=2
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/bptc_ldr=0
compress/channel_pack=1
mipmaps/generate=false
mipmaps/limit=-1
slices/horizontal=1
slices/vertical=4

BIN
scenes/map/Map.lmbake Normal file

Binary file not shown.

136
scenes/map/Map.tscn Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,27 @@
// Game: Godot
// Format: Standard
// entity 0
{
"classname" "worldspawn"
"_tb_mod" "textures;entities"
"_tb_textures" "textures"
// brush 0
{
( -480 -592 -16 ) ( -480 -584.8750000000001 -16 ) ( -480 -592 -15 ) dark 0.08771896 0 0 7.125 1
( -480 -592 -16 ) ( -480 -592 -15 ) ( -472.6250000000001 -592 -16 ) dark 0.084745765 0 0 7.375 1
( -480 -592 -16 ) ( -472.6250000000001 -592 -16 ) ( -480 -584.8750000000001 -16 ) dark 0.084745765 -0.08771896 0 7.375 7.125
( 464 320 16 ) ( 464 327.125 16 ) ( 471.3749999999997 320 16 ) dark 0.084745765 -0.08771896 0 7.375 7.125
( 464 320 16 ) ( 471.3749999999997 320 16 ) ( 464 320 17 ) dark 0.084745765 0 0 7.375 1
( 464 320 16 ) ( 464 320 17 ) ( 464 327.125 16 ) dark 0.08771896 0 0 7.125 1
}
}
// entity 1
{
"classname" "Player"
"origin" "32 -48 32"
}
// entity 2
{
"classname" "light"
"origin" "28 -188 20"
}

View File

@@ -0,0 +1,153 @@
// Game: Godot
// Format: Standard
// entity 0
{
"classname" "worldspawn"
"_tb_textures" "textures"
// brush 0
{
( -800 -272 -32 ) ( -800 -264.875 -32 ) ( -800 -272 -31 ) concrete_15 0 0 0 0.5 0.5
( -816 0 -32 ) ( -816 0 -31 ) ( -808.625 0 -32 ) concrete_15 0 0 0 0.5 0.5
( -816 -272 -32 ) ( -808.625 -272 -32 ) ( -816 -264.875 -32 ) concrete_15 0 0 0 0.5 0.5
( 128 640 0 ) ( 128 647.125 0 ) ( 135.375 640 0 ) concrete_15 0 0 0 0.5 0.5
( 128 1344 0 ) ( 135.375 1344 0 ) ( 128 1344 1 ) concrete_15 0 0 0 0.5 0.5
( 0 640 0 ) ( 0 640 1 ) ( 0 647.125 0 ) concrete_15 0 0 0 0.5 0.5
}
// brush 1
{
( -800 0 80 ) ( -800 1 80 ) ( -800 0 81 ) dark 0 512 0 0.015625 0.015625
( -800 0 80 ) ( -800 0 81 ) ( -799 0 80 ) dark 0 512 0 0.015625 0.015625
( -800 0 0 ) ( -799 0 0 ) ( -800 1 0 ) dark 0 512 0 0.015625 0.015625
( -736 144 208 ) ( -736 145 208 ) ( -735 144 208 ) dark 0 512 0 0.015625 0.015625
( -736 1344 96 ) ( -735 1344 96 ) ( -736 1344 97 ) dark 0 512 0 0.015625 0.015625
( -784 144 96 ) ( -784 144 97 ) ( -784 145 96 ) dark 0 512 0 0.015625 0.015625
}
// brush 2
{
( -784 0 208 ) ( -784 1 208 ) ( -784 0 209 ) dark 0 512 180 0.015625 0.015625
( -80 0 208 ) ( -80 0 209 ) ( -79 0 208 ) dark 0 512 180 0.015625 0.015625
( -80 0 0 ) ( -79 0 0 ) ( -80 1 0 ) dark 0 512 180 0.015625 0.015625
( 0 16 208 ) ( 0 17 208 ) ( 1 16 208 ) dark 0 512 180 0.015625 0.015625
( 0 16 224 ) ( 1 16 224 ) ( 0 16 225 ) dark 0 512 180 0.015625 0.015625
( 0 16 224 ) ( 0 16 225 ) ( 0 17 224 ) dark 0 512 180 0.015625 0.015625
}
// brush 3
{
( -16 496 0 ) ( -16 497 0 ) ( -16 496 1 ) dark 0 512 180 0.015625 0.015625
( -32 16 0 ) ( -32 16 1 ) ( -31 16 0 ) dark 0 512 180 0.015625 0.015625
( -32 496 0 ) ( -31 496 0 ) ( -32 497 0 ) dark 0 512 180 0.015625 0.015625
( 0 624 208 ) ( 0 625 208 ) ( 1 624 208 ) dark 0 512 180 0.015625 0.015625
( 0 1344 16 ) ( 1 1344 16 ) ( 0 1344 17 ) dark 0 512 180 0.015625 0.015625
( 0 624 16 ) ( 0 624 17 ) ( 0 625 16 ) dark 0 512 180 0.015625 0.015625
}
// brush 4
{
( -784 1328 0 ) ( -784 1329 0 ) ( -784 1328 1 ) dark 0 512 0 0.015625 0.015625
( -576 1328 0 ) ( -576 1328 1 ) ( -575 1328 0 ) dark 0 512 0 0.015625 0.015625
( -576 1328 0 ) ( -575 1328 0 ) ( -576 1329 0 ) dark 0 512 0 0.015625 0.015625
( -16 1344 208 ) ( -16 1345 208 ) ( -15 1344 208 ) dark 0 512 0 0.015625 0.015625
( -16 1344 16 ) ( -15 1344 16 ) ( -16 1344 17 ) dark 0 512 0 0.015625 0.015625
( -16 1344 16 ) ( -16 1344 17 ) ( -16 1345 16 ) dark 0 512 0 0.015625 0.015625
}
// brush 5
{
( -784 752 0 ) ( -784 752 96 ) ( -784 432 0 ) dark 0 512 0 0.015625 0.015625
( -784 752 96 ) ( -592 752 96 ) ( -592 432 0 ) dark 0 512 0 0.015625 0.015625
( -592 432 0 ) ( -592 752 0 ) ( -784 752 0 ) dark 0 512 0 0.015625 0.015625
( -592 752 0 ) ( -592 752 96 ) ( -784 752 96 ) dark 0 512 0 0.015625 0.015625
( -592 432 0 ) ( -592 752 96 ) ( -592 752 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 6
{
( -80 256 0 ) ( -16 256 72 ) ( -16 208 72 ) dark 0 512 0 0.015625 0.015625
( -80 208 0 ) ( -16 208 72 ) ( -16 208 0 ) dark 0 512 0 0.015625 0.015625
( -16 208 0 ) ( -16 256 0 ) ( -80 256 0 ) dark 0 512 0 0.015625 0.015625
( -16 256 0 ) ( -16 256 72 ) ( -80 256 0 ) dark 0 512 0 0.015625 0.015625
( -16 208 72 ) ( -16 256 72 ) ( -16 256 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 7
{
( -80 336 0 ) ( -16 336 80 ) ( -16 288 80 ) dark 0 512 0 0.015625 0.015625
( -80 288 0 ) ( -16 288 80 ) ( -16 288 0 ) dark 0 512 0 0.015625 0.015625
( -16 288 0 ) ( -16 336 0 ) ( -80 336 0 ) dark 0 512 0 0.015625 0.015625
( -16 336 0 ) ( -16 336 80 ) ( -80 336 0 ) dark 0 512 0 0.015625 0.015625
( -16 288 80 ) ( -16 336 80 ) ( -16 336 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 8
{
( -80 416 16 ) ( -80 368 16 ) ( -80 368 0 ) dark 0 512 0 0.015625 0.015625
( -80 368 16 ) ( -16 368 16 ) ( -16 368 0 ) dark 0 512 0 0.015625 0.015625
( -16 368 0 ) ( -16 416 0 ) ( -80 416 0 ) dark 0 512 0 0.015625 0.015625
( -80 416 16 ) ( -16 416 16 ) ( -16 368 16 ) dark 0 512 0 0.015625 0.015625
( -16 416 0 ) ( -16 416 16 ) ( -80 416 16 ) dark 0 512 0 0.015625 0.015625
( -16 368 16 ) ( -16 416 16 ) ( -16 416 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 9
{
( -80 544 32 ) ( -80 496 32 ) ( -80 496 0 ) dark 0 512 0 0.015625 0.015625
( -80 496 32 ) ( -16 496 32 ) ( -16 496 0 ) dark 0 512 0 0.015625 0.015625
( -16 496 0 ) ( -16 544 0 ) ( -80 544 0 ) dark 0 512 0 0.015625 0.015625
( -80 544 32 ) ( -16 544 32 ) ( -16 496 32 ) dark 0 512 0 0.015625 0.015625
( -16 544 0 ) ( -16 544 32 ) ( -80 544 32 ) dark 0 512 0 0.015625 0.015625
( -16 496 32 ) ( -16 544 32 ) ( -16 544 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 10
{
( -80 480 24 ) ( -80 432 24 ) ( -80 432 0 ) dark 0 512 0 0.015625 0.015625
( -80 432 24 ) ( -16 432 24 ) ( -16 432 0 ) dark 0 512 0 0.015625 0.015625
( -16 432 0 ) ( -16 480 0 ) ( -80 480 0 ) dark 0 512 0 0.015625 0.015625
( -80 480 24 ) ( -16 480 24 ) ( -16 432 24 ) dark 0 512 0 0.015625 0.015625
( -16 480 0 ) ( -16 480 24 ) ( -80 480 24 ) dark 0 512 0 0.015625 0.015625
( -16 432 24 ) ( -16 480 24 ) ( -16 480 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 11
{
( -80 608 40 ) ( -80 560 40 ) ( -80 560 0 ) dark 0 512 0 0.015625 0.015625
( -80 560 40 ) ( -16 560 40 ) ( -16 560 0 ) dark 0 512 0 0.015625 0.015625
( -16 560 0 ) ( -16 608 0 ) ( -80 608 0 ) dark 0 512 0 0.015625 0.015625
( -80 608 40 ) ( -16 608 40 ) ( -16 560 40 ) dark 0 512 0 0.015625 0.015625
( -16 608 0 ) ( -16 608 40 ) ( -80 608 40 ) dark 0 512 0 0.015625 0.015625
( -16 560 40 ) ( -16 608 40 ) ( -16 608 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 12
{
( -80 176 0 ) ( -16 176 64 ) ( -16 128 64 ) dark 0 512 0 0.015625 0.015625
( -80 128 0 ) ( -16 128 64 ) ( -16 128 0 ) dark 0 512 0 0.015625 0.015625
( -16 128 0 ) ( -16 176 0 ) ( -80 176 0 ) dark 0 512 0 0.015625 0.015625
( -16 176 0 ) ( -16 176 64 ) ( -80 176 0 ) dark 0 512 0 0.015625 0.015625
( -16 128 64 ) ( -16 176 64 ) ( -16 176 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 13
{
( -80 96 56 ) ( -80 80 56 ) ( -80 80 40 ) dark 0 512 0 0.015625 0.015625
( -80 80 56 ) ( -64 80 56 ) ( -64 80 40 ) dark 0 512 0 0.015625 0.015625
( -64 80 40 ) ( -64 96 40 ) ( -80 96 40 ) dark 0 512 0 0.015625 0.015625
( -80 96 56 ) ( -64 96 56 ) ( -64 80 56 ) dark 0 512 0 0.015625 0.015625
( -64 96 40 ) ( -64 96 56 ) ( -80 96 56 ) dark 0 512 0 0.015625 0.015625
( -64 80 56 ) ( -64 96 56 ) ( -64 96 40 ) dark 0 512 0 0.015625 0.015625
}
// brush 14
{
( -80 672 48 ) ( -80 624 48 ) ( -80 624 0 ) dark 0 512 0 0.015625 0.015625
( -80 624 48 ) ( -16 624 48 ) ( -16 624 0 ) dark 0 512 0 0.015625 0.015625
( -16 624 0 ) ( -16 672 0 ) ( -80 672 0 ) dark 0 512 0 0.015625 0.015625
( -80 672 48 ) ( -16 672 48 ) ( -16 624 48 ) dark 0 512 0 0.015625 0.015625
( -16 672 0 ) ( -16 672 48 ) ( -80 672 48 ) dark 0 512 0 0.015625 0.015625
( -16 624 48 ) ( -16 672 48 ) ( -16 672 0 ) dark 0 512 0 0.015625 0.015625
}
}
// entity 1
{
"classname" "Player"
"origin" "-576 208 16"
}
// entity 2
{
"classname" "enemy_dummy"
"origin" "-672 528 48"
}
// entity 3
{
"classname" "light"
"origin" "-20 740 68"
}

View File

@@ -0,0 +1,171 @@
// Game: Godot
// Format: Standard
// entity 0
{
"classname" "worldspawn"
"_tb_textures" "textures"
// brush 0
{
( -800 -272 -32 ) ( -800 -264.875 -32 ) ( -800 -272 -31 ) concrete_15 0 0 0 1 1
( -816 0 -32 ) ( -816 0 -31 ) ( -808.625 0 -32 ) concrete_15 0 0 0 1 1
( -816 -272 -32 ) ( -808.625 -272 -32 ) ( -816 -264.875 -32 ) concrete_15 0 0 0 1 1
( 128 640 0 ) ( 128 647.125 0 ) ( 135.375 640 0 ) concrete_15 0 0 0 1 1
( 128 1344 0 ) ( 135.375 1344 0 ) ( 128 1344 1 ) concrete_15 0 0 0 1 1
( 0 640 0 ) ( 0 640 1 ) ( 0 647.125 0 ) concrete_15 0 0 0 1 1
}
// brush 1
{
( -800 0 80 ) ( -800 1 80 ) ( -800 0 81 ) dark 0 512 0 0.015625 0.015625
( -800 0 80 ) ( -800 0 81 ) ( -799 0 80 ) dark 0 512 0 0.015625 0.015625
( -800 0 0 ) ( -799 0 0 ) ( -800 1 0 ) dark 0 512 0 0.015625 0.015625
( -736 144 208 ) ( -736 145 208 ) ( -735 144 208 ) dark 0 512 0 0.015625 0.015625
( -736 1344 96 ) ( -735 1344 96 ) ( -736 1344 97 ) dark 0 512 0 0.015625 0.015625
( -784 144 96 ) ( -784 144 97 ) ( -784 145 96 ) dark 0 512 0 0.015625 0.015625
}
// brush 2
{
( -784 0 208 ) ( -784 1 208 ) ( -784 0 209 ) dark 0 512 180 0.015625 0.015625
( -80 0 208 ) ( -80 0 209 ) ( -79 0 208 ) dark 0 512 180 0.015625 0.015625
( -80 0 0 ) ( -79 0 0 ) ( -80 1 0 ) dark 0 512 180 0.015625 0.015625
( 0 16 208 ) ( 0 17 208 ) ( 1 16 208 ) dark 0 512 180 0.015625 0.015625
( 0 16 224 ) ( 1 16 224 ) ( 0 16 225 ) dark 0 512 180 0.015625 0.015625
( 0 16 224 ) ( 0 16 225 ) ( 0 17 224 ) dark 0 512 180 0.015625 0.015625
}
// brush 3
{
( -16 496 0 ) ( -16 497 0 ) ( -16 496 1 ) dark 0 512 180 0.015625 0.015625
( -32 16 0 ) ( -32 16 1 ) ( -31 16 0 ) dark 0 512 180 0.015625 0.015625
( -32 496 0 ) ( -31 496 0 ) ( -32 497 0 ) dark 0 512 180 0.015625 0.015625
( 0 624 208 ) ( 0 625 208 ) ( 1 624 208 ) dark 0 512 180 0.015625 0.015625
( 0 1344 16 ) ( 1 1344 16 ) ( 0 1344 17 ) dark 0 512 180 0.015625 0.015625
( 0 624 16 ) ( 0 624 17 ) ( 0 625 16 ) dark 0 512 180 0.015625 0.015625
}
// brush 4
{
( -784 1328 0 ) ( -784 1329 0 ) ( -784 1328 1 ) dark 0 512 0 0.015625 0.015625
( -576 1328 0 ) ( -576 1328 1 ) ( -575 1328 0 ) dark 0 512 0 0.015625 0.015625
( -576 1328 0 ) ( -575 1328 0 ) ( -576 1329 0 ) dark 0 512 0 0.015625 0.015625
( -16 1344 208 ) ( -16 1345 208 ) ( -15 1344 208 ) dark 0 512 0 0.015625 0.015625
( -16 1344 16 ) ( -15 1344 16 ) ( -16 1344 17 ) dark 0 512 0 0.015625 0.015625
( -16 1344 16 ) ( -16 1344 17 ) ( -16 1345 16 ) dark 0 512 0 0.015625 0.015625
}
// brush 5
{
( -784 752 0 ) ( -784 752 96 ) ( -784 432 0 ) dark 0 512 0 0.015625 0.015625
( -784 752 96 ) ( -592 752 96 ) ( -592 432 0 ) dark 0 512 0 0.015625 0.015625
( -592 432 0 ) ( -592 752 0 ) ( -784 752 0 ) dark 0 512 0 0.015625 0.015625
( -592 752 0 ) ( -592 752 96 ) ( -784 752 96 ) dark 0 512 0 0.015625 0.015625
( -592 432 0 ) ( -592 752 96 ) ( -592 752 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 6
{
( -80 256 0 ) ( -16 256 72 ) ( -16 208 72 ) dark 0 512 0 0.015625 0.015625
( -80 208 0 ) ( -16 208 72 ) ( -16 208 0 ) dark 0 512 0 0.015625 0.015625
( -16 208 0 ) ( -16 256 0 ) ( -80 256 0 ) dark 0 512 0 0.015625 0.015625
( -16 256 0 ) ( -16 256 72 ) ( -80 256 0 ) dark 0 512 0 0.015625 0.015625
( -16 208 72 ) ( -16 256 72 ) ( -16 256 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 7
{
( -80 336 0 ) ( -16 336 80 ) ( -16 288 80 ) dark 0 512 0 0.015625 0.015625
( -80 288 0 ) ( -16 288 80 ) ( -16 288 0 ) dark 0 512 0 0.015625 0.015625
( -16 288 0 ) ( -16 336 0 ) ( -80 336 0 ) dark 0 512 0 0.015625 0.015625
( -16 336 0 ) ( -16 336 80 ) ( -80 336 0 ) dark 0 512 0 0.015625 0.015625
( -16 288 80 ) ( -16 336 80 ) ( -16 336 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 8
{
( -80 416 16 ) ( -80 368 16 ) ( -80 368 0 ) dark 0 512 0 0.015625 0.015625
( -80 368 16 ) ( -16 368 16 ) ( -16 368 0 ) dark 0 512 0 0.015625 0.015625
( -16 368 0 ) ( -16 416 0 ) ( -80 416 0 ) dark 0 512 0 0.015625 0.015625
( -80 416 16 ) ( -16 416 16 ) ( -16 368 16 ) dark 0 512 0 0.015625 0.015625
( -16 416 0 ) ( -16 416 16 ) ( -80 416 16 ) dark 0 512 0 0.015625 0.015625
( -16 368 16 ) ( -16 416 16 ) ( -16 416 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 9
{
( -80 544 32 ) ( -80 496 32 ) ( -80 496 0 ) dark 0 512 0 0.015625 0.015625
( -80 496 32 ) ( -16 496 32 ) ( -16 496 0 ) dark 0 512 0 0.015625 0.015625
( -16 496 0 ) ( -16 544 0 ) ( -80 544 0 ) dark 0 512 0 0.015625 0.015625
( -80 544 32 ) ( -16 544 32 ) ( -16 496 32 ) dark 0 512 0 0.015625 0.015625
( -16 544 0 ) ( -16 544 32 ) ( -80 544 32 ) dark 0 512 0 0.015625 0.015625
( -16 496 32 ) ( -16 544 32 ) ( -16 544 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 10
{
( -80 480 24 ) ( -80 432 24 ) ( -80 432 0 ) dark 0 512 0 0.015625 0.015625
( -80 432 24 ) ( -16 432 24 ) ( -16 432 0 ) dark 0 512 0 0.015625 0.015625
( -16 432 0 ) ( -16 480 0 ) ( -80 480 0 ) dark 0 512 0 0.015625 0.015625
( -80 480 24 ) ( -16 480 24 ) ( -16 432 24 ) dark 0 512 0 0.015625 0.015625
( -16 480 0 ) ( -16 480 24 ) ( -80 480 24 ) dark 0 512 0 0.015625 0.015625
( -16 432 24 ) ( -16 480 24 ) ( -16 480 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 11
{
( -80 608 40 ) ( -80 560 40 ) ( -80 560 0 ) dark 0 512 0 0.015625 0.015625
( -80 560 40 ) ( -16 560 40 ) ( -16 560 0 ) dark 0 512 0 0.015625 0.015625
( -16 560 0 ) ( -16 608 0 ) ( -80 608 0 ) dark 0 512 0 0.015625 0.015625
( -80 608 40 ) ( -16 608 40 ) ( -16 560 40 ) dark 0 512 0 0.015625 0.015625
( -16 608 0 ) ( -16 608 40 ) ( -80 608 40 ) dark 0 512 0 0.015625 0.015625
( -16 560 40 ) ( -16 608 40 ) ( -16 608 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 12
{
( -80 176 0 ) ( -16 176 64 ) ( -16 128 64 ) dark 0 512 0 0.015625 0.015625
( -80 128 0 ) ( -16 128 64 ) ( -16 128 0 ) dark 0 512 0 0.015625 0.015625
( -16 128 0 ) ( -16 176 0 ) ( -80 176 0 ) dark 0 512 0 0.015625 0.015625
( -16 176 0 ) ( -16 176 64 ) ( -80 176 0 ) dark 0 512 0 0.015625 0.015625
( -16 128 64 ) ( -16 176 64 ) ( -16 176 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 13
{
( -80 96 56 ) ( -80 80 56 ) ( -80 80 40 ) dark 0 512 0 0.015625 0.015625
( -80 80 56 ) ( -64 80 56 ) ( -64 80 40 ) dark 0 512 0 0.015625 0.015625
( -64 80 40 ) ( -64 96 40 ) ( -80 96 40 ) dark 0 512 0 0.015625 0.015625
( -80 96 56 ) ( -64 96 56 ) ( -64 80 56 ) dark 0 512 0 0.015625 0.015625
( -64 96 40 ) ( -64 96 56 ) ( -80 96 56 ) dark 0 512 0 0.015625 0.015625
( -64 80 56 ) ( -64 96 56 ) ( -64 96 40 ) dark 0 512 0 0.015625 0.015625
}
// brush 14
{
( -80 672 48 ) ( -80 624 48 ) ( -80 624 0 ) dark 0 512 0 0.015625 0.015625
( -80 624 48 ) ( -16 624 48 ) ( -16 624 0 ) dark 0 512 0 0.015625 0.015625
( -16 624 0 ) ( -16 672 0 ) ( -80 672 0 ) dark 0 512 0 0.015625 0.015625
( -80 672 48 ) ( -16 672 48 ) ( -16 624 48 ) dark 0 512 0 0.015625 0.015625
( -16 672 0 ) ( -16 672 48 ) ( -80 672 48 ) dark 0 512 0 0.015625 0.015625
( -16 624 48 ) ( -16 672 48 ) ( -16 672 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 15
{
( -467.7128129211019 637.2820323027552 64 ) ( -383.712812921102 491.7897644669695 64 ) ( -383.712812921102 491.7897644669695 0 ) shipping_container_01_side -175.73987 0 0 0.4330127 0.5
( -412.2871870788979 669.2820323027552 0 ) ( -412.2871870788979 669.2820323027552 64 ) ( -467.7128129211019 637.2820323027552 64 ) shipping_container_01_front 63.30011 1.3402672 0 0.42977914 0.49051714
( -328.2871870788979 523.7897644669695 0 ) ( -412.2871870788979 669.2820323027552 0 ) ( -467.7128129211019 637.2820323027552 0 ) shipping_container_01_side -38.589844 9.75885 30 1 1
( -467.7128129211019 637.2820323027552 64 ) ( -412.2871870788979 669.2820323027552 64 ) ( -328.2871870788979 523.7897644669695 64 ) shipping_container_01_front -75.654724 84.19873 30 0.4645997 1.319437
( -383.712812921102 491.7897644669695 64 ) ( -328.2871870788979 523.7897644669695 64 ) ( -328.2871870788979 523.7897644669695 0 ) shipping_container_01_front 1.0908203 0 0 0.426851 0.49832597
( -328.2871870788979 523.7897644669695 64 ) ( -412.2871870788979 669.2820323027552 64 ) ( -412.2871870788979 669.2820323027552 0 ) shipping_container_01_side -249.64062 0 0 0.4330127 0.5
}
// brush 16
{
( -320 304 0 ) ( -320 305 0 ) ( -320 304 1 ) shipping_container_01_front 0 0 0 1 1
( -320 304 0 ) ( -320 304 1 ) ( -319 304 0 ) shipping_container_01_front 0 0 0 1 1
( -320 304 0 ) ( -319 304 0 ) ( -320 305 0 ) shipping_container_01_front 0 0 0 1 1
( -304 320 8 ) ( -304 321 8 ) ( -303 320 8 ) shipping_container_01_front 0 0 0 1 1
( -304 320 8 ) ( -303 320 8 ) ( -304 320 9 ) shipping_container_01_front 0 0 0 1 1
( -304 320 8 ) ( -304 320 9 ) ( -304 321 8 ) shipping_container_01_front 0 0 0 1 1
}
}
// entity 1
{
"classname" "Player"
"origin" "-576 208 16"
}
// entity 2
{
"classname" "enemy_dummy"
"origin" "-672 528 48"
}
// entity 3
{
"classname" "light"
"origin" "-20 740 68"
}

View File

@@ -0,0 +1,172 @@
// Game: Godot
// Format: Standard
// entity 0
{
"classname" "worldspawn"
"_tb_textures" "textures"
// brush 0
{
( -800 -272 -32 ) ( -800 -264.875 -32 ) ( -800 -272 -31 ) concrete_15 0 0 0 1 1
( -816 0 -32 ) ( -816 0 -31 ) ( -808.625 0 -32 ) concrete_15 0 0 0 1 1
( -816 -272 -32 ) ( -808.625 -272 -32 ) ( -816 -264.875 -32 ) concrete_15 0 0 0 1 1
( 128 640 0 ) ( 128 647.125 0 ) ( 135.375 640 0 ) concrete_15 0 0 0 1 1
( 128 1344 0 ) ( 135.375 1344 0 ) ( 128 1344 1 ) concrete_15 0 0 0 1 1
( 0 640 0 ) ( 0 640 1 ) ( 0 647.125 0 ) concrete_15 0 0 0 1 1
}
// brush 1
{
( -800 0 80 ) ( -800 1 80 ) ( -800 0 81 ) dark 0 512 0 0.015625 0.015625
( -800 0 80 ) ( -800 0 81 ) ( -799 0 80 ) dark 0 512 0 0.015625 0.015625
( -800 0 0 ) ( -799 0 0 ) ( -800 1 0 ) dark 0 512 0 0.015625 0.015625
( -736 144 208 ) ( -736 145 208 ) ( -735 144 208 ) dark 0 512 0 0.015625 0.015625
( -736 1344 96 ) ( -735 1344 96 ) ( -736 1344 97 ) dark 0 512 0 0.015625 0.015625
( -784 144 96 ) ( -784 144 97 ) ( -784 145 96 ) dark 0 512 0 0.015625 0.015625
}
// brush 2
{
( -784 0 208 ) ( -784 1 208 ) ( -784 0 209 ) dark 0 512 180 0.015625 0.015625
( -80 0 208 ) ( -80 0 209 ) ( -79 0 208 ) dark 0 512 180 0.015625 0.015625
( -80 0 0 ) ( -79 0 0 ) ( -80 1 0 ) dark 0 512 180 0.015625 0.015625
( 0 16 208 ) ( 0 17 208 ) ( 1 16 208 ) dark 0 512 180 0.015625 0.015625
( 0 16 224 ) ( 1 16 224 ) ( 0 16 225 ) dark 0 512 180 0.015625 0.015625
( 0 16 224 ) ( 0 16 225 ) ( 0 17 224 ) dark 0 512 180 0.015625 0.015625
}
// brush 3
{
( -16 496 0 ) ( -16 497 0 ) ( -16 496 1 ) dark 0 512 180 0.015625 0.015625
( -32 16 0 ) ( -32 16 1 ) ( -31 16 0 ) dark 0 512 180 0.015625 0.015625
( -32 496 0 ) ( -31 496 0 ) ( -32 497 0 ) dark 0 512 180 0.015625 0.015625
( 0 624 208 ) ( 0 625 208 ) ( 1 624 208 ) dark 0 512 180 0.015625 0.015625
( 0 1344 16 ) ( 1 1344 16 ) ( 0 1344 17 ) dark 0 512 180 0.015625 0.015625
( 0 624 16 ) ( 0 624 17 ) ( 0 625 16 ) dark 0 512 180 0.015625 0.015625
}
// brush 4
{
( -784 1328 0 ) ( -784 1329 0 ) ( -784 1328 1 ) dark 0 512 0 0.015625 0.015625
( -576 1328 0 ) ( -576 1328 1 ) ( -575 1328 0 ) dark 0 512 0 0.015625 0.015625
( -576 1328 0 ) ( -575 1328 0 ) ( -576 1329 0 ) dark 0 512 0 0.015625 0.015625
( -16 1344 208 ) ( -16 1345 208 ) ( -15 1344 208 ) dark 0 512 0 0.015625 0.015625
( -16 1344 16 ) ( -15 1344 16 ) ( -16 1344 17 ) dark 0 512 0 0.015625 0.015625
( -16 1344 16 ) ( -16 1344 17 ) ( -16 1345 16 ) dark 0 512 0 0.015625 0.015625
}
// brush 5
{
( -784 752 0 ) ( -784 752 96 ) ( -784 432 0 ) dark 0 512 0 0.015625 0.015625
( -784 752 96 ) ( -592 752 96 ) ( -592 432 0 ) dark 0 512 0 0.015625 0.015625
( -592 432 0 ) ( -592 752 0 ) ( -784 752 0 ) dark 0 512 0 0.015625 0.015625
( -592 752 0 ) ( -592 752 96 ) ( -784 752 96 ) dark 0 512 0 0.015625 0.015625
( -592 432 0 ) ( -592 752 96 ) ( -592 752 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 6
{
( -80 256 0 ) ( -16 256 72 ) ( -16 208 72 ) dark 0 512 0 0.015625 0.015625
( -80 208 0 ) ( -16 208 72 ) ( -16 208 0 ) dark 0 512 0 0.015625 0.015625
( -16 208 0 ) ( -16 256 0 ) ( -80 256 0 ) dark 0 512 0 0.015625 0.015625
( -16 256 0 ) ( -16 256 72 ) ( -80 256 0 ) dark 0 512 0 0.015625 0.015625
( -16 208 72 ) ( -16 256 72 ) ( -16 256 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 7
{
( -80 336 0 ) ( -16 336 80 ) ( -16 288 80 ) dark 0 512 0 0.015625 0.015625
( -80 288 0 ) ( -16 288 80 ) ( -16 288 0 ) dark 0 512 0 0.015625 0.015625
( -16 288 0 ) ( -16 336 0 ) ( -80 336 0 ) dark 0 512 0 0.015625 0.015625
( -16 336 0 ) ( -16 336 80 ) ( -80 336 0 ) dark 0 512 0 0.015625 0.015625
( -16 288 80 ) ( -16 336 80 ) ( -16 336 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 8
{
( -80 416 16 ) ( -80 368 16 ) ( -80 368 0 ) dark 0 512 0 0.015625 0.015625
( -80 368 16 ) ( -16 368 16 ) ( -16 368 0 ) dark 0 512 0 0.015625 0.015625
( -16 368 0 ) ( -16 416 0 ) ( -80 416 0 ) dark 0 512 0 0.015625 0.015625
( -80 416 16 ) ( -16 416 16 ) ( -16 368 16 ) dark 0 512 0 0.015625 0.015625
( -16 416 0 ) ( -16 416 16 ) ( -80 416 16 ) dark 0 512 0 0.015625 0.015625
( -16 368 16 ) ( -16 416 16 ) ( -16 416 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 9
{
( -80 544 32 ) ( -80 496 32 ) ( -80 496 0 ) dark 0 512 0 0.015625 0.015625
( -80 496 32 ) ( -16 496 32 ) ( -16 496 0 ) dark 0 512 0 0.015625 0.015625
( -16 496 0 ) ( -16 544 0 ) ( -80 544 0 ) dark 0 512 0 0.015625 0.015625
( -80 544 32 ) ( -16 544 32 ) ( -16 496 32 ) dark 0 512 0 0.015625 0.015625
( -16 544 0 ) ( -16 544 32 ) ( -80 544 32 ) dark 0 512 0 0.015625 0.015625
( -16 496 32 ) ( -16 544 32 ) ( -16 544 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 10
{
( -80 480 24 ) ( -80 432 24 ) ( -80 432 0 ) dark 0 512 0 0.015625 0.015625
( -80 432 24 ) ( -16 432 24 ) ( -16 432 0 ) dark 0 512 0 0.015625 0.015625
( -16 432 0 ) ( -16 480 0 ) ( -80 480 0 ) dark 0 512 0 0.015625 0.015625
( -80 480 24 ) ( -16 480 24 ) ( -16 432 24 ) dark 0 512 0 0.015625 0.015625
( -16 480 0 ) ( -16 480 24 ) ( -80 480 24 ) dark 0 512 0 0.015625 0.015625
( -16 432 24 ) ( -16 480 24 ) ( -16 480 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 11
{
( -80 608 40 ) ( -80 560 40 ) ( -80 560 0 ) dark 0 512 0 0.015625 0.015625
( -80 560 40 ) ( -16 560 40 ) ( -16 560 0 ) dark 0 512 0 0.015625 0.015625
( -16 560 0 ) ( -16 608 0 ) ( -80 608 0 ) dark 0 512 0 0.015625 0.015625
( -80 608 40 ) ( -16 608 40 ) ( -16 560 40 ) dark 0 512 0 0.015625 0.015625
( -16 608 0 ) ( -16 608 40 ) ( -80 608 40 ) dark 0 512 0 0.015625 0.015625
( -16 560 40 ) ( -16 608 40 ) ( -16 608 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 12
{
( -80 176 0 ) ( -16 176 64 ) ( -16 128 64 ) dark 0 512 0 0.015625 0.015625
( -80 128 0 ) ( -16 128 64 ) ( -16 128 0 ) dark 0 512 0 0.015625 0.015625
( -16 128 0 ) ( -16 176 0 ) ( -80 176 0 ) dark 0 512 0 0.015625 0.015625
( -16 176 0 ) ( -16 176 64 ) ( -80 176 0 ) dark 0 512 0 0.015625 0.015625
( -16 128 64 ) ( -16 176 64 ) ( -16 176 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 13
{
( -80 96 56 ) ( -80 80 56 ) ( -80 80 40 ) dark 0 512 0 0.015625 0.015625
( -80 80 56 ) ( -64 80 56 ) ( -64 80 40 ) dark 0 512 0 0.015625 0.015625
( -64 80 40 ) ( -64 96 40 ) ( -80 96 40 ) dark 0 512 0 0.015625 0.015625
( -80 96 56 ) ( -64 96 56 ) ( -64 80 56 ) dark 0 512 0 0.015625 0.015625
( -64 96 40 ) ( -64 96 56 ) ( -80 96 56 ) dark 0 512 0 0.015625 0.015625
( -64 80 56 ) ( -64 96 56 ) ( -64 96 40 ) dark 0 512 0 0.015625 0.015625
}
// brush 14
{
( -80 672 48 ) ( -80 624 48 ) ( -80 624 0 ) dark 0 512 0 0.015625 0.015625
( -80 624 48 ) ( -16 624 48 ) ( -16 624 0 ) dark 0 512 0 0.015625 0.015625
( -16 624 0 ) ( -16 672 0 ) ( -80 672 0 ) dark 0 512 0 0.015625 0.015625
( -80 672 48 ) ( -16 672 48 ) ( -16 624 48 ) dark 0 512 0 0.015625 0.015625
( -16 672 0 ) ( -16 672 48 ) ( -80 672 48 ) dark 0 512 0 0.015625 0.015625
( -16 624 48 ) ( -16 672 48 ) ( -16 672 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 15
{
( -467.7128129211019 637.2820323027552 64 ) ( -383.712812921102 491.7897644669695 64 ) ( -383.712812921102 491.7897644669695 0 ) shipping_container_01_side -175.73987 0 0 0.4330127 0.5
( -412.2871870788979 669.2820323027552 0 ) ( -412.2871870788979 669.2820323027552 64 ) ( -467.7128129211019 637.2820323027552 64 ) shipping_container_01_front 63.30011 1.3402672 0 0.42977914 0.49051714
( -328.2871870788979 523.7897644669695 0 ) ( -412.2871870788979 669.2820323027552 0 ) ( -467.7128129211019 637.2820323027552 0 ) shipping_container_01_side -38.589844 9.75885 30 1 1
( -467.7128129211019 637.2820323027552 64 ) ( -412.2871870788979 669.2820323027552 64 ) ( -328.2871870788979 523.7897644669695 64 ) shipping_container_01_front -75.654724 84.19873 30 0.4645997 1.319437
( -383.712812921102 491.7897644669695 64 ) ( -328.2871870788979 523.7897644669695 64 ) ( -328.2871870788979 523.7897644669695 0 ) shipping_container_01_front 1.0908203 0 0 0.426851 0.49832597
( -328.2871870788979 523.7897644669695 64 ) ( -412.2871870788979 669.2820323027552 64 ) ( -412.2871870788979 669.2820323027552 0 ) shipping_container_01_side -249.64062 0 0 0.4330127 0.5
}
// brush 16
{
( -320 512 8 ) ( -320 256 8 ) ( -320 256 0 ) shipping_container_01_front 0 0 0 1 1
( -320 256 8 ) ( -64 256 8 ) ( -64 256 0 ) shipping_container_01_front 0 0 0 1 1
( -64 256 0 ) ( -64 512 0 ) ( -320 512 0 ) shipping_container_01_front 0 0 0 1 1
( -320 512 8 ) ( -64 512 8 ) ( -64 256 8 ) shipping_container_01_front 0 0 0 1 1
( -64 512 0 ) ( -64 512 8 ) ( -320 512 8 ) shipping_container_01_front 0 0 0 1 1
( -64 320 0 ) ( -160 512 128 ) ( -160 512 0 ) shipping_container_01_front 0 0 0 1 1
( -64 256 8 ) ( -64 512 8 ) ( -64 512 0 ) shipping_container_01_front 0 0 0 1 1
}
}
// entity 1
{
"classname" "Player"
"origin" "-576 208 16"
}
// entity 2
{
"classname" "enemy_dummy"
"origin" "-672 528 48"
}
// entity 3
{
"classname" "light"
"origin" "-20 740 68"
}

View File

@@ -0,0 +1,393 @@
// Game: Godot
// Format: Standard
// entity 0
{
"classname" "worldspawn"
"_tb_textures" "textures"
// brush 0
{
( -800 -272 -32 ) ( -800 -264.875 -32 ) ( -800 -272 -31 ) concrete_15 0 0 0 1 1
( -816 0 -32 ) ( -816 0 -31 ) ( -808.625 0 -32 ) concrete_15 0 0 0 1 1
( -816 -272 -32 ) ( -808.625 -272 -32 ) ( -816 -264.875 -32 ) concrete_15 0 0 0 1 1
( 128 640 0 ) ( 128 647.125 0 ) ( 135.375 640 0 ) concrete_15 0 0 0 1 1
( 128 1344 0 ) ( 135.375 1344 0 ) ( 128 1344 1 ) concrete_15 0 0 0 1 1
( 0 640 0 ) ( 0 640 1 ) ( 0 647.125 0 ) concrete_15 0 0 0 1 1
}
// brush 1
{
( -800 0 80 ) ( -800 1 80 ) ( -800 0 81 ) dark 0 512 0 0.015625 0.015625
( -800 0 80 ) ( -800 0 81 ) ( -799 0 80 ) dark 0 512 0 0.015625 0.015625
( -800 0 0 ) ( -799 0 0 ) ( -800 1 0 ) dark 0 512 0 0.015625 0.015625
( -736 144 208 ) ( -736 145 208 ) ( -735 144 208 ) dark 0 512 0 0.015625 0.015625
( -736 1344 96 ) ( -735 1344 96 ) ( -736 1344 97 ) dark 0 512 0 0.015625 0.015625
( -784 144 96 ) ( -784 144 97 ) ( -784 145 96 ) dark 0 512 0 0.015625 0.015625
}
// brush 2
{
( -784 0 208 ) ( -784 1 208 ) ( -784 0 209 ) dark 0 512 180 0.015625 0.015625
( -80 0 208 ) ( -80 0 209 ) ( -79 0 208 ) dark 0 512 180 0.015625 0.015625
( -80 0 0 ) ( -79 0 0 ) ( -80 1 0 ) dark 0 512 180 0.015625 0.015625
( 0 16 208 ) ( 0 17 208 ) ( 1 16 208 ) dark 0 512 180 0.015625 0.015625
( 0 16 224 ) ( 1 16 224 ) ( 0 16 225 ) dark 0 512 180 0.015625 0.015625
( 0 16 224 ) ( 0 16 225 ) ( 0 17 224 ) dark 0 512 180 0.015625 0.015625
}
// brush 3
{
( -16 496 0 ) ( -16 497 0 ) ( -16 496 1 ) dark 0 512 180 0.015625 0.015625
( -32 16 0 ) ( -32 16 1 ) ( -31 16 0 ) dark 0 512 180 0.015625 0.015625
( -32 496 0 ) ( -31 496 0 ) ( -32 497 0 ) dark 0 512 180 0.015625 0.015625
( 0 624 208 ) ( 0 625 208 ) ( 1 624 208 ) dark 0 512 180 0.015625 0.015625
( 0 1344 16 ) ( 1 1344 16 ) ( 0 1344 17 ) dark 0 512 180 0.015625 0.015625
( 0 624 16 ) ( 0 624 17 ) ( 0 625 16 ) dark 0 512 180 0.015625 0.015625
}
// brush 4
{
( -784 1328 0 ) ( -784 1329 0 ) ( -784 1328 1 ) dark 0 512 0 0.015625 0.015625
( -576 1328 0 ) ( -576 1328 1 ) ( -575 1328 0 ) dark 0 512 0 0.015625 0.015625
( -576 1328 0 ) ( -575 1328 0 ) ( -576 1329 0 ) dark 0 512 0 0.015625 0.015625
( -16 1344 208 ) ( -16 1345 208 ) ( -15 1344 208 ) dark 0 512 0 0.015625 0.015625
( -16 1344 16 ) ( -15 1344 16 ) ( -16 1344 17 ) dark 0 512 0 0.015625 0.015625
( -16 1344 16 ) ( -16 1344 17 ) ( -16 1345 16 ) dark 0 512 0 0.015625 0.015625
}
// brush 5
{
( -784 752 0 ) ( -784 752 96 ) ( -784 432 0 ) dark 0 512 0 0.015625 0.015625
( -784 752 96 ) ( -592 752 96 ) ( -592 432 0 ) dark 0 512 0 0.015625 0.015625
( -592 432 0 ) ( -592 752 0 ) ( -784 752 0 ) dark 0 512 0 0.015625 0.015625
( -592 752 0 ) ( -592 752 96 ) ( -784 752 96 ) dark 0 512 0 0.015625 0.015625
( -592 432 0 ) ( -592 752 96 ) ( -592 752 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 6
{
( -80 256 0 ) ( -16 256 72 ) ( -16 208 72 ) dark 0 512 0 0.015625 0.015625
( -80 208 0 ) ( -16 208 72 ) ( -16 208 0 ) dark 0 512 0 0.015625 0.015625
( -16 208 0 ) ( -16 256 0 ) ( -80 256 0 ) dark 0 512 0 0.015625 0.015625
( -16 256 0 ) ( -16 256 72 ) ( -80 256 0 ) dark 0 512 0 0.015625 0.015625
( -16 208 72 ) ( -16 256 72 ) ( -16 256 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 7
{
( -80 336 0 ) ( -16 336 80 ) ( -16 288 80 ) dark 0 512 0 0.015625 0.015625
( -80 288 0 ) ( -16 288 80 ) ( -16 288 0 ) dark 0 512 0 0.015625 0.015625
( -16 288 0 ) ( -16 336 0 ) ( -80 336 0 ) dark 0 512 0 0.015625 0.015625
( -16 336 0 ) ( -16 336 80 ) ( -80 336 0 ) dark 0 512 0 0.015625 0.015625
( -16 288 80 ) ( -16 336 80 ) ( -16 336 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 8
{
( -80 416 16 ) ( -80 368 16 ) ( -80 368 0 ) dark 0 512 0 0.015625 0.015625
( -80 368 16 ) ( -16 368 16 ) ( -16 368 0 ) dark 0 512 0 0.015625 0.015625
( -16 368 0 ) ( -16 416 0 ) ( -80 416 0 ) dark 0 512 0 0.015625 0.015625
( -80 416 16 ) ( -16 416 16 ) ( -16 368 16 ) dark 0 512 0 0.015625 0.015625
( -16 416 0 ) ( -16 416 16 ) ( -80 416 16 ) dark 0 512 0 0.015625 0.015625
( -16 368 16 ) ( -16 416 16 ) ( -16 416 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 9
{
( -80 544 32 ) ( -80 496 32 ) ( -80 496 0 ) dark 0 512 0 0.015625 0.015625
( -80 496 32 ) ( -16 496 32 ) ( -16 496 0 ) dark 0 512 0 0.015625 0.015625
( -16 496 0 ) ( -16 544 0 ) ( -80 544 0 ) dark 0 512 0 0.015625 0.015625
( -80 544 32 ) ( -16 544 32 ) ( -16 496 32 ) dark 0 512 0 0.015625 0.015625
( -16 544 0 ) ( -16 544 32 ) ( -80 544 32 ) dark 0 512 0 0.015625 0.015625
( -16 496 32 ) ( -16 544 32 ) ( -16 544 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 10
{
( -80 480 24 ) ( -80 432 24 ) ( -80 432 0 ) dark 0 512 0 0.015625 0.015625
( -80 432 24 ) ( -16 432 24 ) ( -16 432 0 ) dark 0 512 0 0.015625 0.015625
( -16 432 0 ) ( -16 480 0 ) ( -80 480 0 ) dark 0 512 0 0.015625 0.015625
( -80 480 24 ) ( -16 480 24 ) ( -16 432 24 ) dark 0 512 0 0.015625 0.015625
( -16 480 0 ) ( -16 480 24 ) ( -80 480 24 ) dark 0 512 0 0.015625 0.015625
( -16 432 24 ) ( -16 480 24 ) ( -16 480 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 11
{
( -80 608 40 ) ( -80 560 40 ) ( -80 560 0 ) dark 0 512 0 0.015625 0.015625
( -80 560 40 ) ( -16 560 40 ) ( -16 560 0 ) dark 0 512 0 0.015625 0.015625
( -16 560 0 ) ( -16 608 0 ) ( -80 608 0 ) dark 0 512 0 0.015625 0.015625
( -80 608 40 ) ( -16 608 40 ) ( -16 560 40 ) dark 0 512 0 0.015625 0.015625
( -16 608 0 ) ( -16 608 40 ) ( -80 608 40 ) dark 0 512 0 0.015625 0.015625
( -16 560 40 ) ( -16 608 40 ) ( -16 608 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 12
{
( -80 176 0 ) ( -16 176 64 ) ( -16 128 64 ) dark 0 512 0 0.015625 0.015625
( -80 128 0 ) ( -16 128 64 ) ( -16 128 0 ) dark 0 512 0 0.015625 0.015625
( -16 128 0 ) ( -16 176 0 ) ( -80 176 0 ) dark 0 512 0 0.015625 0.015625
( -16 176 0 ) ( -16 176 64 ) ( -80 176 0 ) dark 0 512 0 0.015625 0.015625
( -16 128 64 ) ( -16 176 64 ) ( -16 176 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 13
{
( -80 96 56 ) ( -80 80 56 ) ( -80 80 40 ) dark 0 512 0 0.015625 0.015625
( -80 80 56 ) ( -64 80 56 ) ( -64 80 40 ) dark 0 512 0 0.015625 0.015625
( -64 80 40 ) ( -64 96 40 ) ( -80 96 40 ) dark 0 512 0 0.015625 0.015625
( -80 96 56 ) ( -64 96 56 ) ( -64 80 56 ) dark 0 512 0 0.015625 0.015625
( -64 96 40 ) ( -64 96 56 ) ( -80 96 56 ) dark 0 512 0 0.015625 0.015625
( -64 80 56 ) ( -64 96 56 ) ( -64 96 40 ) dark 0 512 0 0.015625 0.015625
}
// brush 14
{
( -80 672 48 ) ( -80 624 48 ) ( -80 624 0 ) dark 0 512 0 0.015625 0.015625
( -80 624 48 ) ( -16 624 48 ) ( -16 624 0 ) dark 0 512 0 0.015625 0.015625
( -16 624 0 ) ( -16 672 0 ) ( -80 672 0 ) dark 0 512 0 0.015625 0.015625
( -80 672 48 ) ( -16 672 48 ) ( -16 624 48 ) dark 0 512 0 0.015625 0.015625
( -16 672 0 ) ( -16 672 48 ) ( -80 672 48 ) dark 0 512 0 0.015625 0.015625
( -16 624 48 ) ( -16 672 48 ) ( -16 672 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 15
{
( -467.7128129211019 637.2820323027552 64 ) ( -383.712812921102 491.7897644669695 64 ) ( -383.712812921102 491.7897644669695 0 ) shipping_container_01_side -175.73987 0 0 0.4330127 0.5
( -412.2871870788979 669.2820323027552 0 ) ( -412.2871870788979 669.2820323027552 64 ) ( -467.7128129211019 637.2820323027552 64 ) shipping_container_01_front 63.30011 1.3402672 0 0.42977914 0.49051714
( -328.2871870788979 523.7897644669695 0 ) ( -412.2871870788979 669.2820323027552 0 ) ( -467.7128129211019 637.2820323027552 0 ) shipping_container_01_side -38.589844 9.75885 30 1 1
( -467.7128129211019 637.2820323027552 64 ) ( -412.2871870788979 669.2820323027552 64 ) ( -328.2871870788979 523.7897644669695 64 ) shipping_container_01_front -75.654724 84.19873 30 0.4645997 1.319437
( -383.712812921102 491.7897644669695 64 ) ( -328.2871870788979 523.7897644669695 64 ) ( -328.2871870788979 523.7897644669695 0 ) shipping_container_01_front 1.0908203 0 0 0.426851 0.49832597
( -328.2871870788979 523.7897644669695 64 ) ( -412.2871870788979 669.2820323027552 64 ) ( -412.2871870788979 669.2820323027552 0 ) shipping_container_01_side -249.64062 0 0 0.4330127 0.5
}
}
// entity 1
{
"classname" "Player"
"origin" "-576 208 16"
}
// entity 2
{
"classname" "enemy_dummy"
"origin" "-672 528 48"
}
// entity 3
{
"classname" "light"
"origin" "-20 740 68"
}
// entity 4
{
"classname" "func_group"
"_tb_type" "_tb_group"
"_tb_name" "Arch Group"
"_tb_id" "2"
// brush 0
{
( -417 463.5 -16 ) ( -472 392 28 ) ( -472 392 -16 ) shipping_container_01_front 11.636353 -46.545456 0 0.34375 0.34375
( -384 392 -16 ) ( -384 480 -16 ) ( -472 480 -16 ) shipping_container_01_front -98.90906 -11.636353 0 0.34375 0.34375
( -472 480 -13.25 ) ( -384 480 -13.25 ) ( -384 392 -13.25 ) shipping_container_01_front -98.90906 -11.636353 0 0.34375 0.34375
( -400.5 447 -16 ) ( -472 392 -16 ) ( -472 392 28 ) shipping_container_01_front -98.90906 -46.545456 0 0.34375 0.34375
( -417 463.5 -16 ) ( -400.5 447 -16 ) ( -400.5 447 28 ) shipping_container_01_front 11.636353 -46.545456 0 0.34375 0.34375
}
// brush 1
{
( -384 403 -16 ) ( -472 392 28 ) ( -472 392 -16 ) shipping_container_01_front -98.90906 -46.545456 0 0.34375 0.34375
( -472 392 -13.25 ) ( -384 392 -13.25 ) ( -384 392 -16 ) shipping_container_01_front -98.90906 -46.545456 0 0.34375 0.34375
( -384 392 -16 ) ( -384 480 -16 ) ( -472 480 -16 ) shipping_container_01_front -98.90906 -11.636353 0 0.34375 0.34375
( -472 480 -13.25 ) ( -384 480 -13.25 ) ( -384 392 -13.25 ) shipping_container_01_front -98.90906 -11.636353 0 0.34375 0.34375
( -384 392 -13.25 ) ( -384 480 -13.25 ) ( -384 480 -16 ) shipping_container_01_front 11.636353 -46.545456 0 0.34375 0.34375
}
// brush 2
{
( -461 480 -16 ) ( -472 392 28 ) ( -472 392 -16 ) shipping_container_01_front 11.636353 -46.545456 0 0.34375 0.34375
( -384 392 -16 ) ( -384 480 -16 ) ( -472 480 -16 ) shipping_container_01_front -98.9093 -11.636353 0 0.34375 0.34375
( -472 480 -13.25 ) ( -384 480 -13.25 ) ( -384 392 -13.25 ) shipping_container_01_front -98.9093 -11.636353 0 0.34375 0.34375
( -461 480 -16 ) ( -439 474.5 -16 ) ( -439 474.5 28 ) shipping_container_01_front -98.90906 -46.545456 0 0.34375 0.34375
( -439 474.5 -16 ) ( -472 392 -16 ) ( -472 392 28 ) shipping_container_01_front 11.636353 -46.545456 0 0.34375 0.34375
}
// brush 3
{
( -400.5 447 -16 ) ( -472 392 28 ) ( -472 392 -16 ) shipping_container_01_front -98.90906 -46.545456 0 0.34375 0.34375
( -384 392 -16 ) ( -384 480 -16 ) ( -472 480 -16 ) shipping_container_01_front -98.90918 -11.636353 0 0.34375 0.34375
( -472 480 -13.25 ) ( -384 480 -13.25 ) ( -384 392 -13.25 ) shipping_container_01_front -98.90918 -11.636353 0 0.34375 0.34375
( -389.5 425 -16 ) ( -472 392 -16 ) ( -472 392 28 ) shipping_container_01_front -98.90906 -46.545456 0 0.34375 0.34375
( -384 414 -16 ) ( -417 480 28 ) ( -417 480 -16 ) shipping_container_01_front 11.636353 -46.545456 0 0.34375 0.34375
}
// brush 4
{
( -389.5 425 -16 ) ( -472 392 28 ) ( -472 392 -16 ) shipping_container_01_front -98.90906 -46.545456 0 0.34375 0.34375
( -384 392 -16 ) ( -384 480 -16 ) ( -472 480 -16 ) shipping_container_01_front -98.90918 -11.636353 0 0.34375 0.34375
( -472 480 -13.25 ) ( -384 480 -13.25 ) ( -384 392 -13.25 ) shipping_container_01_front -98.90918 -11.636353 0 0.34375 0.34375
( -384 403 -16 ) ( -472 392 -16 ) ( -472 392 28 ) shipping_container_01_front -98.90906 -46.545456 0 0.34375 0.34375
( -384 403 -16 ) ( -389.5 425 28 ) ( -389.5 425 -16 ) shipping_container_01_front 11.636353 -46.545456 0 0.34375 0.34375
}
// brush 5
{
( -472 480 -13.25 ) ( -472 392 -13.25 ) ( -472 392 -16 ) shipping_container_01_front 11.636353 -46.545456 0 0.34375 0.34375
( -472 392 -16 ) ( -461 480 -16 ) ( -472 480 -16 ) shipping_container_01_front -98.9093 -11.636353 0 0.34375 0.34375
( -472 480 -13.25 ) ( -461 480 -13.25 ) ( -472 392 -13.25 ) shipping_container_01_front -98.9093 -11.636353 0 0.34375 0.34375
( -461 480 -16 ) ( -461 480 -13.25 ) ( -472 480 -13.25 ) shipping_container_01_front -98.90906 -46.545456 0 0.34375 0.34375
( -472 392 -13.25 ) ( -461 480 -13.25 ) ( -461 480 -16 ) shipping_container_01_front 11.636353 -46.545456 0 0.34375 0.34375
}
// brush 6
{
( -439 474.5 -16 ) ( -472 392 28 ) ( -472 392 -16 ) shipping_container_01_front 11.636353 -46.545456 0 0.34375 0.34375
( -384 392 -16 ) ( -384 480 -16 ) ( -472 480 -16 ) shipping_container_01_front -98.90918 -11.636353 0 0.34375 0.34375
( -472 480 -13.25 ) ( -384 480 -13.25 ) ( -384 392 -13.25 ) shipping_container_01_front -98.90918 -11.636353 0 0.34375 0.34375
( -450 480 -16 ) ( -406 458 -16 ) ( -406 458 28 ) shipping_container_01_front -98.90906 -46.545456 0 0.34375 0.34375
( -417 463.5 -16 ) ( -472 392 -16 ) ( -472 392 28 ) shipping_container_01_front 11.636353 -46.545456 0 0.34375 0.34375
}
// brush 7
{
( -472 392 -13.25 ) ( -483 480 -16 ) ( -483 480 -13.25 ) shipping_container_01_front 11.636353 -46.545456 0 0.34375 0.34375
( -472 392 -16 ) ( -472 480 -16 ) ( -483 480 -16 ) shipping_container_01_front 98.908936 -11.636353 180 0.34375 -0.34375
( -472 480 -13.25 ) ( -472 392 -13.25 ) ( -483 480 -13.25 ) shipping_container_01_front 98.908936 -11.636353 180 0.34375 -0.34375
( -483 480 -16 ) ( -472 480 -13.25 ) ( -483 480 -13.25 ) shipping_container_01_front 98.90906 -46.545456 180 0.34375 -0.34375
( -472 480 -13.25 ) ( -472 392 -16 ) ( -472 392 -13.25 ) shipping_container_01_front 11.636353 -46.545456 0 0.34375 0.34375
}
// brush 8
{
( -505 474.5 -16 ) ( -472 392 28 ) ( -472 392 -16 ) shipping_container_01_front 11.636353 -46.545456 0 0.34375 0.34375
( -483 480 -16 ) ( -505 474.5 28 ) ( -505 474.5 -16 ) shipping_container_01_front 98.90906 -46.545456 180 0.34375 -0.34375
( -560 392 -16 ) ( -472 480 -16 ) ( -560 480 -16 ) shipping_container_01_front 98.908936 -11.636353 180 0.34375 -0.34375
( -472 480 -13.25 ) ( -560 392 -13.25 ) ( -560 480 -13.25 ) shipping_container_01_front 98.908936 -11.636353 180 0.34375 -0.34375
( -483 480 -16 ) ( -472 392 -16 ) ( -472 392 28 ) shipping_container_01_front 11.636353 -46.545456 0 0.34375 0.34375
}
// brush 9
{
( -527 463.5 -16 ) ( -472 392 28 ) ( -472 392 -16 ) shipping_container_01_front 11.636353 -46.545456 0 0.34375 0.34375
( -494 480 -16 ) ( -538 458 28 ) ( -538 458 -16 ) shipping_container_01_front 98.90906 -46.545456 180 0.34375 -0.34375
( -560 392 -16 ) ( -472 480 -16 ) ( -560 480 -16 ) shipping_container_01_front 98.9093 -11.636353 180 0.34375 -0.34375
( -472 480 -13.25 ) ( -560 392 -13.25 ) ( -560 480 -13.25 ) shipping_container_01_front 98.9093 -11.636353 180 0.34375 -0.34375
( -505 474.5 -16 ) ( -472 392 -16 ) ( -472 392 28 ) shipping_container_01_front 11.636353 -46.545456 0 0.34375 0.34375
}
// brush 10
{
( -527 463.5 -16 ) ( -543.5 447 28 ) ( -543.5 447 -16 ) shipping_container_01_front 11.636353 -46.545456 0 0.34375 0.34375
( -543.5 447 -16 ) ( -472 392 28 ) ( -472 392 -16 ) shipping_container_01_front 98.90906 -46.545456 180 0.34375 -0.34375
( -560 392 -16 ) ( -472 480 -16 ) ( -560 480 -16 ) shipping_container_01_front 98.908936 -11.636353 180 0.34375 -0.34375
( -472 480 -13.25 ) ( -560 392 -13.25 ) ( -560 480 -13.25 ) shipping_container_01_front 98.908936 -11.636353 180 0.34375 -0.34375
( -527 463.5 -16 ) ( -472 392 -16 ) ( -472 392 28 ) shipping_container_01_front 11.636353 -46.545456 0 0.34375 0.34375
}
// brush 11
{
( -560 403 -16 ) ( -554.5 425 -16 ) ( -554.5 425 28 ) shipping_container_01_front 11.636353 -46.545456 0 0.34375 0.34375
( -560 403 -16 ) ( -472 392 28 ) ( -472 392 -16 ) shipping_container_01_front 98.90906 -46.545456 180 0.34375 -0.34375
( -560 392 -16 ) ( -472 480 -16 ) ( -560 480 -16 ) shipping_container_01_front 98.9093 -11.636353 180 0.34375 -0.34375
( -472 480 -13.25 ) ( -560 392 -13.25 ) ( -560 480 -13.25 ) shipping_container_01_front 98.9093 -11.636353 180 0.34375 -0.34375
( -554.5 425 -16 ) ( -472 392 -16 ) ( -472 392 28 ) shipping_container_01_front 98.90906 -46.545456 180 0.34375 -0.34375
}
// brush 12
{
( -560 414 -16 ) ( -527 480 -16 ) ( -527 480 28 ) shipping_container_01_front 11.636353 -46.545456 0 0.34375 0.34375
( -554.5 425 -16 ) ( -472 392 28 ) ( -472 392 -16 ) shipping_container_01_front 98.90906 -46.545456 180 0.34375 -0.34375
( -560 392 -16 ) ( -472 480 -16 ) ( -560 480 -16 ) shipping_container_01_front 98.9093 -11.636353 180 0.34375 -0.34375
( -472 480 -13.25 ) ( -560 392 -13.25 ) ( -560 480 -13.25 ) shipping_container_01_front 98.9093 -11.636353 180 0.34375 -0.34375
( -543.5 447 -16 ) ( -472 392 -16 ) ( -472 392 28 ) shipping_container_01_front 98.90906 -46.545456 180 0.34375 -0.34375
}
// brush 13
{
( -560 392 -13.25 ) ( -560 480 -16 ) ( -560 480 -13.25 ) shipping_container_01_front 11.636353 -46.545456 0 0.34375 0.34375
( -472 392 -13.25 ) ( -560 392 -16 ) ( -560 392 -13.25 ) shipping_container_01_front 98.90906 -46.545456 180 0.34375 -0.34375
( -560 392 -16 ) ( -472 480 -16 ) ( -560 480 -16 ) shipping_container_01_front 98.908936 -11.636353 180 0.34375 -0.34375
( -472 480 -13.25 ) ( -560 392 -13.25 ) ( -560 480 -13.25 ) shipping_container_01_front 98.908936 -11.636353 180 0.34375 -0.34375
( -560 403 -16 ) ( -472 392 -16 ) ( -472 392 28 ) shipping_container_01_front 98.90906 -46.545456 180 0.34375 -0.34375
}
// brush 14
{
( -472 304 -13.25 ) ( -472 392 -16 ) ( -472 392 -13.25 ) shipping_container_01_front -11.636353 -46.545456 180 0.34375 -0.34375
( -461 304 -16 ) ( -472 304 -13.25 ) ( -461 304 -13.25 ) shipping_container_01_front -98.90906 -46.545456 0 0.34375 0.34375
( -472 392 -16 ) ( -472 304 -16 ) ( -461 304 -16 ) shipping_container_01_front -98.9093 11.636414 0 0.34375 -0.34375
( -472 304 -13.25 ) ( -472 392 -13.25 ) ( -461 304 -13.25 ) shipping_container_01_front -98.9093 11.636414 0 0.34375 -0.34375
( -472 392 -13.25 ) ( -461 304 -16 ) ( -461 304 -13.25 ) shipping_container_01_front -11.636353 -46.545456 180 0.34375 -0.34375
}
// brush 15
{
( -461 304 -16 ) ( -472 392 -16 ) ( -472 392 28 ) shipping_container_01_front -11.636353 -46.545456 180 0.34375 -0.34375
( -384 392 -16 ) ( -472 304 -16 ) ( -384 304 -16 ) shipping_container_01_front -98.9093 11.636353 0 0.34375 -0.34375
( -472 304 -13.25 ) ( -384 392 -13.25 ) ( -384 304 -13.25 ) shipping_container_01_front -98.9093 11.636353 0 0.34375 -0.34375
( -461 304 -16 ) ( -439 309.5 28 ) ( -439 309.5 -16 ) shipping_container_01_front -98.90906 -46.545456 0 0.34375 0.34375
( -439 309.5 -16 ) ( -472 392 28 ) ( -472 392 -16 ) shipping_container_01_front -11.636353 -46.545456 180 0.34375 -0.34375
}
// brush 16
{
( -439 309.5 -16 ) ( -472 392 -16 ) ( -472 392 28 ) shipping_container_01_front -11.636353 -46.545456 180 0.34375 -0.34375
( -384 392 -16 ) ( -472 304 -16 ) ( -384 304 -16 ) shipping_container_01_front -98.90918 11.636353 0 0.34375 -0.34375
( -472 304 -13.25 ) ( -384 392 -13.25 ) ( -384 304 -13.25 ) shipping_container_01_front -98.90918 11.636353 0 0.34375 -0.34375
( -450 304 -16 ) ( -406 326 28 ) ( -406 326 -16 ) shipping_container_01_front -98.90906 -46.545456 0 0.34375 0.34375
( -417 320.5 -16 ) ( -472 392 28 ) ( -472 392 -16 ) shipping_container_01_front -11.636353 -46.545456 180 0.34375 -0.34375
}
// brush 17
{
( -417 320.5 -16 ) ( -472 392 -16 ) ( -472 392 28 ) shipping_container_01_front -11.636353 -46.545456 180 0.34375 -0.34375
( -384 392 -16 ) ( -472 304 -16 ) ( -384 304 -16 ) shipping_container_01_front -98.9093 11.636414 0 0.34375 -0.34375
( -472 304 -13.25 ) ( -384 392 -13.25 ) ( -384 304 -13.25 ) shipping_container_01_front -98.9093 11.636414 0 0.34375 -0.34375
( -400.5 337 -16 ) ( -472 392 28 ) ( -472 392 -16 ) shipping_container_01_front -98.90906 -46.545456 0 0.34375 0.34375
( -417 320.5 -16 ) ( -400.5 337 28 ) ( -400.5 337 -16 ) shipping_container_01_front -11.6362915 -46.545456 180 0.34375 -0.34375
}
// brush 18
{
( -389.5 359 -16 ) ( -472 392 -16 ) ( -472 392 28 ) shipping_container_01_front -98.90906 -46.545456 0 0.34375 0.34375
( -384 392 -16 ) ( -472 304 -16 ) ( -384 304 -16 ) shipping_container_01_front -98.90918 11.636353 0 0.34375 -0.34375
( -472 304 -13.25 ) ( -384 392 -13.25 ) ( -384 304 -13.25 ) shipping_container_01_front -98.90918 11.636353 0 0.34375 -0.34375
( -384 381 -16 ) ( -472 392 28 ) ( -472 392 -16 ) shipping_container_01_front -98.90906 -46.545456 0 0.34375 0.34375
( -384 381 -16 ) ( -389.5 359 -16 ) ( -389.5 359 28 ) shipping_container_01_front -11.636353 -46.545456 180 0.34375 -0.34375
}
// brush 19
{
( -400.5 337 -16 ) ( -472 392 -16 ) ( -472 392 28 ) shipping_container_01_front -98.90906 -46.545456 0 0.34375 0.34375
( -384 392 -16 ) ( -472 304 -16 ) ( -384 304 -16 ) shipping_container_01_front -98.90918 11.636353 0 0.34375 -0.34375
( -472 304 -13.25 ) ( -384 392 -13.25 ) ( -384 304 -13.25 ) shipping_container_01_front -98.90918 11.636353 0 0.34375 -0.34375
( -389.5 359 -16 ) ( -472 392 28 ) ( -472 392 -16 ) shipping_container_01_front -98.90906 -46.545456 0 0.34375 0.34375
( -384 370 -16 ) ( -417 304 -16 ) ( -417 304 28 ) shipping_container_01_front -11.636353 -46.545456 180 0.34375 -0.34375
}
// brush 20
{
( -384 381 -16 ) ( -472 392 -16 ) ( -472 392 28 ) shipping_container_01_front -98.90906 -46.545456 0 0.34375 0.34375
( -384 392 -16 ) ( -472 304 -16 ) ( -384 304 -16 ) shipping_container_01_front -98.9093 11.636353 0 0.34375 -0.34375
( -472 304 -13.25 ) ( -384 392 -13.25 ) ( -384 304 -13.25 ) shipping_container_01_front -98.9093 11.636353 0 0.34375 -0.34375
( -472 392 -13.25 ) ( -384 392 -16 ) ( -384 392 -13.25 ) shipping_container_01_front -98.90906 -46.545456 0 0.34375 0.34375
( -384 392 -13.25 ) ( -384 304 -16 ) ( -384 304 -13.25 ) shipping_container_01_front -11.636353 -46.545456 180 0.34375 -0.34375
}
// brush 21
{
( -560 370 -16 ) ( -527 304 28 ) ( -527 304 -16 ) shipping_container_01_front -11.636353 -46.545456 180 0.34375 -0.34375
( -554.5 359 -16 ) ( -472 392 -16 ) ( -472 392 28 ) shipping_container_01_front 98.90906 -46.545456 180 0.34375 -0.34375
( -560 392 -16 ) ( -560 304 -16 ) ( -472 304 -16 ) shipping_container_01_front 98.9093 11.636353 180 0.34375 0.34375
( -472 304 -13.25 ) ( -560 304 -13.25 ) ( -560 392 -13.25 ) shipping_container_01_front 98.9093 11.636353 180 0.34375 0.34375
( -543.5 337 -16 ) ( -472 392 28 ) ( -472 392 -16 ) shipping_container_01_front 98.90906 -46.545456 180 0.34375 -0.34375
}
// brush 22
{
( -527 320.5 -16 ) ( -543.5 337 -16 ) ( -543.5 337 28 ) shipping_container_01_front -11.636353 -46.545456 180 0.34375 -0.34375
( -543.5 337 -16 ) ( -472 392 -16 ) ( -472 392 28 ) shipping_container_01_front 98.90906 -46.545456 180 0.34375 -0.34375
( -560 392 -16 ) ( -560 304 -16 ) ( -472 304 -16 ) shipping_container_01_front 98.90918 11.636414 180 0.34375 0.34375
( -472 304 -13.25 ) ( -560 304 -13.25 ) ( -560 392 -13.25 ) shipping_container_01_front 98.90918 11.636414 180 0.34375 0.34375
( -527 320.5 -16 ) ( -472 392 28 ) ( -472 392 -16 ) shipping_container_01_front -11.636353 -46.545456 180 0.34375 -0.34375
}
// brush 23
{
( -472 392 -16 ) ( -472 392 -13.25 ) ( -527 320.49999999999636 -13.25 ) shipping_container_01_front -11.636353 -46.545456 180 0.34375 -0.34375
( -505 309.4999999999946 -16 ) ( -527 320.49999999999636 -16 ) ( -527 320.49999999999636 -13.25 ) shipping_container_01_front 98.90906 -46.545456 180 0.34375 -0.34375
( -505 309.4999999999946 -16 ) ( -472 392 -16 ) ( -527 320.49999999999636 -16 ) shipping_container_01_front 98.9093 11.636353 180 0.34375 0.34375
( -527 320.49999999999636 -13.25 ) ( -472 392 -13.25 ) ( -505 309.4999999999982 -13.25 ) shipping_container_01_front 98.9093 11.636353 180 0.34375 0.34375
( -505 309.4999999999982 -13.25 ) ( -472 392 -13.25 ) ( -472 392 -16 ) shipping_container_01_front -11.636353 -46.545456 180 0.34375 -0.34375
}
// brush 24
{
( -505 309.5 -16 ) ( -472 392 -16 ) ( -472 392 28 ) shipping_container_01_front -11.636353 -46.545456 180 0.34375 -0.34375
( -483 304 -16 ) ( -505 309.5 -16 ) ( -505 309.5 28 ) shipping_container_01_front 98.90906 -46.545456 180 0.34375 -0.34375
( -560 392 -16 ) ( -560 304 -16 ) ( -472 304 -16 ) shipping_container_01_front 98.90918 11.636353 180 0.34375 0.34375
( -472 304 -13.25 ) ( -560 304 -13.25 ) ( -560 392 -13.25 ) shipping_container_01_front 98.90918 11.636353 180 0.34375 0.34375
( -483 304 -16 ) ( -472 392 28 ) ( -472 392 -16 ) shipping_container_01_front -11.636353 -46.545456 180 0.34375 -0.34375
}
// brush 25
{
( -472 392 -13.25 ) ( -483 304 -13.25 ) ( -483 304 -16 ) shipping_container_01_front -11.636353 -46.545456 180 0.34375 -0.34375
( -483 304 -16 ) ( -483 304 -13.25 ) ( -472 304 -13.25 ) shipping_container_01_front 98.90906 -46.545456 180 0.34375 -0.34375
( -472 392 -16 ) ( -483 304 -16 ) ( -472 304 -16 ) shipping_container_01_front 98.90918 11.636414 180 0.34375 0.34375
( -472 304 -13.25 ) ( -483 304 -13.25 ) ( -472 392 -13.25 ) shipping_container_01_front 98.90918 11.636414 180 0.34375 0.34375
( -472 304 -13.25 ) ( -472 392 -13.25 ) ( -472 392 -16 ) shipping_container_01_front -11.636353 -46.545456 180 0.34375 -0.34375
}
// brush 26
{
( -560 381 -16 ) ( -554.5 359 28 ) ( -554.5 359 -16 ) shipping_container_01_front -11.636353 -46.545456 180 0.34375 -0.34375
( -560 381 -16 ) ( -472 392 -16 ) ( -472 392 28 ) shipping_container_01_front 98.90906 -46.545456 180 0.34375 -0.34375
( -560 392 -16 ) ( -560 304 -16 ) ( -472 304 -16 ) shipping_container_01_front 98.9093 11.636353 180 0.34375 0.34375
( -472 304 -13.25 ) ( -560 304 -13.25 ) ( -560 392 -13.25 ) shipping_container_01_front 98.9093 11.636353 180 0.34375 0.34375
( -554.5 359 -16 ) ( -472 392 28 ) ( -472 392 -16 ) shipping_container_01_front 98.90906 -46.545456 180 0.34375 -0.34375
}
// brush 27
{
( -560 392 -13.25 ) ( -560 304 -13.25 ) ( -560 304 -16 ) shipping_container_01_front -11.636353 -46.545456 180 0.34375 -0.34375
( -560 392 -16 ) ( -560 304 -16 ) ( -472 304 -16 ) shipping_container_01_front 98.908936 11.636353 180 0.34375 0.34375
( -472 304 -13.25 ) ( -560 304 -13.25 ) ( -560 392 -13.25 ) shipping_container_01_front 98.908936 11.636353 180 0.34375 0.34375
( -472 392 -13.25 ) ( -560 392 -13.25 ) ( -560 392 -16 ) shipping_container_01_front 98.90906 -46.545456 180 0.34375 -0.34375
( -560 381 -16 ) ( -472 392 28 ) ( -472 392 -16 ) shipping_container_01_front 98.90906 -46.545456 180 0.34375 -0.34375
}
}

View File

@@ -0,0 +1,26 @@
// Game: Godot
// Format: Standard
// entity 0
{
"classname" "worldspawn"
"_tb_textures" "textures"
// brush 0
{
( -464 -592 -16 ) ( -464 -584.8750000000001 -16 ) ( -464 -592 -15 ) dark 0 0 0 1 1
( -464 -592 -16 ) ( -464 -592 -15 ) ( -456.6250000000001 -592 -16 ) dark 0 0 0 1 1
( -464 -592 -16 ) ( -456.6250000000001 -592 -16 ) ( -464 -584.8750000000001 -16 ) dark 0 0 0 1 1
( 480 320 16 ) ( 480 327.125 16 ) ( 487.3749999999998 320 16 ) dark 0 0 0 1 1
( 480 320 16 ) ( 487.3749999999998 320 16 ) ( 480 320 17 ) dark 0 0 0 1 1
( 480 320 16 ) ( 480 320 17 ) ( 480 327.125 16 ) dark 0 0 0 1 1
}
}
// entity 1
{
"classname" "Player"
"origin" "32 -48 32"
}
// entity 2
{
"classname" "light"
"origin" "28 -188 20"
}

View File

@@ -0,0 +1,24 @@
// Game: Godot
// Format: Standard
// entity 0
{
"classname" "worldspawn"
"_tb_textures" "textures"
// brush 0
{
( -1024 -592 -16 ) ( -1024 -584.8750000000001 -16 ) ( -1024 -592 -15 ) dark 0 0 -360 0.1 0.1
( -464 -288 -16 ) ( -464 -288 -15 ) ( -456.6250000000001 -288 -16 ) dark 0 0 -360 0.1 0.1
( -464 -592 -16 ) ( -456.6250000000001 -592 -16 ) ( -464 -584.8750000000001 -16 ) dark 0 0 -360 0.1 0.1
( 480 320 16 ) ( 480 327.125 16 ) ( 487.3749999999998 320 16 ) dark 0 0 -360 0.1 0.1
( 480 320 16 ) ( 487.3749999999998 320 16 ) ( 480 320 17 ) dark 0 0 -360 0.1 0.1
( 352 320 16 ) ( 352 320 17 ) ( 352 327.125 16 ) dark 0 0 -360 0.1 0.1
}
}
// entity 1
{
"classname" "func_group"
"_tb_type" "_tb_layer"
"_tb_name" "Map"
"_tb_id" "1"
"_tb_layer_sort_index" "0"
}

View File

@@ -0,0 +1,57 @@
// Game: Godot
// Format: Standard
// entity 0
{
"classname" "worldspawn"
"_tb_textures" "textures"
// brush 0
{
( -448 -592 -16 ) ( -448 -584.8750000000001 -16 ) ( -448 -592 -15 ) dark 0 0 -360 0.0625 0.0625
( -464 -320 -16 ) ( -464 -320 -15 ) ( -456.6250000000001 -320 -16 ) dark 0 0 -360 0.0625 0.0625
( -464 -592 -16 ) ( -456.6250000000001 -592 -16 ) ( -464 -584.8750000000001 -16 ) dark 0 0 -360 0.0625 0.0625
( 480 320 16 ) ( 480 327.125 16 ) ( 487.3749999999998 320 16 ) dark 0 0 -360 0.0625 0.0625
( 480 1024 16 ) ( 487.3749999999998 1024 16 ) ( 480 1024 17 ) dark 0 0 -360 0.0625 0.0625
( 352 320 16 ) ( 352 320 17 ) ( 352 327.125 16 ) dark 0 0 -360 0.0625 0.0625
}
// brush 1
{
( -448 -320 96 ) ( -448 -319 96 ) ( -448 -320 97 ) dark 0 -256 0 0.0625 0.0625
( -448 -320 96 ) ( -448 -320 97 ) ( -447 -320 96 ) dark 0 -256 0 0.0625 0.0625
( -448 -320 16 ) ( -447 -320 16 ) ( -448 -319 16 ) dark 0 -256 0 0.0625 0.0625
( -384 -176 224 ) ( -384 -175 224 ) ( -383 -176 224 ) dark 0 -256 0 0.0625 0.0625
( -384 1024 112 ) ( -383 1024 112 ) ( -384 1024 113 ) dark 0 -256 0 0.0625 0.0625
( -432 -176 112 ) ( -432 -176 113 ) ( -432 -175 112 ) dark 0 -256 0 0.0625 0.0625
}
// brush 2
{
( -432 -320 224 ) ( -432 -319 224 ) ( -432 -320 225 ) dark 0 -256 0 0.0625 0.0625
( 272 -320 224 ) ( 272 -320 225 ) ( 273 -320 224 ) dark 0 -256 0 0.0625 0.0625
( 272 -320 16 ) ( 273 -320 16 ) ( 272 -319 16 ) dark 0 -256 0 0.0625 0.0625
( 352 -304 224 ) ( 352 -303 224 ) ( 353 -304 224 ) dark 0 -256 0 0.0625 0.0625
( 352 -304 240 ) ( 353 -304 240 ) ( 352 -304 241 ) dark 0 -256 0 0.0625 0.0625
( 352 -304 240 ) ( 352 -304 241 ) ( 352 -303 240 ) dark 0 -256 0 0.0625 0.0625
}
// brush 3
{
( 336 176 16 ) ( 336 177 16 ) ( 336 176 17 ) dark 0 -256 0 0.0625 0.0625
( 320 -304 16 ) ( 320 -304 17 ) ( 321 -304 16 ) dark 0 -256 0 0.0625 0.0625
( 320 176 16 ) ( 321 176 16 ) ( 320 177 16 ) dark 0 -256 0 0.0625 0.0625
( 352 304 224 ) ( 352 305 224 ) ( 353 304 224 ) dark 0 -256 0 0.0625 0.0625
( 352 1024 32 ) ( 353 1024 32 ) ( 352 1024 33 ) dark 0 -256 0 0.0625 0.0625
( 352 304 32 ) ( 352 304 33 ) ( 352 305 32 ) dark 0 -256 0 0.0625 0.0625
}
// brush 4
{
( -432 1008 16 ) ( -432 1009 16 ) ( -432 1008 17 ) dark 0 -256 0 0.0625 0.0625
( -224 1008 16 ) ( -224 1008 17 ) ( -223 1008 16 ) dark 0 -256 0 0.0625 0.0625
( -224 1008 16 ) ( -223 1008 16 ) ( -224 1009 16 ) dark 0 -256 0 0.0625 0.0625
( 336 1024 224 ) ( 336 1025 224 ) ( 337 1024 224 ) dark 0 -256 0 0.0625 0.0625
( 336 1024 32 ) ( 337 1024 32 ) ( 336 1024 33 ) dark 0 -256 0 0.0625 0.0625
( 336 1024 32 ) ( 336 1024 33 ) ( 336 1025 32 ) dark 0 -256 0 0.0625 0.0625
}
}
// entity 1
{
"classname" "Player"
"origin" "-176 -80 32"
}

View File

@@ -0,0 +1,57 @@
// Game: Godot
// Format: Standard
// entity 0
{
"classname" "worldspawn"
"_tb_textures" "textures"
// brush 0
{
( -800 -272 -16 ) ( -800 -264.875 -16 ) ( -800 -272 -15 ) dark 0 0 0 0.03125 0.03125
( -816 0 -16 ) ( -816 0 -15 ) ( -808.625 0 -16 ) dark 0 0 0 0.03125 0.03125
( -816 -272 -16 ) ( -808.625 -272 -16 ) ( -816 -264.875 -16 ) dark 0 0 0 0.03125 0.03125
( 128 640 16 ) ( 128 647.125 16 ) ( 135.375 640 16 ) dark 0 0 0 0.03125 0.03125
( 128 1344 16 ) ( 135.375 1344 16 ) ( 128 1344 17 ) dark 0 0 0 0.03125 0.03125
( 0 640 16 ) ( 0 640 17 ) ( 0 647.125 16 ) dark 0 0 0 0.03125 0.03125
}
// brush 1
{
( -800 0 96 ) ( -800 1 96 ) ( -800 0 97 ) dark 0 -384 0 0.03125 0.03125
( -800 0 96 ) ( -800 0 97 ) ( -799 0 96 ) dark 0 -384 0 0.03125 0.03125
( -800 0 16 ) ( -799 0 16 ) ( -800 1 16 ) dark 0 -384 0 0.03125 0.03125
( -736 144 224 ) ( -736 145 224 ) ( -735 144 224 ) dark 0 -384 0 0.03125 0.03125
( -736 1344 112 ) ( -735 1344 112 ) ( -736 1344 113 ) dark 0 -384 0 0.03125 0.03125
( -784 144 112 ) ( -784 144 113 ) ( -784 145 112 ) dark 0 -384 0 0.03125 0.03125
}
// brush 2
{
( -784 0 224 ) ( -784 1 224 ) ( -784 0 225 ) dark 0 0 0 0.03125 0.03125
( -80 0 224 ) ( -80 0 225 ) ( -79 0 224 ) dark 0 0 0 0.03125 0.03125
( -80 0 16 ) ( -79 0 16 ) ( -80 1 16 ) dark 0 0 0 0.03125 0.03125
( 0 16 224 ) ( 0 17 224 ) ( 1 16 224 ) dark 0 0 0 0.03125 0.03125
( 0 16 240 ) ( 1 16 240 ) ( 0 16 241 ) dark 0 0 0 0.03125 0.03125
( 0 16 240 ) ( 0 16 241 ) ( 0 17 240 ) dark 0 0 0 0.03125 0.03125
}
// brush 3
{
( -16 496 16 ) ( -16 497 16 ) ( -16 496 17 ) dark 0 0 0 0.03125 0.03125
( -32 16 16 ) ( -32 16 17 ) ( -31 16 16 ) dark 0 0 0 0.03125 0.03125
( -32 496 16 ) ( -31 496 16 ) ( -32 497 16 ) dark 0 0 0 0.03125 0.03125
( 0 624 224 ) ( 0 625 224 ) ( 1 624 224 ) dark 0 0 0 0.03125 0.03125
( 0 1344 32 ) ( 1 1344 32 ) ( 0 1344 33 ) dark 0 0 0 0.03125 0.03125
( 0 624 32 ) ( 0 624 33 ) ( 0 625 32 ) dark 0 0 0 0.03125 0.03125
}
// brush 4
{
( -784 1328 16 ) ( -784 1329 16 ) ( -784 1328 17 ) dark 0 0 0 0.03125 0.03125
( -576 1328 16 ) ( -576 1328 17 ) ( -575 1328 16 ) dark 0 0 0 0.03125 0.03125
( -576 1328 16 ) ( -575 1328 16 ) ( -576 1329 16 ) dark 0 0 0 0.03125 0.03125
( -16 1344 224 ) ( -16 1345 224 ) ( -15 1344 224 ) dark 0 0 0 0.03125 0.03125
( -16 1344 32 ) ( -15 1344 32 ) ( -16 1344 33 ) dark 0 0 0 0.03125 0.03125
( -16 1344 32 ) ( -16 1344 33 ) ( -16 1345 32 ) dark 0 0 0 0.03125 0.03125
}
}
// entity 1
{
"classname" "Player"
"origin" "-528 240 32"
}

View File

@@ -0,0 +1,65 @@
// Game: Godot
// Format: Standard
// entity 0
{
"classname" "worldspawn"
"_tb_textures" "textures"
// brush 0
{
( -800 -272 -32 ) ( -800 -264.875 -32 ) ( -800 -272 -31 ) dark 0 512 0 0.015625 0.015625
( -816 0 -32 ) ( -816 0 -31 ) ( -808.625 0 -32 ) dark 0 512 0 0.015625 0.015625
( -816 -272 -32 ) ( -808.625 -272 -32 ) ( -816 -264.875 -32 ) dark 0 512 0 0.015625 0.015625
( 128 640 0 ) ( 128 647.125 0 ) ( 135.375 640 0 ) dark 0 512 0 0.015625 0.015625
( 128 1344 0 ) ( 135.375 1344 0 ) ( 128 1344 1 ) dark 0 512 0 0.015625 0.015625
( 0 640 0 ) ( 0 640 1 ) ( 0 647.125 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 1
{
( -800 0 80 ) ( -800 1 80 ) ( -800 0 81 ) dark 0 512 0 0.015625 0.015625
( -800 0 80 ) ( -800 0 81 ) ( -799 0 80 ) dark 0 512 0 0.015625 0.015625
( -800 0 0 ) ( -799 0 0 ) ( -800 1 0 ) dark 0 512 0 0.015625 0.015625
( -736 144 208 ) ( -736 145 208 ) ( -735 144 208 ) dark 0 512 0 0.015625 0.015625
( -736 1344 96 ) ( -735 1344 96 ) ( -736 1344 97 ) dark 0 512 0 0.015625 0.015625
( -784 144 96 ) ( -784 144 97 ) ( -784 145 96 ) dark 0 512 0 0.015625 0.015625
}
// brush 2
{
( -784 0 208 ) ( -784 1 208 ) ( -784 0 209 ) dark 0 512 0 0.015625 0.015625
( -80 0 208 ) ( -80 0 209 ) ( -79 0 208 ) dark 0 512 0 0.015625 0.015625
( -80 0 0 ) ( -79 0 0 ) ( -80 1 0 ) dark 0 512 0 0.015625 0.015625
( 0 16 208 ) ( 0 17 208 ) ( 1 16 208 ) dark 0 512 0 0.015625 0.015625
( 0 16 224 ) ( 1 16 224 ) ( 0 16 225 ) dark 0 512 0 0.015625 0.015625
( 0 16 224 ) ( 0 16 225 ) ( 0 17 224 ) dark 0 512 0 0.015625 0.015625
}
// brush 3
{
( -16 496 0 ) ( -16 497 0 ) ( -16 496 1 ) dark 0 512 0 0.015625 0.015625
( -32 16 0 ) ( -32 16 1 ) ( -31 16 0 ) dark 0 512 0 0.015625 0.015625
( -32 496 0 ) ( -31 496 0 ) ( -32 497 0 ) dark 0 512 0 0.015625 0.015625
( 0 624 208 ) ( 0 625 208 ) ( 1 624 208 ) dark 0 512 0 0.015625 0.015625
( 0 1344 16 ) ( 1 1344 16 ) ( 0 1344 17 ) dark 0 512 0 0.015625 0.015625
( 0 624 16 ) ( 0 624 17 ) ( 0 625 16 ) dark 0 512 0 0.015625 0.015625
}
// brush 4
{
( -784 1328 0 ) ( -784 1329 0 ) ( -784 1328 1 ) dark 0 512 0 0.015625 0.015625
( -576 1328 0 ) ( -576 1328 1 ) ( -575 1328 0 ) dark 0 512 0 0.015625 0.015625
( -576 1328 0 ) ( -575 1328 0 ) ( -576 1329 0 ) dark 0 512 0 0.015625 0.015625
( -16 1344 208 ) ( -16 1345 208 ) ( -15 1344 208 ) dark 0 512 0 0.015625 0.015625
( -16 1344 16 ) ( -15 1344 16 ) ( -16 1344 17 ) dark 0 512 0 0.015625 0.015625
( -16 1344 16 ) ( -16 1344 17 ) ( -16 1345 16 ) dark 0 512 0 0.015625 0.015625
}
// brush 5
{
( -784 752 0 ) ( -784 752 96 ) ( -784 432 0 ) dark 0 512 0 0.015625 0.015625
( -784 752 96 ) ( -592 752 96 ) ( -592 432 0 ) dark 0 512 0 0.015625 0.015625
( -592 432 0 ) ( -592 752 0 ) ( -784 752 0 ) dark 0 512 0 0.015625 0.015625
( -592 752 0 ) ( -592 752 96 ) ( -784 752 96 ) dark 0 512 0 0.015625 0.015625
( -592 432 0 ) ( -592 752 96 ) ( -592 752 0 ) dark 0 512 0 0.015625 0.015625
}
}
// entity 1
{
"classname" "Player"
"origin" "-672 240 16"
}

View File

@@ -0,0 +1,70 @@
// Game: Godot
// Format: Standard
// entity 0
{
"classname" "worldspawn"
"_tb_textures" "textures"
// brush 0
{
( -800 -272 -32 ) ( -800 -264.875 -32 ) ( -800 -272 -31 ) dark 0 512 0 0.015625 0.015625
( -816 0 -32 ) ( -816 0 -31 ) ( -808.625 0 -32 ) dark 0 512 0 0.015625 0.015625
( -816 -272 -32 ) ( -808.625 -272 -32 ) ( -816 -264.875 -32 ) dark 0 512 0 0.015625 0.015625
( 128 640 0 ) ( 128 647.125 0 ) ( 135.375 640 0 ) dark 0 512 0 0.015625 0.015625
( 128 1344 0 ) ( 135.375 1344 0 ) ( 128 1344 1 ) dark 0 512 0 0.015625 0.015625
( 0 640 0 ) ( 0 640 1 ) ( 0 647.125 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 1
{
( -800 0 80 ) ( -800 1 80 ) ( -800 0 81 ) dark 0 512 0 0.015625 0.015625
( -800 0 80 ) ( -800 0 81 ) ( -799 0 80 ) dark 0 512 0 0.015625 0.015625
( -800 0 0 ) ( -799 0 0 ) ( -800 1 0 ) dark 0 512 0 0.015625 0.015625
( -736 144 208 ) ( -736 145 208 ) ( -735 144 208 ) dark 0 512 0 0.015625 0.015625
( -736 1344 96 ) ( -735 1344 96 ) ( -736 1344 97 ) dark 0 512 0 0.015625 0.015625
( -784 144 96 ) ( -784 144 97 ) ( -784 145 96 ) dark 0 512 0 0.015625 0.015625
}
// brush 2
{
( -784 0 208 ) ( -784 1 208 ) ( -784 0 209 ) dark 0 512 0 0.015625 0.015625
( -80 0 208 ) ( -80 0 209 ) ( -79 0 208 ) dark 0 512 0 0.015625 0.015625
( -80 0 0 ) ( -79 0 0 ) ( -80 1 0 ) dark 0 512 0 0.015625 0.015625
( 0 16 208 ) ( 0 17 208 ) ( 1 16 208 ) dark 0 512 0 0.015625 0.015625
( 0 16 224 ) ( 1 16 224 ) ( 0 16 225 ) dark 0 512 0 0.015625 0.015625
( 0 16 224 ) ( 0 16 225 ) ( 0 17 224 ) dark 0 512 0 0.015625 0.015625
}
// brush 3
{
( -16 496 0 ) ( -16 497 0 ) ( -16 496 1 ) dark 0 512 0 0.015625 0.015625
( -32 16 0 ) ( -32 16 1 ) ( -31 16 0 ) dark 0 512 0 0.015625 0.015625
( -32 496 0 ) ( -31 496 0 ) ( -32 497 0 ) dark 0 512 0 0.015625 0.015625
( 0 624 208 ) ( 0 625 208 ) ( 1 624 208 ) dark 0 512 0 0.015625 0.015625
( 0 1344 16 ) ( 1 1344 16 ) ( 0 1344 17 ) dark 0 512 0 0.015625 0.015625
( 0 624 16 ) ( 0 624 17 ) ( 0 625 16 ) dark 0 512 0 0.015625 0.015625
}
// brush 4
{
( -784 1328 0 ) ( -784 1329 0 ) ( -784 1328 1 ) dark 0 512 0 0.015625 0.015625
( -576 1328 0 ) ( -576 1328 1 ) ( -575 1328 0 ) dark 0 512 0 0.015625 0.015625
( -576 1328 0 ) ( -575 1328 0 ) ( -576 1329 0 ) dark 0 512 0 0.015625 0.015625
( -16 1344 208 ) ( -16 1345 208 ) ( -15 1344 208 ) dark 0 512 0 0.015625 0.015625
( -16 1344 16 ) ( -15 1344 16 ) ( -16 1344 17 ) dark 0 512 0 0.015625 0.015625
( -16 1344 16 ) ( -16 1344 17 ) ( -16 1345 16 ) dark 0 512 0 0.015625 0.015625
}
// brush 5
{
( -784 752 0 ) ( -784 752 96 ) ( -784 432 0 ) dark 0 512 0 0.015625 0.015625
( -784 752 96 ) ( -592 752 96 ) ( -592 432 0 ) dark 0 512 0 0.015625 0.015625
( -592 432 0 ) ( -592 752 0 ) ( -784 752 0 ) dark 0 512 0 0.015625 0.015625
( -592 752 0 ) ( -592 752 96 ) ( -784 752 96 ) dark 0 512 0 0.015625 0.015625
( -592 432 0 ) ( -592 752 96 ) ( -592 752 0 ) dark 0 512 0 0.015625 0.015625
}
}
// entity 1
{
"classname" "Player"
"origin" "-576 208 16"
}
// entity 2
{
"classname" "enemy_dummy"
"origin" "-240 480 16"
}

View File

@@ -0,0 +1,157 @@
// Game: Godot
// Format: Standard
// entity 0
{
"classname" "worldspawn"
"_tb_textures" "textures"
// brush 0
{
( -800 -272 -32 ) ( -800 -264.875 -32 ) ( -800 -272 -31 ) dark 0 512 0 0.015625 0.015625
( -816 0 -32 ) ( -816 0 -31 ) ( -808.625 0 -32 ) dark 0 512 0 0.015625 0.015625
( -816 -272 -32 ) ( -808.625 -272 -32 ) ( -816 -264.875 -32 ) dark 0 512 0 0.015625 0.015625
( 128 640 0 ) ( 128 647.125 0 ) ( 135.375 640 0 ) dark 0 512 0 0.015625 0.015625
( 128 1344 0 ) ( 135.375 1344 0 ) ( 128 1344 1 ) dark 0 512 0 0.015625 0.015625
( 0 640 0 ) ( 0 640 1 ) ( 0 647.125 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 1
{
( -800 0 80 ) ( -800 1 80 ) ( -800 0 81 ) dark 0 512 0 0.015625 0.015625
( -800 0 80 ) ( -800 0 81 ) ( -799 0 80 ) dark 0 512 0 0.015625 0.015625
( -800 0 0 ) ( -799 0 0 ) ( -800 1 0 ) dark 0 512 0 0.015625 0.015625
( -736 144 208 ) ( -736 145 208 ) ( -735 144 208 ) dark 0 512 0 0.015625 0.015625
( -736 1344 96 ) ( -735 1344 96 ) ( -736 1344 97 ) dark 0 512 0 0.015625 0.015625
( -784 144 96 ) ( -784 144 97 ) ( -784 145 96 ) dark 0 512 0 0.015625 0.015625
}
// brush 2
{
( -784 0 208 ) ( -784 1 208 ) ( -784 0 209 ) dark 0 512 0 0.015625 0.015625
( -80 0 208 ) ( -80 0 209 ) ( -79 0 208 ) dark 0 512 0 0.015625 0.015625
( -80 0 0 ) ( -79 0 0 ) ( -80 1 0 ) dark 0 512 0 0.015625 0.015625
( 0 16 208 ) ( 0 17 208 ) ( 1 16 208 ) dark 0 512 0 0.015625 0.015625
( 0 16 224 ) ( 1 16 224 ) ( 0 16 225 ) dark 0 512 0 0.015625 0.015625
( 0 16 224 ) ( 0 16 225 ) ( 0 17 224 ) dark 0 512 0 0.015625 0.015625
}
// brush 3
{
( -16 496 0 ) ( -16 497 0 ) ( -16 496 1 ) dark 0 512 0 0.015625 0.015625
( -32 16 0 ) ( -32 16 1 ) ( -31 16 0 ) dark 0 512 0 0.015625 0.015625
( -32 496 0 ) ( -31 496 0 ) ( -32 497 0 ) dark 0 512 0 0.015625 0.015625
( 0 624 208 ) ( 0 625 208 ) ( 1 624 208 ) dark 0 512 0 0.015625 0.015625
( 0 1344 16 ) ( 1 1344 16 ) ( 0 1344 17 ) dark 0 512 0 0.015625 0.015625
( 0 624 16 ) ( 0 624 17 ) ( 0 625 16 ) dark 0 512 0 0.015625 0.015625
}
// brush 4
{
( -784 1328 0 ) ( -784 1329 0 ) ( -784 1328 1 ) dark 0 512 0 0.015625 0.015625
( -576 1328 0 ) ( -576 1328 1 ) ( -575 1328 0 ) dark 0 512 0 0.015625 0.015625
( -576 1328 0 ) ( -575 1328 0 ) ( -576 1329 0 ) dark 0 512 0 0.015625 0.015625
( -16 1344 208 ) ( -16 1345 208 ) ( -15 1344 208 ) dark 0 512 0 0.015625 0.015625
( -16 1344 16 ) ( -15 1344 16 ) ( -16 1344 17 ) dark 0 512 0 0.015625 0.015625
( -16 1344 16 ) ( -16 1344 17 ) ( -16 1345 16 ) dark 0 512 0 0.015625 0.015625
}
// brush 5
{
( -784 752 0 ) ( -784 752 96 ) ( -784 432 0 ) dark 0 512 0 0.015625 0.015625
( -784 752 96 ) ( -592 752 96 ) ( -592 432 0 ) dark 0 512 0 0.015625 0.015625
( -592 432 0 ) ( -592 752 0 ) ( -784 752 0 ) dark 0 512 0 0.015625 0.015625
( -592 752 0 ) ( -592 752 96 ) ( -784 752 96 ) dark 0 512 0 0.015625 0.015625
( -592 432 0 ) ( -592 752 96 ) ( -592 752 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 6
{
( -80 256 0 ) ( -16 256 72 ) ( -16 208 72 ) dark -512 512 0 0.015625 0.015625
( -80 208 0 ) ( -16 208 72 ) ( -16 208 0 ) dark 0 512 0 0.015625 0.015625
( -16 208 0 ) ( -16 256 0 ) ( -80 256 0 ) dark 0 512 0 0.015625 0.015625
( -16 256 0 ) ( -16 256 72 ) ( -80 256 0 ) dark 0 512 0 0.015625 0.015625
( -16 208 72 ) ( -16 256 72 ) ( -16 256 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 7
{
( -80 336 0 ) ( -16 336 80 ) ( -16 288 80 ) dark 0 512 0 0.015625 0.015625
( -80 288 0 ) ( -16 288 80 ) ( -16 288 0 ) dark -3.6571045 512 0 0.015625 0.015625
( -16 288 0 ) ( -16 336 0 ) ( -80 336 0 ) dark 0 512 0 0.015625 0.015625
( -16 336 0 ) ( -16 336 80 ) ( -80 336 0 ) dark -3.6571045 512 0 0.015625 0.015625
( -16 288 80 ) ( -16 336 80 ) ( -16 336 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 8
{
( -80 416 16 ) ( -80 368 16 ) ( -80 368 0 ) dark 0 512 0 0.015625 0.015625
( -80 368 16 ) ( -16 368 16 ) ( -16 368 0 ) dark 0 512 0 0.015625 0.015625
( -16 368 0 ) ( -16 416 0 ) ( -80 416 0 ) dark 0 512 0 0.015625 0.015625
( -80 416 16 ) ( -16 416 16 ) ( -16 368 16 ) dark 0 512 0 0.015625 0.015625
( -16 416 0 ) ( -16 416 16 ) ( -80 416 16 ) dark 0 512 0 0.015625 0.015625
( -16 368 16 ) ( -16 416 16 ) ( -16 416 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 9
{
( -80 544 32 ) ( -80 496 32 ) ( -80 496 0 ) dark 0 512 0 0.015625 0.015625
( -80 496 32 ) ( -16 496 32 ) ( -16 496 0 ) dark 0 512 0 0.015625 0.015625
( -16 496 0 ) ( -16 544 0 ) ( -80 544 0 ) dark 0 512 0 0.015625 0.015625
( -80 544 32 ) ( -16 544 32 ) ( -16 496 32 ) dark 0 512 0 0.015625 0.015625
( -16 544 0 ) ( -16 544 32 ) ( -80 544 32 ) dark 0 512 0 0.015625 0.015625
( -16 496 32 ) ( -16 544 32 ) ( -16 544 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 10
{
( -432 784 160 ) ( -432 480 160 ) ( -432 480 0 ) dark 0 512 0 0.015625 0.015625
( -432 480 160 ) ( -272 480 160 ) ( -272 480 0 ) dark 0 512 0 0.015625 0.015625
( -272 480 0 ) ( -272 784 0 ) ( -432 784 0 ) dark 0 512 0 0.015625 0.015625
( -432 784 160 ) ( -272 784 160 ) ( -272 480 160 ) dark 0 512 0 0.015625 0.015625
( -272 784 0 ) ( -272 784 160 ) ( -432 784 160 ) dark 0 512 0 0.015625 0.015625
( -272 480 160 ) ( -272 784 160 ) ( -272 784 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 11
{
( -80 480 24 ) ( -80 432 24 ) ( -80 432 0 ) dark 64 512 0 0.015625 0.015625
( -80 432 24 ) ( -16 432 24 ) ( -16 432 0 ) dark -80 512 0 0.015625 0.015625
( -16 432 0 ) ( -16 480 0 ) ( -80 480 0 ) dark -80 512 0 0.015625 0.015625
( -80 480 24 ) ( -16 480 24 ) ( -16 432 24 ) dark -80 512 0 0.015625 0.015625
( -16 480 0 ) ( -16 480 24 ) ( -80 480 24 ) dark -80 512 0 0.015625 0.015625
( -16 432 24 ) ( -16 480 24 ) ( -16 480 0 ) dark 64 512 0 0.015625 0.015625
}
// brush 12
{
( -80 608 40 ) ( -80 560 40 ) ( -80 560 0 ) dark 0 512 0 0.015625 0.015625
( -80 560 40 ) ( -16 560 40 ) ( -16 560 0 ) dark 0 512 0 0.015625 0.015625
( -16 560 0 ) ( -16 608 0 ) ( -80 608 0 ) dark 0 512 0 0.015625 0.015625
( -80 608 40 ) ( -16 608 40 ) ( -16 560 40 ) dark 0 512 0 0.015625 0.015625
( -16 608 0 ) ( -16 608 40 ) ( -80 608 40 ) dark 0 512 0 0.015625 0.015625
( -16 560 40 ) ( -16 608 40 ) ( -16 608 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 13
{
( -80 176 0 ) ( -16 176 64 ) ( -16 128 64 ) dark 0 512 0 0.015625 0.015625
( -80 128 0 ) ( -16 128 64 ) ( -16 128 0 ) dark 0 512 0 0.015625 0.015625
( -16 128 0 ) ( -16 176 0 ) ( -80 176 0 ) dark 0 512 0 0.015625 0.015625
( -16 176 0 ) ( -16 176 64 ) ( -80 176 0 ) dark 0 512 0 0.015625 0.015625
( -16 128 64 ) ( -16 176 64 ) ( -16 176 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 14
{
( -80 96 56 ) ( -80 80 56 ) ( -80 80 40 ) dark 0 512 0 0.015625 0.015625
( -80 80 56 ) ( -64 80 56 ) ( -64 80 40 ) dark -512 512 0 0.015625 0.015625
( -64 80 40 ) ( -64 96 40 ) ( -80 96 40 ) dark -512 512 0 0.015625 0.015625
( -80 96 56 ) ( -64 96 56 ) ( -64 80 56 ) dark -512 512 0 0.015625 0.015625
( -64 96 40 ) ( -64 96 56 ) ( -80 96 56 ) dark -512 512 0 0.015625 0.015625
( -64 80 56 ) ( -64 96 56 ) ( -64 96 40 ) dark 0 512 0 0.015625 0.015625
}
// brush 15
{
( -80 672 48 ) ( -80 624 48 ) ( -80 624 0 ) dark 0 512 0 0.015625 0.015625
( -80 624 48 ) ( -16 624 48 ) ( -16 624 0 ) dark 0 512 0 0.015625 0.015625
( -16 624 0 ) ( -16 672 0 ) ( -80 672 0 ) dark 0 512 0 0.015625 0.015625
( -80 672 48 ) ( -16 672 48 ) ( -16 624 48 ) dark 0 512 0 0.015625 0.015625
( -16 672 0 ) ( -16 672 48 ) ( -80 672 48 ) dark 0 512 0 0.015625 0.015625
( -16 624 48 ) ( -16 672 48 ) ( -16 672 0 ) dark 0 512 0 0.015625 0.015625
}
}
// entity 1
{
"classname" "Player"
"origin" "-576 208 16"
}
// entity 2
{
"classname" "enemy_dummy"
"origin" "-672 528 48"
}

View File

@@ -0,0 +1,153 @@
// Game: Godot
// Format: Standard
// entity 0
{
"classname" "worldspawn"
"_tb_textures" "textures"
// brush 0
{
( -800 -272 -32 ) ( -800 -264.875 -32 ) ( -800 -272 -31 ) concrete_15 0 0 0 0.5 0.5
( -816 0 -32 ) ( -816 0 -31 ) ( -808.625 0 -32 ) concrete_15 0 0 0 0.5 0.5
( -816 -272 -32 ) ( -808.625 -272 -32 ) ( -816 -264.875 -32 ) concrete_15 0 0 0 0.5 0.5
( 128 640 0 ) ( 128 647.125 0 ) ( 135.375 640 0 ) concrete_15 0 0 0 0.5 0.5
( 128 1344 0 ) ( 135.375 1344 0 ) ( 128 1344 1 ) concrete_15 0 0 0 0.5 0.5
( 0 640 0 ) ( 0 640 1 ) ( 0 647.125 0 ) concrete_15 0 0 0 0.5 0.5
}
// brush 1
{
( -800 0 80 ) ( -800 1 80 ) ( -800 0 81 ) dark 0 512 0 0.015625 0.015625
( -800 0 80 ) ( -800 0 81 ) ( -799 0 80 ) dark 0 512 0 0.015625 0.015625
( -800 0 0 ) ( -799 0 0 ) ( -800 1 0 ) dark 0 512 0 0.015625 0.015625
( -736 144 208 ) ( -736 145 208 ) ( -735 144 208 ) dark 0 512 0 0.015625 0.015625
( -736 1344 96 ) ( -735 1344 96 ) ( -736 1344 97 ) dark 0 512 0 0.015625 0.015625
( -784 144 96 ) ( -784 144 97 ) ( -784 145 96 ) dark 0 512 0 0.015625 0.015625
}
// brush 2
{
( -784 0 208 ) ( -784 1 208 ) ( -784 0 209 ) dark 0 512 180 0.015625 0.015625
( -80 0 208 ) ( -80 0 209 ) ( -79 0 208 ) dark 0 512 180 0.015625 0.015625
( -80 0 0 ) ( -79 0 0 ) ( -80 1 0 ) dark 0 512 180 0.015625 0.015625
( 0 16 208 ) ( 0 17 208 ) ( 1 16 208 ) dark 0 512 180 0.015625 0.015625
( 0 16 224 ) ( 1 16 224 ) ( 0 16 225 ) dark 0 512 180 0.015625 0.015625
( 0 16 224 ) ( 0 16 225 ) ( 0 17 224 ) dark 0 512 180 0.015625 0.015625
}
// brush 3
{
( -16 496 0 ) ( -16 497 0 ) ( -16 496 1 ) dark 0 512 180 0.015625 0.015625
( -32 16 0 ) ( -32 16 1 ) ( -31 16 0 ) dark 0 512 180 0.015625 0.015625
( -32 496 0 ) ( -31 496 0 ) ( -32 497 0 ) dark 0 512 180 0.015625 0.015625
( 0 624 208 ) ( 0 625 208 ) ( 1 624 208 ) dark 0 512 180 0.015625 0.015625
( 0 1344 16 ) ( 1 1344 16 ) ( 0 1344 17 ) dark 0 512 180 0.015625 0.015625
( 0 624 16 ) ( 0 624 17 ) ( 0 625 16 ) dark 0 512 180 0.015625 0.015625
}
// brush 4
{
( -784 1328 0 ) ( -784 1329 0 ) ( -784 1328 1 ) dark 0 512 0 0.015625 0.015625
( -576 1328 0 ) ( -576 1328 1 ) ( -575 1328 0 ) dark 0 512 0 0.015625 0.015625
( -576 1328 0 ) ( -575 1328 0 ) ( -576 1329 0 ) dark 0 512 0 0.015625 0.015625
( -16 1344 208 ) ( -16 1345 208 ) ( -15 1344 208 ) dark 0 512 0 0.015625 0.015625
( -16 1344 16 ) ( -15 1344 16 ) ( -16 1344 17 ) dark 0 512 0 0.015625 0.015625
( -16 1344 16 ) ( -16 1344 17 ) ( -16 1345 16 ) dark 0 512 0 0.015625 0.015625
}
// brush 5
{
( -784 752 0 ) ( -784 752 96 ) ( -784 432 0 ) dark 0 512 0 0.015625 0.015625
( -784 752 96 ) ( -592 752 96 ) ( -592 432 0 ) dark 0 512 0 0.015625 0.015625
( -592 432 0 ) ( -592 752 0 ) ( -784 752 0 ) dark 0 512 0 0.015625 0.015625
( -592 752 0 ) ( -592 752 96 ) ( -784 752 96 ) dark 0 512 0 0.015625 0.015625
( -592 432 0 ) ( -592 752 96 ) ( -592 752 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 6
{
( -80 256 0 ) ( -16 256 72 ) ( -16 208 72 ) dark 0 512 0 0.015625 0.015625
( -80 208 0 ) ( -16 208 72 ) ( -16 208 0 ) dark 0 512 0 0.015625 0.015625
( -16 208 0 ) ( -16 256 0 ) ( -80 256 0 ) dark 0 512 0 0.015625 0.015625
( -16 256 0 ) ( -16 256 72 ) ( -80 256 0 ) dark 0 512 0 0.015625 0.015625
( -16 208 72 ) ( -16 256 72 ) ( -16 256 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 7
{
( -80 336 0 ) ( -16 336 80 ) ( -16 288 80 ) dark 0 512 0 0.015625 0.015625
( -80 288 0 ) ( -16 288 80 ) ( -16 288 0 ) dark 0 512 0 0.015625 0.015625
( -16 288 0 ) ( -16 336 0 ) ( -80 336 0 ) dark 0 512 0 0.015625 0.015625
( -16 336 0 ) ( -16 336 80 ) ( -80 336 0 ) dark 0 512 0 0.015625 0.015625
( -16 288 80 ) ( -16 336 80 ) ( -16 336 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 8
{
( -80 416 16 ) ( -80 368 16 ) ( -80 368 0 ) dark 0 512 0 0.015625 0.015625
( -80 368 16 ) ( -16 368 16 ) ( -16 368 0 ) dark 0 512 0 0.015625 0.015625
( -16 368 0 ) ( -16 416 0 ) ( -80 416 0 ) dark 0 512 0 0.015625 0.015625
( -80 416 16 ) ( -16 416 16 ) ( -16 368 16 ) dark 0 512 0 0.015625 0.015625
( -16 416 0 ) ( -16 416 16 ) ( -80 416 16 ) dark 0 512 0 0.015625 0.015625
( -16 368 16 ) ( -16 416 16 ) ( -16 416 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 9
{
( -80 544 32 ) ( -80 496 32 ) ( -80 496 0 ) dark 0 512 0 0.015625 0.015625
( -80 496 32 ) ( -16 496 32 ) ( -16 496 0 ) dark 0 512 0 0.015625 0.015625
( -16 496 0 ) ( -16 544 0 ) ( -80 544 0 ) dark 0 512 0 0.015625 0.015625
( -80 544 32 ) ( -16 544 32 ) ( -16 496 32 ) dark 0 512 0 0.015625 0.015625
( -16 544 0 ) ( -16 544 32 ) ( -80 544 32 ) dark 0 512 0 0.015625 0.015625
( -16 496 32 ) ( -16 544 32 ) ( -16 544 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 10
{
( -80 480 24 ) ( -80 432 24 ) ( -80 432 0 ) dark 0 512 0 0.015625 0.015625
( -80 432 24 ) ( -16 432 24 ) ( -16 432 0 ) dark 0 512 0 0.015625 0.015625
( -16 432 0 ) ( -16 480 0 ) ( -80 480 0 ) dark 0 512 0 0.015625 0.015625
( -80 480 24 ) ( -16 480 24 ) ( -16 432 24 ) dark 0 512 0 0.015625 0.015625
( -16 480 0 ) ( -16 480 24 ) ( -80 480 24 ) dark 0 512 0 0.015625 0.015625
( -16 432 24 ) ( -16 480 24 ) ( -16 480 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 11
{
( -80 608 40 ) ( -80 560 40 ) ( -80 560 0 ) dark 0 512 0 0.015625 0.015625
( -80 560 40 ) ( -16 560 40 ) ( -16 560 0 ) dark 0 512 0 0.015625 0.015625
( -16 560 0 ) ( -16 608 0 ) ( -80 608 0 ) dark 0 512 0 0.015625 0.015625
( -80 608 40 ) ( -16 608 40 ) ( -16 560 40 ) dark 0 512 0 0.015625 0.015625
( -16 608 0 ) ( -16 608 40 ) ( -80 608 40 ) dark 0 512 0 0.015625 0.015625
( -16 560 40 ) ( -16 608 40 ) ( -16 608 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 12
{
( -80 176 0 ) ( -16 176 64 ) ( -16 128 64 ) dark 0 512 0 0.015625 0.015625
( -80 128 0 ) ( -16 128 64 ) ( -16 128 0 ) dark 0 512 0 0.015625 0.015625
( -16 128 0 ) ( -16 176 0 ) ( -80 176 0 ) dark 0 512 0 0.015625 0.015625
( -16 176 0 ) ( -16 176 64 ) ( -80 176 0 ) dark 0 512 0 0.015625 0.015625
( -16 128 64 ) ( -16 176 64 ) ( -16 176 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 13
{
( -80 96 56 ) ( -80 80 56 ) ( -80 80 40 ) dark 0 512 0 0.015625 0.015625
( -80 80 56 ) ( -64 80 56 ) ( -64 80 40 ) dark 0 512 0 0.015625 0.015625
( -64 80 40 ) ( -64 96 40 ) ( -80 96 40 ) dark 0 512 0 0.015625 0.015625
( -80 96 56 ) ( -64 96 56 ) ( -64 80 56 ) dark 0 512 0 0.015625 0.015625
( -64 96 40 ) ( -64 96 56 ) ( -80 96 56 ) dark 0 512 0 0.015625 0.015625
( -64 80 56 ) ( -64 96 56 ) ( -64 96 40 ) dark 0 512 0 0.015625 0.015625
}
// brush 14
{
( -80 672 48 ) ( -80 624 48 ) ( -80 624 0 ) dark 0 512 0 0.015625 0.015625
( -80 624 48 ) ( -16 624 48 ) ( -16 624 0 ) dark 0 512 0 0.015625 0.015625
( -16 624 0 ) ( -16 672 0 ) ( -80 672 0 ) dark 0 512 0 0.015625 0.015625
( -80 672 48 ) ( -16 672 48 ) ( -16 624 48 ) dark 0 512 0 0.015625 0.015625
( -16 672 0 ) ( -16 672 48 ) ( -80 672 48 ) dark 0 512 0 0.015625 0.015625
( -16 624 48 ) ( -16 672 48 ) ( -16 672 0 ) dark 0 512 0 0.015625 0.015625
}
}
// entity 1
{
"classname" "Player"
"origin" "-576 208 16"
}
// entity 2
{
"classname" "enemy_dummy"
"origin" "-672 528 48"
}
// entity 3
{
"classname" "light"
"origin" "-20 740 68"
}

193
scenes/map/test.map Normal file
View File

@@ -0,0 +1,193 @@
// Game: Godot
// Format: Standard
// entity 0
{
"classname" "worldspawn"
"_tb_textures" "textures"
// brush 0
{
( -800 -272 -32 ) ( -800 -264.875 -32 ) ( -800 -272 -31 ) concrete_15 0 0 0 1 1
( -816 0 -32 ) ( -816 0 -31 ) ( -808.625 0 -32 ) concrete_15 0 0 0 1 1
( -816 -272 -32 ) ( -808.625 -272 -32 ) ( -816 -264.875 -32 ) concrete_15 0 0 0 1 1
( 128 640 0 ) ( 128 647.125 0 ) ( 135.375 640 0 ) concrete_15 0 0 0 1 1
( 128 1344 0 ) ( 135.375 1344 0 ) ( 128 1344 1 ) concrete_15 0 0 0 1 1
( 0 640 0 ) ( 0 640 1 ) ( 0 647.125 0 ) concrete_15 0 0 0 1 1
}
// brush 1
{
( -800 0 80 ) ( -800 1 80 ) ( -800 0 81 ) dark 0 512 0 0.015625 0.015625
( -800 0 80 ) ( -800 0 81 ) ( -799 0 80 ) dark 0 512 0 0.015625 0.015625
( -800 0 0 ) ( -799 0 0 ) ( -800 1 0 ) dark 0 512 0 0.015625 0.015625
( -736 144 208 ) ( -736 145 208 ) ( -735 144 208 ) dark 0 512 0 0.015625 0.015625
( -736 1344 96 ) ( -735 1344 96 ) ( -736 1344 97 ) dark 0 512 0 0.015625 0.015625
( -784 144 96 ) ( -784 144 97 ) ( -784 145 96 ) dark 0 512 0 0.015625 0.015625
}
// brush 2
{
( -784 0 208 ) ( -784 1 208 ) ( -784 0 209 ) dark 0 512 180 0.015625 0.015625
( -80 0 208 ) ( -80 0 209 ) ( -79 0 208 ) dark 0 512 180 0.015625 0.015625
( -80 0 0 ) ( -79 0 0 ) ( -80 1 0 ) dark 0 512 180 0.015625 0.015625
( 0 16 208 ) ( 0 17 208 ) ( 1 16 208 ) dark 0 512 180 0.015625 0.015625
( 0 16 224 ) ( 1 16 224 ) ( 0 16 225 ) dark 0 512 180 0.015625 0.015625
( 0 16 224 ) ( 0 16 225 ) ( 0 17 224 ) dark 0 512 180 0.015625 0.015625
}
// brush 3
{
( -16 496 0 ) ( -16 497 0 ) ( -16 496 1 ) dark 0 512 180 0.015625 0.015625
( -32 16 0 ) ( -32 16 1 ) ( -31 16 0 ) dark 0 512 180 0.015625 0.015625
( -32 496 0 ) ( -31 496 0 ) ( -32 497 0 ) dark 0 512 180 0.015625 0.015625
( 0 624 208 ) ( 0 625 208 ) ( 1 624 208 ) dark 0 512 180 0.015625 0.015625
( 0 1344 16 ) ( 1 1344 16 ) ( 0 1344 17 ) dark 0 512 180 0.015625 0.015625
( 0 624 16 ) ( 0 624 17 ) ( 0 625 16 ) dark 0 512 180 0.015625 0.015625
}
// brush 4
{
( -784 1328 0 ) ( -784 1329 0 ) ( -784 1328 1 ) dark 0 512 0 0.015625 0.015625
( -576 1328 0 ) ( -576 1328 1 ) ( -575 1328 0 ) dark 0 512 0 0.015625 0.015625
( -576 1328 0 ) ( -575 1328 0 ) ( -576 1329 0 ) dark 0 512 0 0.015625 0.015625
( -16 1344 208 ) ( -16 1345 208 ) ( -15 1344 208 ) dark 0 512 0 0.015625 0.015625
( -16 1344 16 ) ( -15 1344 16 ) ( -16 1344 17 ) dark 0 512 0 0.015625 0.015625
( -16 1344 16 ) ( -16 1344 17 ) ( -16 1345 16 ) dark 0 512 0 0.015625 0.015625
}
// brush 5
{
( -784 752 0 ) ( -784 752 96 ) ( -784 432 0 ) dark 0 512 0 0.015625 0.015625
( -784 752 96 ) ( -592 752 96 ) ( -592 432 0 ) dark 0 512 0 0.015625 0.015625
( -592 432 0 ) ( -592 752 0 ) ( -784 752 0 ) dark 0 512 0 0.015625 0.015625
( -592 752 0 ) ( -592 752 96 ) ( -784 752 96 ) dark 0 512 0 0.015625 0.015625
( -592 432 0 ) ( -592 752 96 ) ( -592 752 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 6
{
( -80 256 0 ) ( -16 256 72 ) ( -16 208 72 ) dark 0 512 0 0.015625 0.015625
( -80 208 0 ) ( -16 208 72 ) ( -16 208 0 ) dark 0 512 0 0.015625 0.015625
( -16 208 0 ) ( -16 256 0 ) ( -80 256 0 ) dark 0 512 0 0.015625 0.015625
( -16 256 0 ) ( -16 256 72 ) ( -80 256 0 ) dark 0 512 0 0.015625 0.015625
( -16 208 72 ) ( -16 256 72 ) ( -16 256 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 7
{
( -80 336 0 ) ( -16 336 80 ) ( -16 288 80 ) dark 0 512 0 0.015625 0.015625
( -80 288 0 ) ( -16 288 80 ) ( -16 288 0 ) dark 0 512 0 0.015625 0.015625
( -16 288 0 ) ( -16 336 0 ) ( -80 336 0 ) dark 0 512 0 0.015625 0.015625
( -16 336 0 ) ( -16 336 80 ) ( -80 336 0 ) dark 0 512 0 0.015625 0.015625
( -16 288 80 ) ( -16 336 80 ) ( -16 336 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 8
{
( -80 416 16 ) ( -80 368 16 ) ( -80 368 0 ) dark 0 512 0 0.015625 0.015625
( -80 368 16 ) ( -16 368 16 ) ( -16 368 0 ) dark 0 512 0 0.015625 0.015625
( -16 368 0 ) ( -16 416 0 ) ( -80 416 0 ) dark 0 512 0 0.015625 0.015625
( -80 416 16 ) ( -16 416 16 ) ( -16 368 16 ) dark 0 512 0 0.015625 0.015625
( -16 416 0 ) ( -16 416 16 ) ( -80 416 16 ) dark 0 512 0 0.015625 0.015625
( -16 368 16 ) ( -16 416 16 ) ( -16 416 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 9
{
( -80 544 32 ) ( -80 496 32 ) ( -80 496 0 ) dark 0 512 0 0.015625 0.015625
( -80 496 32 ) ( -16 496 32 ) ( -16 496 0 ) dark 0 512 0 0.015625 0.015625
( -16 496 0 ) ( -16 544 0 ) ( -80 544 0 ) dark 0 512 0 0.015625 0.015625
( -80 544 32 ) ( -16 544 32 ) ( -16 496 32 ) dark 0 512 0 0.015625 0.015625
( -16 544 0 ) ( -16 544 32 ) ( -80 544 32 ) dark 0 512 0 0.015625 0.015625
( -16 496 32 ) ( -16 544 32 ) ( -16 544 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 10
{
( -80 480 24 ) ( -80 432 24 ) ( -80 432 0 ) dark 0 512 0 0.015625 0.015625
( -80 432 24 ) ( -16 432 24 ) ( -16 432 0 ) dark 0 512 0 0.015625 0.015625
( -16 432 0 ) ( -16 480 0 ) ( -80 480 0 ) dark 0 512 0 0.015625 0.015625
( -80 480 24 ) ( -16 480 24 ) ( -16 432 24 ) dark 0 512 0 0.015625 0.015625
( -16 480 0 ) ( -16 480 24 ) ( -80 480 24 ) dark 0 512 0 0.015625 0.015625
( -16 432 24 ) ( -16 480 24 ) ( -16 480 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 11
{
( -80 608 40 ) ( -80 560 40 ) ( -80 560 0 ) dark 0 512 0 0.015625 0.015625
( -80 560 40 ) ( -16 560 40 ) ( -16 560 0 ) dark 0 512 0 0.015625 0.015625
( -16 560 0 ) ( -16 608 0 ) ( -80 608 0 ) dark 0 512 0 0.015625 0.015625
( -80 608 40 ) ( -16 608 40 ) ( -16 560 40 ) dark 0 512 0 0.015625 0.015625
( -16 608 0 ) ( -16 608 40 ) ( -80 608 40 ) dark 0 512 0 0.015625 0.015625
( -16 560 40 ) ( -16 608 40 ) ( -16 608 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 12
{
( -80 176 0 ) ( -16 176 64 ) ( -16 128 64 ) dark 0 512 0 0.015625 0.015625
( -80 128 0 ) ( -16 128 64 ) ( -16 128 0 ) dark 0 512 0 0.015625 0.015625
( -16 128 0 ) ( -16 176 0 ) ( -80 176 0 ) dark 0 512 0 0.015625 0.015625
( -16 176 0 ) ( -16 176 64 ) ( -80 176 0 ) dark 0 512 0 0.015625 0.015625
( -16 128 64 ) ( -16 176 64 ) ( -16 176 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 13
{
( -80 96 56 ) ( -80 80 56 ) ( -80 80 40 ) dark 0 512 0 0.015625 0.015625
( -80 80 56 ) ( -64 80 56 ) ( -64 80 40 ) dark 0 512 0 0.015625 0.015625
( -64 80 40 ) ( -64 96 40 ) ( -80 96 40 ) dark 0 512 0 0.015625 0.015625
( -80 96 56 ) ( -64 96 56 ) ( -64 80 56 ) dark 0 512 0 0.015625 0.015625
( -64 96 40 ) ( -64 96 56 ) ( -80 96 56 ) dark 0 512 0 0.015625 0.015625
( -64 80 56 ) ( -64 96 56 ) ( -64 96 40 ) dark 0 512 0 0.015625 0.015625
}
// brush 14
{
( -80 672 48 ) ( -80 624 48 ) ( -80 624 0 ) dark 0 512 0 0.015625 0.015625
( -80 624 48 ) ( -16 624 48 ) ( -16 624 0 ) dark 0 512 0 0.015625 0.015625
( -16 624 0 ) ( -16 672 0 ) ( -80 672 0 ) dark 0 512 0 0.015625 0.015625
( -80 672 48 ) ( -16 672 48 ) ( -16 624 48 ) dark 0 512 0 0.015625 0.015625
( -16 672 0 ) ( -16 672 48 ) ( -80 672 48 ) dark 0 512 0 0.015625 0.015625
( -16 624 48 ) ( -16 672 48 ) ( -16 672 0 ) dark 0 512 0 0.015625 0.015625
}
// brush 15
{
( -467.7128129211019 637.2820323027552 64 ) ( -383.712812921102 491.7897644669695 64 ) ( -383.712812921102 491.7897644669695 0 ) shipping_container_01_side -175.73987 0 0 0.4330127 0.5
( -412.2871870788979 669.2820323027552 0 ) ( -412.2871870788979 669.2820323027552 64 ) ( -467.7128129211019 637.2820323027552 64 ) shipping_container_01_front 63.30011 1.3402672 0 0.42977914 0.49051714
( -328.2871870788979 523.7897644669695 0 ) ( -412.2871870788979 669.2820323027552 0 ) ( -467.7128129211019 637.2820323027552 0 ) shipping_container_01_side -38.589844 9.75885 30 1 1
( -467.7128129211019 637.2820323027552 64 ) ( -412.2871870788979 669.2820323027552 64 ) ( -328.2871870788979 523.7897644669695 64 ) shipping_container_01_front -75.654724 84.19873 30 0.4645997 1.319437
( -383.712812921102 491.7897644669695 64 ) ( -328.2871870788979 523.7897644669695 64 ) ( -328.2871870788979 523.7897644669695 0 ) shipping_container_01_front 1.0908203 0 0 0.426851 0.49832597
( -328.2871870788979 523.7897644669695 64 ) ( -412.2871870788979 669.2820323027552 64 ) ( -412.2871870788979 669.2820323027552 0 ) shipping_container_01_side -249.64062 0 0 0.4330127 0.5
}
// brush 16
{
( -784 1120 80 ) ( -784 1121 80 ) ( -784 1120 81 ) __TB_empty 0 0 0 1 1
( -784 1120 80 ) ( -784 1120 81 ) ( -783 1120 80 ) __TB_empty 0 0 0 1 1
( -784 1120 80 ) ( -783 1120 80 ) ( -784 1121 80 ) __TB_empty 0 0 0 1 1
( -640 1344 96 ) ( -640 1345 96 ) ( -639 1344 96 ) __TB_empty 0 0 0 1 1
( -640 1344 96 ) ( -639 1344 96 ) ( -640 1344 97 ) __TB_empty 0 0 0 1 1
( -640 1344 96 ) ( -640 1344 97 ) ( -640 1345 96 ) __TB_empty 0 0 0 1 1
}
// brush 17
{
( -784 1120 0 ) ( -784 1121 0 ) ( -784 1120 1 ) __TB_empty 0 0 0 1 1
( -784 1120 0 ) ( -784 1120 1 ) ( -783 1120 0 ) __TB_empty 0 0 0 1 1
( -784 1120 0 ) ( -783 1120 0 ) ( -784 1121 0 ) __TB_empty 0 0 0 1 1
( -640 1136 80 ) ( -640 1137 80 ) ( -639 1136 80 ) __TB_empty 0 0 0 1 1
( -640 1136 80 ) ( -639 1136 80 ) ( -640 1136 81 ) __TB_empty 0 0 0 1 1
( -640 1136 80 ) ( -640 1136 81 ) ( -640 1137 80 ) __TB_empty 0 0 0 1 1
}
// brush 18
{
( -656 1168 0 ) ( -656 1169 0 ) ( -656 1168 1 ) __TB_empty 0 0 0 1 1
( -656 1168 0 ) ( -656 1168 1 ) ( -655 1168 0 ) __TB_empty 0 0 0 1 1
( -656 1168 0 ) ( -655 1168 0 ) ( -656 1169 0 ) __TB_empty 0 0 0 1 1
( -640 1344 80 ) ( -640 1345 80 ) ( -639 1344 80 ) __TB_empty 0 0 0 1 1
( -640 1344 80 ) ( -639 1344 80 ) ( -640 1344 81 ) __TB_empty 0 0 0 1 1
( -640 1344 80 ) ( -640 1344 81 ) ( -640 1345 80 ) __TB_empty 0 0 0 1 1
}
// brush 19
{
( -736 1232 0 ) ( -736 1233 0 ) ( -736 1232 1 ) __TB_empty 0 0 0 1 1
( -736 1232 0 ) ( -736 1232 1 ) ( -735 1232 0 ) __TB_empty 0 0 0 1 1
( -736 1232 0 ) ( -735 1232 0 ) ( -736 1233 0 ) __TB_empty 0 0 0 1 1
( -704 1264 32 ) ( -704 1265 32 ) ( -703 1264 32 ) __TB_empty 0 0 0 1 1
( -704 1264 32 ) ( -703 1264 32 ) ( -704 1264 33 ) __TB_empty 0 0 0 1 1
( -704 1264 32 ) ( -704 1264 33 ) ( -704 1265 32 ) __TB_empty 0 0 0 1 1
}
}
// entity 1
{
"classname" "light"
"origin" "-724 1324 44"
}
// entity 2
{
"classname" "Player"
"origin" "-560 304 16"
}

15
scenes/map/test.mtl Normal file
View File

@@ -0,0 +1,15 @@
newmtl __TB_empty
map_Kd textures/__TB_empty.png
newmtl concrete_15
map_Kd textures/concrete_15.jpg
newmtl dark
map_Kd textures/dark.png
newmtl shipping_container_01_front
map_Kd textures/shipping_container_01_front.jpg
newmtl shipping_container_01_side
map_Kd textures/shipping_container_01_side.jpg

636
scenes/map/test.obj Normal file
View File

@@ -0,0 +1,636 @@
mtllib test.mtl
# vertices
v -800 -32 -1344
v -800 -32 -0
v -800 0 -0
v -800 0 -1344
v 0 0 -0
v 0 -32 -0
v 0 -32 -1344
v 0 0 -1344
v -800 0 -1344
v -800 0 -0
v -800 208 -0
v -800 208 -1344
v -784 208 -0
v -784 0 -0
v -784 0 -1344
v -784 208 -1344
v -784 0 -16
v -784 0 -0
v -784 208 -0
v -784 208 -16
v 0 208 -0
v 0 0 -0
v 0 0 -16
v 0 208 -16
v -16 0 -1344
v -16 0 -16
v -16 208 -16
v -16 208 -1344
v 0 208 -16
v 0 0 -16
v 0 0 -1344
v 0 208 -1344
v -784 0 -1344
v -784 0 -1328
v -784 208 -1328
v -784 208 -1344
v -16 208 -1328
v -16 0 -1328
v -16 0 -1344
v -16 208 -1344
v -784 0 -752
v -784 0 -432
v -784 96 -752
v -592 96 -752
v -592 0 -432
v -592 0 -752
v -16 72 -256
v -80 0 -256
v -80 0 -208
v -16 72 -208
v -16 0 -208
v -16 0 -256
v -16 80 -336
v -80 0 -336
v -80 0 -288
v -16 80 -288
v -16 0 -288
v -16 0 -336
v -80 0 -416
v -80 0 -368
v -80 16 -368
v -80 16 -416
v -16 16 -368
v -16 0 -368
v -16 0 -416
v -16 16 -416
v -80 0 -544
v -80 0 -496
v -80 32 -496
v -80 32 -544
v -16 32 -496
v -16 0 -496
v -16 0 -544
v -16 32 -544
v -80 0 -480
v -80 0 -432
v -80 24 -432
v -80 24 -480
v -16 24 -432
v -16 0 -432
v -16 0 -480
v -16 24 -480
v -80 0 -608
v -80 0 -560
v -80 40 -560
v -80 40 -608
v -16 40 -560
v -16 0 -560
v -16 0 -608
v -16 40 -608
v -16 64 -176
v -80 0 -176
v -80 0 -128
v -16 64 -128
v -16 0 -128
v -16 0 -176
v -80 40 -96
v -80 40 -80
v -80 56 -80
v -80 56 -96
v -64 56 -80
v -64 40 -80
v -64 40 -96
v -64 56 -96
v -80 0 -672
v -80 0 -624
v -80 48 -624
v -80 48 -672
v -16 48 -624
v -16 0 -624
v -16 0 -672
v -16 48 -672
v -383.71281292110143 64 -491.789764466972
v -467.71281292110143 64 -637.2820323027554
v -467.71281292110143 0 -637.2820323027554
v -383.7128129211016 0 -491.7897644669698
v -412.2871870789022 0 -669.2820323027554
v -412.2871870788979 64 -669.2820323027552
v -328.2871870789022 0 -523.7897644669683
v -328.2871870788988 64 -523.7897644669711
v -784 80 -1344
v -784 80 -1120
v -784 96 -1120
v -784 96 -1344
v -640 96 -1120
v -640 80 -1120
v -640 80 -1344
v -640 96 -1344
v -784 0 -1136
v -784 0 -1120
v -784 80 -1120
v -784 80 -1136
v -640 80 -1120
v -640 0 -1120
v -640 0 -1136
v -640 80 -1136
v -656 0 -1344
v -656 0 -1168
v -656 80 -1168
v -656 80 -1344
v -640 80 -1168
v -640 0 -1168
v -640 0 -1344
v -640 80 -1344
v -736 0 -1264
v -736 0 -1232
v -736 32 -1232
v -736 32 -1264
v -704 32 -1232
v -704 0 -1232
v -704 0 -1264
v -704 32 -1264
# texture coordinates
vt 21 -0.5
vt 0 -0.5
vt 0 -0
vt 21 -0
vt -12.5 -0
vt -12.5 -0.5
vt -12.5 21
vt 0 21
vt 84 -0.5
vt 0 12.5
vt 84 12.5
vt -49 12.5
vt -50 12.5
vt -50 -0.5
vt -49 -0.5
vt -50 83.5
vt -49 83.5
vt -1 -0.5
vt 0 -13.5
vt -1 -13.5
vt 49 -13.5
vt 49 -0.5
vt 49 -1.5
vt 0 -1.5
vt -84 -0.5
vt -84 -13.5
vt 1 -13.5
vt 1 -0.5
vt 1 -1.5
vt 1 -84.5
vt 0 -84.5
vt 83 -0.5
vt 83 12.5
vt -1 12.5
vt -1 82.5
vt -49 82.5
vt -1 83.5
vt 47 -0.5
vt 27 -0.5
vt 47 5.5
vt -37 46.5
vt -49 46.5
vt -49 26.5
vt -37 26.5
vt -37 -0.5
vt -49 5.5
vt -37 5.5
vt 16 4
vt 16 -0.5
vt 13 -0.5
vt 13 4
vt -1 4
vt -5 -0.5
vt -5 12.5
vt -5 15.5
vt -1 15.5
vt 21 4.5
vt 18 -0.5
vt 18 4.5
vt -1 4.5
vt -1 17.5
vt -5 17.5
vt -5 20.5
vt -1 20.5
vt 26 -0.5
vt 23 -0.5
vt 23 0.5
vt 26 0.5
vt -1 0.5
vt -5 0.5
vt -1 22.5
vt -5 22.5
vt -5 25.5
vt -1 25.5
vt 34 -0.5
vt 31 -0.5
vt 31 1.5
vt 34 1.5
vt -1 1.5
vt -5 1.5
vt -1 30.5
vt -5 30.5
vt -5 33.5
vt -1 33.5
vt 30 -0.5
vt 27 1
vt 30 1
vt -1 1
vt -5 1
vt -1 26.5
vt -5 26.5
vt -5 29.5
vt -1 29.5
vt 38 -0.5
vt 35 -0.5
vt 35 2
vt 38 2
vt -1 2
vt -5 2
vt -1 34.5
vt -5 34.5
vt -5 37.5
vt -1 37.5
vt -1 10.5
vt -5 10.5
vt -5 7.5
vt -1 7.5
vt -1 3.5
vt 11 3.5
vt 8 3.5
vt 8 -0.5
vt 11 -0.5
vt 6 2
vt 5 2
vt 5 3
vt 6 3
vt -4 3
vt -5 3
vt -4 2
vt -4 4.5
vt -5 4.5
vt -5 5.5
vt -4 5.5
vt 42 -0.5
vt 39 -0.5
vt 39 2.5
vt 42 2.5
vt -1 2.5
vt -5 2.5
vt -1 38.5
vt -5 38.5
vt -5 41.5
vt -1 41.5
vt 2.9721363 1
vt 4.012384 1
vt 4.012384 -0
vt 2.9721363 -0
vt -7 -0.010470837
vt -8.0075245 -0.010470837
vt -8.0075245 1.0088615
vt -7 1.0088615
vt -0.18885452 4.75
vt -0.38699692 4.75
vt -0.38699692 6.0625
vt -0.18885452 6.0625
vt -0.96789175 3.9947429
vt -2.044087 3.9947429
vt -2.044087 3.0000005
vt -0.96789175 3.0000005
vt -6 1.0033593
vt -7.0144353 1.0033593
vt -7.0144353 -0
vt -6 -0
vt 35 2.5
vt 35 3
vt 42 3
vt -20 3
vt -24.5 3
vt -24.5 2.5
vt -20 2.5
vt -20 35
vt -24.5 35
vt -24.5 42
vt -20 42
vt 35.5 -0
vt 35 -0
vt 35.5 2.5
vt -24.5 -0
vt -20 -0
vt -24.5 35.5
vt -20 35.5
vt 42 -0
vt 36.5 -0
vt 36.5 2.5
vt -20.5 2.5
vt -20.5 -0
vt -20 36.5
vt -20.5 36.5
vt -20.5 42
vt 39.5 -0
vt 38.5 -0
vt 38.5 1
vt 39.5 1
vt -22 1
vt -23 1
vt -23 -0
vt -22 -0
vt -22 38.5
vt -23 38.5
vt -23 39.5
vt -22 39.5
# normals
vn -1 0 -0
vn 0 0 1
vn 0 -1 -0
vn 0 1 -0
vn 0 0 -1
vn 1 0 -0
vn 0 0.9578262852211514 0.28734788556634544
vn -0.7474093186836598 0.6643638388299198 -0
vn -0.7808688094430304 0.6246950475544243 -0
vn -0.7071067811865476 0.7071067811865476 -0
vn -0.8660254037844389 0 0.4999999999999995
vn -0.5000000000000006 0 -0.8660254037844384
vn 0.4999999999999998 0 0.8660254037844389
vn 0.8660254037844387 0 -0.5
o entity0_brush0
usemtl concrete_15
f 1/1/1 2/2/1 3/3/1 4/4/1
usemtl concrete_15
f 5/3/2 3/5/2 2/6/2 6/2/2
usemtl concrete_15
f 6/3/3 2/5/3 1/7/3 7/8/3
usemtl concrete_15
f 8/8/4 4/7/4 3/5/4 5/3/4
usemtl concrete_15
f 7/2/5 1/6/5 4/5/5 8/3/5
usemtl concrete_15
f 8/4/6 5/3/6 6/2/6 7/1/6
o entity0_brush1
usemtl dark
f 9/9/1 10/2/1 11/10/1 12/11/1
usemtl dark
f 13/12/2 11/13/2 10/14/2 14/15/2
usemtl dark
f 14/15/3 10/14/3 9/16/3 15/17/3
usemtl dark
f 16/17/4 12/16/4 11/14/4 13/15/4
usemtl dark
f 15/15/5 9/14/5 12/13/5 16/12/5
usemtl dark
f 16/11/6 13/10/6 14/2/6 15/9/6
o entity0_brush2
usemtl dark
f 17/18/1 18/2/1 19/19/1 20/20/1
usemtl dark
f 21/19/2 19/21/2 18/22/2 22/2/2
usemtl dark
f 22/2/3 18/22/3 17/23/3 23/24/3
usemtl dark
f 24/24/4 20/23/4 19/22/4 21/2/4
usemtl dark
f 23/2/5 17/22/5 20/21/5 24/19/5
usemtl dark
f 24/20/6 21/19/6 22/2/6 23/18/6
o entity0_brush3
usemtl dark
f 25/25/1 26/18/1 27/20/1 28/26/1
usemtl dark
f 29/19/2 27/27/2 26/28/2 30/2/2
usemtl dark
f 30/24/3 26/29/3 25/30/3 31/31/3
usemtl dark
f 32/31/4 28/30/4 27/29/4 29/24/4
usemtl dark
f 31/2/5 25/28/5 28/27/5 32/19/5
usemtl dark
f 32/26/6 29/20/6 30/18/6 31/25/6
o entity0_brush4
usemtl dark
f 33/9/1 34/32/1 35/33/1 36/11/1
usemtl dark
f 37/34/2 35/12/2 34/15/2 38/18/2
usemtl dark
f 38/35/3 34/36/3 33/17/3 39/37/3
usemtl dark
f 40/37/4 36/17/4 35/36/4 37/35/4
usemtl dark
f 39/18/5 33/15/5 36/12/5 40/34/5
usemtl dark
f 40/11/6 37/33/6 38/32/6 39/9/6
o entity0_brush5
usemtl dark
f 41/38/1 42/39/1 43/40/1
usemtl dark
f 44/41/7 43/42/7 42/43/7 45/44/7
usemtl dark
f 45/44/3 42/43/3 41/42/3 46/41/3
usemtl dark
f 46/45/5 41/15/5 43/46/5 44/47/5
usemtl dark
f 45/39/6 46/38/6 44/40/6
o entity0_brush6
usemtl dark
f 47/48/8 48/49/8 49/50/8 50/51/8
usemtl dark
f 50/52/2 49/53/2 51/18/2
usemtl dark
f 51/34/3 49/54/3 48/55/3 52/56/3
usemtl dark
f 52/18/5 48/53/5 47/52/5
usemtl dark
f 47/48/6 50/51/6 51/50/6 52/49/6
o entity0_brush7
usemtl dark
f 53/57/9 54/1/9 55/58/9 56/59/9
usemtl dark
f 56/60/2 55/53/2 57/18/2
usemtl dark
f 57/61/3 55/62/3 54/63/3 58/64/3
usemtl dark
f 58/18/5 54/53/5 53/60/5
usemtl dark
f 53/57/6 56/59/6 57/58/6 58/1/6
o entity0_brush8
usemtl dark
f 59/65/1 60/66/1 61/67/1 62/68/1
usemtl dark
f 63/69/2 61/70/2 60/53/2 64/18/2
usemtl dark
f 64/71/3 60/72/3 59/73/3 65/74/3
usemtl dark
f 66/74/4 62/73/4 61/72/4 63/71/4
usemtl dark
f 65/18/5 59/53/5 62/70/5 66/69/5
usemtl dark
f 66/68/6 63/67/6 64/66/6 65/65/6
o entity0_brush9
usemtl dark
f 67/75/1 68/76/1 69/77/1 70/78/1
usemtl dark
f 71/79/2 69/80/2 68/53/2 72/18/2
usemtl dark
f 72/81/3 68/82/3 67/83/3 73/84/3
usemtl dark
f 74/84/4 70/83/4 69/82/4 71/81/4
usemtl dark
f 73/18/5 67/53/5 70/80/5 74/79/5
usemtl dark
f 74/78/6 71/77/6 72/76/6 73/75/6
o entity0_brush10
usemtl dark
f 75/85/1 76/39/1 77/86/1 78/87/1
usemtl dark
f 79/88/2 77/89/2 76/53/2 80/18/2
usemtl dark
f 80/90/3 76/91/3 75/92/3 81/93/3
usemtl dark
f 82/93/4 78/92/4 77/91/4 79/90/4
usemtl dark
f 81/18/5 75/53/5 78/89/5 82/88/5
usemtl dark
f 82/87/6 79/86/6 80/39/6 81/85/6
o entity0_brush11
usemtl dark
f 83/94/1 84/95/1 85/96/1 86/97/1
usemtl dark
f 87/98/2 85/99/2 84/53/2 88/18/2
usemtl dark
f 88/100/3 84/101/3 83/102/3 89/103/3
usemtl dark
f 90/103/4 86/102/4 85/101/4 87/100/4
usemtl dark
f 89/18/5 83/53/5 86/99/5 90/98/5
usemtl dark
f 90/97/6 87/96/6 88/95/6 89/94/6
o entity0_brush12
usemtl dark
f 91/104/10 92/105/10 93/106/10 94/107/10
usemtl dark
f 94/108/2 93/53/2 95/18/2
usemtl dark
f 95/107/3 93/106/3 92/105/3 96/104/3
usemtl dark
f 96/18/5 92/53/5 91/108/5
usemtl dark
f 91/109/6 94/110/6 95/111/6 96/112/6
o entity0_brush13
usemtl dark
f 97/113/1 98/114/1 99/115/1 100/116/1
usemtl dark
f 101/117/2 99/118/2 98/99/2 102/119/2
usemtl dark
f 102/120/3 98/121/3 97/122/3 103/123/3
usemtl dark
f 104/123/4 100/122/4 99/121/4 101/120/4
usemtl dark
f 103/119/5 97/99/5 100/118/5 104/117/5
usemtl dark
f 104/116/6 101/115/6 102/114/6 103/113/6
o entity0_brush14
usemtl dark
f 105/124/1 106/125/1 107/126/1 108/127/1
usemtl dark
f 109/128/2 107/129/2 106/53/2 110/18/2
usemtl dark
f 110/130/3 106/131/3 105/132/3 111/133/3
usemtl dark
f 112/133/4 108/132/4 107/131/4 109/130/4
usemtl dark
f 111/18/5 105/53/5 108/129/5 112/128/5
usemtl dark
f 112/127/6 109/126/6 110/125/6 111/124/6
o entity0_brush15
usemtl shipping_container_01_side
f 113/134/11 114/135/11 115/136/11 116/137/11
usemtl shipping_container_01_front
f 117/138/12 115/139/12 114/140/12 118/141/12
usemtl shipping_container_01_side
f 119/142/3 116/143/3 115/144/3 117/145/3
usemtl shipping_container_01_front
f 118/146/4 114/147/4 113/148/4 120/149/4
usemtl shipping_container_01_front
f 120/150/13 113/151/13 116/152/13 119/153/13
usemtl shipping_container_01_side
f 118/135/14 120/134/14 119/137/14 117/136/14
o entity0_brush16
usemtl __TB_empty
f 121/127/1 122/154/1 123/155/1 124/156/1
usemtl __TB_empty
f 125/157/2 123/158/2 122/159/2 126/160/2
usemtl __TB_empty
f 126/161/3 122/162/3 121/163/3 127/164/3
usemtl __TB_empty
f 128/164/4 124/163/4 123/162/4 125/161/4
usemtl __TB_empty
f 127/160/5 121/159/5 124/158/5 128/157/5
usemtl __TB_empty
f 128/156/6 125/155/6 126/154/6 127/127/6
o entity0_brush17
usemtl __TB_empty
f 129/165/1 130/166/1 131/154/1 132/167/1
usemtl __TB_empty
f 133/160/2 131/159/2 130/168/2 134/169/2
usemtl __TB_empty
f 134/161/3 130/162/3 129/170/3 135/171/3
usemtl __TB_empty
f 136/171/4 132/170/4 131/162/4 133/161/4
usemtl __TB_empty
f 135/169/5 129/168/5 132/159/5 136/160/5
usemtl __TB_empty
f 136/167/6 133/154/6 134/166/6 135/165/6
o entity0_brush18
usemtl __TB_empty
f 137/172/1 138/173/1 139/174/1 140/127/1
usemtl __TB_empty
f 141/160/2 139/175/2 138/176/2 142/169/2
usemtl __TB_empty
f 142/177/3 138/178/3 137/179/3 143/164/3
usemtl __TB_empty
f 144/164/4 140/179/4 139/178/4 141/177/4
usemtl __TB_empty
f 143/169/5 137/176/5 140/175/5 144/160/5
usemtl __TB_empty
f 144/127/6 141/174/6 142/173/6 143/172/6
o entity0_brush19
usemtl __TB_empty
f 145/180/1 146/181/1 147/182/1 148/183/1
usemtl __TB_empty
f 149/184/2 147/185/2 146/186/2 150/187/2
usemtl __TB_empty
f 150/188/3 146/189/3 145/190/3 151/191/3
usemtl __TB_empty
f 152/191/4 148/190/4 147/189/4 149/188/4
usemtl __TB_empty
f 151/187/5 145/186/5 148/185/5 152/184/5
usemtl __TB_empty
f 152/183/6 149/182/6 150/181/6 151/180/6

View File

@@ -0,0 +1,21 @@
[remap]
importer="wavefront_obj"
importer_version=1
type="Mesh"
uid="uid://dp182aa7i4tc2"
path="res://.godot/imported/test.obj-d0933098473ad0b52c714a3e29132649.mesh"
[deps]
files=["res://.godot/imported/test.obj-d0933098473ad0b52c714a3e29132649.mesh"]
source_file="res://scenes/map/test.obj"
dest_files=["res://.godot/imported/test.obj-d0933098473ad0b52c714a3e29132649.mesh", "res://.godot/imported/test.obj-d0933098473ad0b52c714a3e29132649.mesh"]
[params]
generate_tangents=true
scale_mesh=Vector3(1, 1, 1)
offset_mesh=Vector3(0, 0, 0)
optimize_mesh=true

View File

@@ -0,0 +1,10 @@
[gd_scene load_steps=2 format=3]
[ext_resource type="PackedScene" uid="uid://ccbo4ow0r0q4y" path="res://assets/Weapons/Chainsaw/Chainsaw.glb" id="1_7u4ni"]
[node name="Chainsaw" instance=ExtResource("1_7u4ni")]
[node name="Cube014" parent="." index="0"]
transform = Transform3D(-1.5, 0, -1.31134e-07, 0, 1.5, 0, 1.31134e-07, 0, -1.5, 0, 0, 0)
layers = 2
cast_shadow = 0

View File

@@ -1,13 +1,9 @@
[gd_scene load_steps=2 format=3 uid="uid://p3r1q0d3ibmj"]
[ext_resource type="PackedScene" uid="uid://beiad4ywiojba" path="res://assets/Weapons/Gun/Revolver.gltf" id="1_j6rkf"]
[ext_resource type="PackedScene" uid="uid://d3sl3ypfxbfmw" path="res://assets/Weapons/Revolver/Revolver.glb" id="1_8hkoy"]
[node name="Revolver" instance=ExtResource("1_j6rkf")]
transform = Transform3D(0.05, 0, 0, 0, 0.017101, -0.0469845, 0, 0.0469845, 0.017101, 0, -0.5, -0.3)
[node name="Revolver" instance=ExtResource("1_8hkoy")]
[node name="RootNode" parent="." index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.30501, 7.01204)
[node name="Cube011" parent="RootNode" index="0"]
[node name="Cube011" parent="." index="0"]
layers = 2
cast_shadow = 0
gi_lightmap_scale = 2

10
scenes/weapons/Uzi.tscn Normal file
View File

@@ -0,0 +1,10 @@
[gd_scene load_steps=2 format=3 uid="uid://c46p1mte8280d"]
[ext_resource type="PackedScene" uid="uid://qc35m1a5gq81" path="res://assets/Weapons/Uzi/Uzi.glb" id="1_np5ff"]
[node name="Uzi" instance=ExtResource("1_np5ff")]
[node name="Cube024" parent="." index="0"]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 0, 0, 0)
layers = 2
cast_shadow = 0

10
scripts/player/Hitable.gd Normal file
View File

@@ -0,0 +1,10 @@
extends Node
class_name Hitable
var health = 200
func Hit(dmg):
#var tween = create_tween()
health -= dmg
if(health <= 0):
queue_free()

View File

@@ -8,6 +8,7 @@ const RELOAD = 3
const DRAW_TIME = 0.35
var MELEE : bool
var MAX_CLIP : int
var DAMAGE : float
var MOMENTUM : Vector2
@@ -20,6 +21,9 @@ var MODEL : Node3D
var FIREMODE : int
var HITSCAN : bool
var RAY_LEN : float = 1000
var RELOAD_TIME : float
var RELOAD_MOMENTUM : Vector3
var RELOAD_ANGULAR_MOMENTUM : Vector3
var SHOOTING_SPEED: float
var can_shoot : bool
@@ -32,8 +36,8 @@ func init():
var tween = create_tween()
MODEL.position = DRAW_POS
MODEL.rotation = DRAW_ROT
tween.set_trans(Tween.TRANS_CIRC)
tween.set_ease(Tween.EASE_IN_OUT)
can_shoot = true
tween.tween_callback(InitialPos).set_delay(DRAW_TIME)
@@ -41,8 +45,8 @@ func init():
func InitialPos():
var tween = create_tween()
tween.set_trans(Tween.TRANS_CIRC)
tween.set_ease(Tween.EASE_IN_OUT)
tween.set_trans(Tween.TRANS_QUAD)
tween.set_parallel(true)
tween.tween_property(MODEL, "position", Vector3.ZERO, RECOIL_COOLDOWN / 2)
tween.tween_property(MODEL, "rotation", Vector3.ZERO, RECOIL_COOLDOWN / 2)
@@ -52,9 +56,11 @@ func InitialPos():
func Shoot():
if CanShoot():
if !FIREMODE:
if not FIREMODE:
can_shoot = false
clip -= 1
if not MELEE:
clip -= 1
state = SHOOT;
var tween = create_tween()
tween.set_trans(Tween.TRANS_ELASTIC)
@@ -78,7 +84,14 @@ func Release():
func Reload():
if(clip < MAX_CLIP && state == INITIAL):
#state = RELOAD
state = RELOAD
var tween = create_tween()
tween.set_trans(Tween.TRANS_CIRC)
tween.set_ease(Tween.EASE_IN)
tween.set_parallel(true)
tween.tween_property(MODEL, "position", RELOAD_MOMENTUM, RELOAD_TIME)
tween.tween_property(MODEL, "rotation", RELOAD_ANGULAR_MOMENTUM, RELOAD_TIME)
tween.tween_callback(init).set_delay(RELOAD_TIME)
clip = MAX_CLIP
return true
return false

View File

@@ -2,72 +2,66 @@ extends Node3D
const CONFIG_PATH = "user://weapons.scoom"
const REVOLVER = 0
const REST = 0
const BOB = 1
const UZI = 1
const CHAINSAW = 2
var state = 0
@onready var player_root = get_node("../../../../PlayerQ3") as CharacterBody3D
@onready var raycast = get_node("../Camera3D/AimCast") as RayCast3D
#@onready var crosshair = $Crosshair
@onready var MainCam = get_node("../Camera3D")
@onready var GunCam = get_node("../Camera3D/SubViewportContainer/SubViewport/GunCam")
var weapons = []
var current_weapon = 0
var file_data = {
REVOLVER:
{
"HAND_POS": Vector3(0.4,-0.45,-1),
"HAND_ROT": Vector3(0,PI,0),
"MODEL": "Revolver",
"MAX_CLIP": 5,
"DAMAGE": 25,
"MOMENTUM": Vector2(0.3, -0.25),
"ANGULAR_MOMENTUM": Vector3(-60, 7, 10),
"RECOIL_COOLDOWN": 0.35,
"RPM": 120,
"DRAW_POS": Vector3(0,-0.5,-0.3),
"DRAW_ROT": Vector3(1.3, 0, 0),
"HITSCAN": true
}
}
var mouse_mov : Vector3
var sway_lerp = 5
func _ready():
save_data(file_data)
load_data()
var config = load_data() as ConfigFile
for i in range(0, file_data.size()):
for weapon in config.get_sections():
var root = Weapon.new()
root.name = str(i)
var resource = "res://scenes/weapons/" + file_data[i].MODEL + ".tscn"
var weapon_model_resource = load(resource)
var weapon_model = weapon_model_resource.instantiate()
root.name = weapon
var weapon_model = Runtimeloader.load_gltf(config.get_value(weapon, "MODEL")) as Node3D
var old_parent = weapon_model.get_parent()
old_parent.remove_child(weapon_model)
var mesh = weapon_model.get_child(0) as MeshInstance3D
var mat = mesh.material_override as Material
//TODO
#Set Weapon nodes
root.add_child(weapon_model)
root.position = file_data[i].HAND_POS
root.rotation = file_data[i].HAND_ROT
root.position = config.get_value(weapon, "HAND_POS")
root.rotation = config.get_value(weapon, "HAND_ROT")
root.hide()
add_child(root)
#Set Weapon Data
root.MAX_CLIP = file_data[i].MAX_CLIP
root.MELEE = config.get_value(weapon, "MELEE")
root.MAX_CLIP = config.get_value(weapon, "MAX_CLIP")
root.clip = root.MAX_CLIP
root.DAMAGE = file_data[i].DAMAGE
root.MOMENTUM = file_data[i].MOMENTUM
root.ANGULAR_MOMENTUM = file_data[i].ANGULAR_MOMENTUM
root.RECOIL_COOLDOWN = file_data[i].RECOIL_COOLDOWN
root.RPM = file_data[i].RPM
root.MODEL = root.get_node(file_data[i].MODEL)
root.DRAW_POS = file_data[i].DRAW_POS
root.DRAW_ROT = file_data[i].DRAW_ROT
root.HITSCAN = file_data[i].HITSCAN
root.DAMAGE = config.get_value(weapon, "DAMAGE")
root.RPM = config.get_value(weapon, "RPM")
root.FIREMODE = config.get_value(weapon, "FIREMODE")
root.HITSCAN = config.get_value(weapon, "HITSCAN")
if(not root.HITSCAN):
print("Projectile stats")
else:
root.RAY_LEN = config.get_value(weapon, "RAY_LEN")
#Set Anim Data
root.MODEL = weapon_model
root.DRAW_POS = config.get_value(weapon, "DRAW_POS")
root.DRAW_ROT = config.get_value(weapon, "DRAW_ROT")
root.MOMENTUM = config.get_value(weapon, "MOMENTUM")
root.ANGULAR_MOMENTUM = config.get_value(weapon, "ANGULAR_MOMENTUM")
root.RECOIL_COOLDOWN = config.get_value(weapon, "RECOIL_COOLDOWN")
root.RELOAD_MOMENTUM = config.get_value(weapon, "RELOAD_MOMENTUM")
root.RELOAD_ANGULAR_MOMENTUM = config.get_value(weapon, "RELOAD_ANGULAR_MOMENTUM")
root.RELOAD_TIME = config.get_value(weapon, "RELOAD_TIME")
weapons.append(root)
weapons[current_weapon].init()
@@ -80,23 +74,26 @@ func _input(event):
mouse_mov.x = clampf(event.relative.y, -0.1, 0.1)
func _unhandled_input(_event):
if weapons.size() > 1 && Input.is_action_just_released("wheel_up"):
ChangeWeapon((current_weapon + 1) % weapons.size())
if weapons.size() > 1 && Input.is_action_just_released("wheel_down"):
ChangeWeapon((current_weapon - 1) % weapons.size())
if Input.is_action_just_pressed("reload"):
weapons[current_weapon].Reload()
func ChangeWeapon(i):
weapons[current_weapon].hide()
current_weapon = (i)
current_weapon = i
weapons[current_weapon].init()
raycast.target_position.z = -weapons[current_weapon].RAY_LEN
var time = 0
func _process(delta):
GunCam.global_transform = MainCam.global_transform
if Input.is_action_pressed("shoot") && weapons[current_weapon].Shoot():
if(weapons[current_weapon].HITSCAN):
HitScan()
@@ -113,7 +110,7 @@ func _process(delta):
mouse_mov = Vector3.ZERO
else:
weapons[current_weapon].MODEL.rotation = weapons[current_weapon].MODEL.rotation.lerp(Vector3.ZERO, sway_lerp * delta)
#BOB
if player_root.velocity.length() > 0:
time += delta
@@ -126,17 +123,27 @@ func _process(delta):
func HitScan():
if(raycast.is_colliding()):
var target = raycast.get_collider()
print("Hit target ", target.name)
print_debug("Hit target ", target.name, " with ", weapons[current_weapon].MODEL.name, " ",current_weapon, ". Dealt damage ", weapons[current_weapon].DAMAGE)
if(raycast.get_collision_mask_value(10)):
if(target is Hitable):
target.Hit(weapons[current_weapon].DAMAGE)
func Projectile():
pass
func save_data(data):
var file = FileAccess.open(CONFIG_PATH, FileAccess.WRITE)
file.store_var(data)
func load_data():
var file = FileAccess.open(CONFIG_PATH, FileAccess.READ)
var data = file.get_var()
file_data = data
var path = ""
if(OS.has_feature("editor")):
path = "/home/kookroach/Documents/Projects/Scoom_test/"
else:
path = OS.get_executable_path() + "/"
var config = ConfigFile.new()
var err = config.load(path+"weapons.cfg")
if err != OK:
printerr("FAILED LOADING WEAPONS DATA")
return config

View File

@@ -0,0 +1,70 @@
extends Node
func _input(event):
if event is InputEventKey and event.is_pressed():
if event.keycode == KEY_T:
load_gltf("runtime_loader_test.glb")
func load_gltf(path, hasCollision = false, trimesh = false):
var gltf := GLTFDocument.new()
var gltf_state := GLTFState.new()
if(OS.has_feature("editor")):
path = "/home/kookroach/Documents/Projects/Scoom_test/"+path
else:
path = OS.get_executable_path() + "/"+path
var snd_file = FileAccess.open(path, FileAccess.READ)
var fileBytes = PackedByteArray()
fileBytes = snd_file.get_buffer(snd_file.get_length())
gltf.append_from_buffer(fileBytes, "", gltf_state)
print("Loading ", path)
var node = gltf.generate_scene(gltf_state)
var entity_count = 0;
for o in node.get_children():
if o.name.begins_with("entity_"):
print("Loading entity ",o.name)
if loadEntity(o):
entity_count += 1;
else:
if(hasCollision):
var meshInstance = node.get_child(0) as MeshInstance3D
if(trimesh):
meshInstance.create_trimesh_collision()
else:
meshInstance.create_convex_collision()
if(entity_count > 0):
print("Loaded gltf/glb file with ", entity_count, " entities.")
add_child(node)
return node
func loadEntity(node):
var path = ""
if(OS.has_feature("editor")):
path = "/home/kookroach/Documents/Projects/Scoom_test/"
else:
path = OS.get_executable_path() + "/"
var config = ConfigFile.new()
var err = config.load(path+"/entity_test.cfg")
if err != OK:
printerr("COULD NOT LOAD ENTITY : ", node.name)
return false
var x = config.get_section_keys(node.name)
if(x.size() < 1):
printerr("NO CONFIG FOUND FOR ENTITY : ", node.name)
return false
var entity = load_gltf(config.get_value(node.name, "model")) as Node3D
entity.transform.origin = node.transform.origin
entity.scale = (Vector3(1.5,1.5,1.5))
node.queue_free()
return true

BIN
textures/concrete_15.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -2,9 +2,9 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://670hioiwiwy0"
path.s3tc="res://.godot/imported/untitled.png-171f6a3e6ab8f7068ee4dcf93c2569b8.s3tc.ctex"
path.etc2="res://.godot/imported/untitled.png-171f6a3e6ab8f7068ee4dcf93c2569b8.etc2.ctex"
uid="uid://bx4pdgghucl4k"
path.s3tc="res://.godot/imported/concrete_15.jpg-42bf7bde5374d09a0bcdd2247a5e3ed8.s3tc.ctex"
path.etc2="res://.godot/imported/concrete_15.jpg-42bf7bde5374d09a0bcdd2247a5e3ed8.etc2.ctex"
metadata={
"imported_formats": ["s3tc", "etc2"],
"vram_texture": true
@@ -12,8 +12,8 @@ metadata={
[deps]
source_file="res://assets/Weapons/Gun/untitled.png"
dest_files=["res://.godot/imported/untitled.png-171f6a3e6ab8f7068ee4dcf93c2569b8.s3tc.ctex", "res://.godot/imported/untitled.png-171f6a3e6ab8f7068ee4dcf93c2569b8.etc2.ctex"]
source_file="res://textures/concrete_15.jpg"
dest_files=["res://.godot/imported/concrete_15.jpg-42bf7bde5374d09a0bcdd2247a5e3ed8.s3tc.ctex", "res://.godot/imported/concrete_15.jpg-42bf7bde5374d09a0bcdd2247a5e3ed8.etc2.ctex"]
[params]

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

@@ -2,9 +2,9 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://bsfkj480gegj3"
path.s3tc="res://.godot/imported/Revolver_Material_Metallic.png-09ddab5aa35e1ae97c0eefe8e355e0f2.s3tc.ctex"
path.etc2="res://.godot/imported/Revolver_Material_Metallic.png-09ddab5aa35e1ae97c0eefe8e355e0f2.etc2.ctex"
uid="uid://dpbikwjv4uetu"
path.s3tc="res://.godot/imported/concrete_floor_01.jpg-d3402f38e00e3b9e2ee61f78df3279e4.s3tc.ctex"
path.etc2="res://.godot/imported/concrete_floor_01.jpg-d3402f38e00e3b9e2ee61f78df3279e4.etc2.ctex"
metadata={
"imported_formats": ["s3tc", "etc2"],
"vram_texture": true
@@ -12,8 +12,8 @@ metadata={
[deps]
source_file="res://assets/Weapons/Gun/Revolver_Material_Metallic.png"
dest_files=["res://.godot/imported/Revolver_Material_Metallic.png-09ddab5aa35e1ae97c0eefe8e355e0f2.s3tc.ctex", "res://.godot/imported/Revolver_Material_Metallic.png-09ddab5aa35e1ae97c0eefe8e355e0f2.etc2.ctex"]
source_file="res://textures/concrete_floor_01.jpg"
dest_files=["res://.godot/imported/concrete_floor_01.jpg-d3402f38e00e3b9e2ee61f78df3279e4.s3tc.ctex", "res://.godot/imported/concrete_floor_01.jpg-d3402f38e00e3b9e2ee61f78df3279e4.etc2.ctex"]
[params]

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -0,0 +1,36 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c52qu6ad3taix"
path.s3tc="res://.godot/imported/shipping_container_01_front.jpg-6818bcd06a43db2b17373db471516d58.s3tc.ctex"
path.etc2="res://.godot/imported/shipping_container_01_front.jpg-6818bcd06a43db2b17373db471516d58.etc2.ctex"
metadata={
"imported_formats": ["s3tc", "etc2"],
"vram_texture": true
}
[deps]
source_file="res://textures/shipping_container_01_front.jpg"
dest_files=["res://.godot/imported/shipping_container_01_front.jpg-6818bcd06a43db2b17373db471516d58.s3tc.ctex", "res://.godot/imported/shipping_container_01_front.jpg-6818bcd06a43db2b17373db471516d58.etc2.ctex"]
[params]
compress/mode=2
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/bptc_ldr=0
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
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

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -0,0 +1,36 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bt671xkej3a2s"
path.s3tc="res://.godot/imported/shipping_container_01_side.jpg-9d52ac7e86de9e14fde2e6a8a43fe4af.s3tc.ctex"
path.etc2="res://.godot/imported/shipping_container_01_side.jpg-9d52ac7e86de9e14fde2e6a8a43fe4af.etc2.ctex"
metadata={
"imported_formats": ["s3tc", "etc2"],
"vram_texture": true
}
[deps]
source_file="res://textures/shipping_container_01_side.jpg"
dest_files=["res://.godot/imported/shipping_container_01_side.jpg-9d52ac7e86de9e14fde2e6a8a43fe4af.s3tc.ctex", "res://.godot/imported/shipping_container_01_side.jpg-9d52ac7e86de9e14fde2e6a8a43fe4af.etc2.ctex"]
[params]
compress/mode=2
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/bptc_ldr=0
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
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