mirror of
https://gitlab.com/open-fpsz/open-fpsz.git
synced 2026-07-13 07:25:06 +00:00
🎉 initial commit
This commit is contained in:
commit
d02447c7e6
185 changed files with 8442 additions and 0 deletions
82
addons/terrain_3d/tools/importer.gd
Normal file
82
addons/terrain_3d/tools/importer.gd
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
@tool
|
||||
extends Terrain3D
|
||||
|
||||
|
||||
@export var clear_all: bool = false : set = reset_settings
|
||||
@export var clear_terrain: bool = false : set = reset_terrain
|
||||
@export var update_height_range: bool = false : set = update_heights
|
||||
|
||||
|
||||
func reset_settings(p_value) -> void:
|
||||
if p_value:
|
||||
height_file_name = ""
|
||||
control_file_name = ""
|
||||
color_file_name = ""
|
||||
import_position = Vector3.ZERO
|
||||
import_offset = 0.0
|
||||
import_scale = 1.0
|
||||
r16_range = Vector2(0, 1)
|
||||
r16_size = Vector2i(1024, 1024)
|
||||
storage = null
|
||||
material = null
|
||||
texture_list = null
|
||||
|
||||
|
||||
func reset_terrain(p_value) -> void:
|
||||
if p_value:
|
||||
storage = null
|
||||
|
||||
|
||||
func update_heights(p_value) -> void:
|
||||
if p_value and storage:
|
||||
storage.update_height_range()
|
||||
|
||||
|
||||
@export_group("Import File")
|
||||
@export_global_file var height_file_name: String = ""
|
||||
@export_global_file var control_file_name: String = ""
|
||||
@export_global_file var color_file_name: String = ""
|
||||
@export var import_position: Vector3 = Vector3.ZERO
|
||||
@export var import_scale: float = 1.0
|
||||
@export var import_offset: float = 0.0
|
||||
@export var r16_range: Vector2 = Vector2(0, 1)
|
||||
@export var r16_size: Vector2i = Vector2i(1024, 1024)
|
||||
@export var run_import: bool = false : set = start_import
|
||||
|
||||
func start_import(p_value: bool) -> void:
|
||||
if p_value:
|
||||
print("Terrain3DImporter: Importing files:\n\t%s\n\t%s\n\t%s" % [ height_file_name, control_file_name, color_file_name])
|
||||
if not storage:
|
||||
storage = Terrain3DStorage.new()
|
||||
|
||||
var imported_images: Array[Image]
|
||||
imported_images.resize(Terrain3DStorage.TYPE_MAX)
|
||||
var min_max := Vector2(0, 1)
|
||||
var img: Image
|
||||
if height_file_name:
|
||||
img = Terrain3DStorage.load_image(height_file_name, ResourceLoader.CACHE_MODE_IGNORE, r16_range, r16_size)
|
||||
min_max = Terrain3D.get_min_max(img)
|
||||
imported_images[Terrain3DStorage.TYPE_HEIGHT] = img
|
||||
if control_file_name:
|
||||
img = Terrain3DStorage.load_image(control_file_name, ResourceLoader.CACHE_MODE_IGNORE)
|
||||
imported_images[Terrain3DStorage.TYPE_CONTROL] = img
|
||||
if color_file_name:
|
||||
img = Terrain3DStorage.load_image(color_file_name, ResourceLoader.CACHE_MODE_IGNORE)
|
||||
imported_images[Terrain3DStorage.TYPE_COLOR] = img
|
||||
if texture_list.get_texture_count() == 0:
|
||||
material.show_checkered = false
|
||||
material.show_colormap = true
|
||||
storage.import_images(imported_images, import_position, import_offset, import_scale)
|
||||
print("Terrain3DImporter: Import finished")
|
||||
|
||||
|
||||
@export_group("Export File")
|
||||
enum { TYPE_HEIGHT, TYPE_CONTROL, TYPE_COLOR }
|
||||
@export_enum("Height:0", "Control:1", "Color:2") var map_type: int = TYPE_HEIGHT
|
||||
@export var file_name_out: String = ""
|
||||
@export var run_export: bool = false : set = start_export
|
||||
|
||||
func start_export(p_value: bool) -> void:
|
||||
var err: int = storage.export_image(file_name_out, map_type)
|
||||
print("Terrain3DImporter: Export error status: ", err, " ", error_string(err))
|
||||
|
||||
53
addons/terrain_3d/tools/importer.tscn
Normal file
53
addons/terrain_3d/tools/importer.tscn
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
[gd_scene load_steps=8 format=3 uid="uid://blaieaqp413k7"]
|
||||
|
||||
[ext_resource type="Terrain3DStorage" uid="uid://dyon4xda4k40d" path="res://maps/genesis/resources/storage.res" id="1_8wr5r"]
|
||||
[ext_resource type="Script" path="res://addons/terrain_3d/tools/importer.gd" id="1_60b8f"]
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_5sc5a"]
|
||||
offsets = PackedFloat32Array(0.2, 1)
|
||||
colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_lp4p7"]
|
||||
noise_type = 2
|
||||
frequency = 0.03
|
||||
cellular_jitter = 3.0
|
||||
cellular_return_type = 0
|
||||
domain_warp_enabled = true
|
||||
domain_warp_type = 1
|
||||
domain_warp_amplitude = 50.0
|
||||
domain_warp_fractal_type = 2
|
||||
domain_warp_fractal_lacunarity = 1.5
|
||||
domain_warp_fractal_gain = 1.0
|
||||
|
||||
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_vyjp8"]
|
||||
seamless = true
|
||||
color_ramp = SubResource("Gradient_5sc5a")
|
||||
noise = SubResource("FastNoiseLite_lp4p7")
|
||||
|
||||
[sub_resource type="Terrain3DMaterial" id="Terrain3DMaterial_f0cwi"]
|
||||
_shader_parameters = {
|
||||
"_mouse_layer": 2147483648,
|
||||
"blend_sharpness": null,
|
||||
"height_blending": null,
|
||||
"macro_variation1": null,
|
||||
"macro_variation2": null,
|
||||
"noise1_angle": null,
|
||||
"noise1_offset": null,
|
||||
"noise1_scale": null,
|
||||
"noise2_scale": null,
|
||||
"noise3_scale": null,
|
||||
"noise_texture": SubResource("NoiseTexture2D_vyjp8")
|
||||
}
|
||||
show_checkered = true
|
||||
|
||||
[sub_resource type="Terrain3DTextureList" id="Terrain3DTextureList_i35jn"]
|
||||
|
||||
[node name="Importer" type="Terrain3D"]
|
||||
storage = ExtResource("1_8wr5r")
|
||||
material = SubResource("Terrain3DMaterial_f0cwi")
|
||||
texture_list = SubResource("Terrain3DTextureList_i35jn")
|
||||
script = ExtResource("1_60b8f")
|
||||
height_file_name = "C:/msys64/home/osram/GODOT/develop/levels/greth_vortex/Vortex_Smooth2_2048.r16"
|
||||
import_position = Vector3(-1024, 0, -1024)
|
||||
r16_range = Vector2(0, 250)
|
||||
r16_size = Vector2i(2048, 2048)
|
||||
Loading…
Add table
Add a link
Reference in a new issue