Added failure possibility and print quality lowering possibility
This commit is contained in:
parent
8758a3ddfc
commit
d6fd60d3e8
11 changed files with 165 additions and 18 deletions
|
|
@ -43,10 +43,8 @@ func _on_shop_printer_purchase_req(printer_data: PrinterData) -> void:
|
||||||
|
|
||||||
#region Job generation
|
#region Job generation
|
||||||
func _on_job_spawn_timer_timeout() -> void:
|
func _on_job_spawn_timer_timeout() -> void:
|
||||||
pass
|
|
||||||
#print("Spawn timer over")
|
|
||||||
#generate_job()
|
#generate_job()
|
||||||
#draw_job()
|
draw_job()
|
||||||
|
|
||||||
func generate_job() -> void:
|
func generate_job() -> void:
|
||||||
if not current_job_count >= max_jobs:
|
if not current_job_count >= max_jobs:
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,13 @@ var owned_printers: int = 0:
|
||||||
owned_printers = value
|
owned_printers = value
|
||||||
owned_printers_changed.emit(value)
|
owned_printers_changed.emit(value)
|
||||||
|
|
||||||
var sell_multiplier: float = 0.5
|
var sell_multiplier: float = 0.5:
|
||||||
|
set(value):
|
||||||
|
sell_multiplier = value
|
||||||
|
|
||||||
|
var failure_chance: float = 0.4:
|
||||||
|
set(value):
|
||||||
|
failure_chance = value
|
||||||
|
|
||||||
var jobs: Array[JobData]
|
var jobs: Array[JobData]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,48 @@ fog_enabled = true
|
||||||
fog_light_color = Color(0.7149284, 0.74206614, 0.7842839, 1)
|
fog_light_color = Color(0.7149284, 0.74206614, 0.7842839, 1)
|
||||||
fog_sky_affect = 0.0
|
fog_sky_affect = 0.0
|
||||||
|
|
||||||
|
[sub_resource type="Curve" id="Curve_v0tmn"]
|
||||||
|
_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.5, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
|
||||||
|
point_count = 3
|
||||||
|
|
||||||
|
[sub_resource type="CurveTexture" id="CurveTexture_m2fa0"]
|
||||||
|
curve = SubResource("Curve_v0tmn")
|
||||||
|
|
||||||
|
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_6kfdn"]
|
||||||
|
emission_shape = 3
|
||||||
|
emission_box_extents = Vector3(10, 0.2, 10)
|
||||||
|
angle_min = 1.0728835e-05
|
||||||
|
angle_max = 360.00003
|
||||||
|
direction = Vector3(1, 0, 1)
|
||||||
|
initial_velocity_min = 0.049999997
|
||||||
|
initial_velocity_max = 0.19999999
|
||||||
|
gravity = Vector3(0, 0, 0)
|
||||||
|
scale_min = 2.0
|
||||||
|
scale_max = 4.0
|
||||||
|
alpha_curve = SubResource("CurveTexture_m2fa0")
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_yju8x"]
|
||||||
|
offsets = PackedFloat32Array(0.2, 0.8)
|
||||||
|
metadata/_snap_enabled = true
|
||||||
|
|
||||||
|
[sub_resource type="FastNoiseLite" id="FastNoiseLite_11lgl"]
|
||||||
|
|
||||||
|
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_lcs11"]
|
||||||
|
noise = SubResource("FastNoiseLite_11lgl")
|
||||||
|
color_ramp = SubResource("Gradient_yju8x")
|
||||||
|
|
||||||
|
[sub_resource type="ORMMaterial3D" id="ORMMaterial3D_11lgl"]
|
||||||
|
transparency = 1
|
||||||
|
vertex_color_use_as_albedo = true
|
||||||
|
albedo_color = Color(1, 1, 1, 0.11764706)
|
||||||
|
albedo_texture = SubResource("NoiseTexture2D_lcs11")
|
||||||
|
proximity_fade_enabled = true
|
||||||
|
|
||||||
|
[sub_resource type="SphereMesh" id="SphereMesh_lcs11"]
|
||||||
|
material = SubResource("ORMMaterial3D_11lgl")
|
||||||
|
radius = 2.0
|
||||||
|
height = 4.0
|
||||||
|
|
||||||
[node name="Map" type="Node3D" unique_id=1765565476]
|
[node name="Map" type="Node3D" unique_id=1765565476]
|
||||||
script = ExtResource("1_iio4a")
|
script = ExtResource("1_iio4a")
|
||||||
tile_scene = ExtResource("2_lcs11")
|
tile_scene = ExtResource("2_lcs11")
|
||||||
|
|
@ -17,8 +59,7 @@ tile_scene = ExtResource("2_lcs11")
|
||||||
[node name="Camera3D" type="Camera3D" parent="." unique_id=40432726]
|
[node name="Camera3D" type="Camera3D" parent="." unique_id=40432726]
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.7071068, 0.7071068, 0, -0.7071068, 0.7071068, 0, 6, 5)
|
transform = Transform3D(1, 0, 0, 0, 0.7071068, 0.7071068, 0, -0.7071068, 0.7071068, 0, 6, 5)
|
||||||
|
|
||||||
[node name="MapTile" parent="." unique_id=441860049 instance=ExtResource("2_lcs11")]
|
[node name="MapTile" parent="." unique_id=441860049 instance_placeholder="res://Scenes/Map/map_tile.tscn"]
|
||||||
visible = false
|
|
||||||
|
|
||||||
[node name="Control" type="CanvasLayer" parent="." unique_id=1301244712]
|
[node name="Control" type="CanvasLayer" parent="." unique_id=1301244712]
|
||||||
|
|
||||||
|
|
@ -36,4 +77,11 @@ text = "Generate new tile"
|
||||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1838982295]
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1838982295]
|
||||||
environment = SubResource("Environment_7g6h4")
|
environment = SubResource("Environment_7g6h4")
|
||||||
|
|
||||||
|
[node name="EnvFog" type="GPUParticles3D" parent="." unique_id=1381169011]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
|
||||||
|
amount = 50
|
||||||
|
lifetime = 10.0
|
||||||
|
process_material = SubResource("ParticleProcessMaterial_6kfdn")
|
||||||
|
draw_pass_1 = SubResource("SphereMesh_lcs11")
|
||||||
|
|
||||||
[connection signal="pressed" from="Control/Button" to="." method="_on_button_pressed"]
|
[connection signal="pressed" from="Control/Button" to="." method="_on_button_pressed"]
|
||||||
|
|
|
||||||
1
Scenes/Map/map_tile.gd
Normal file
1
Scenes/Map/map_tile.gd
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
extends Node3D
|
||||||
1
Scenes/Map/map_tile.gd.uid
Normal file
1
Scenes/Map/map_tile.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://db7luam5x7vhs
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
[gd_scene format=3 uid="uid://c6icyfxslhlmc"]
|
[gd_scene format=3 uid="uid://c6icyfxslhlmc"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://db7luam5x7vhs" path="res://Scenes/Map/map_tile.gd" id="1_0t1dj"]
|
||||||
|
|
||||||
[sub_resource type="CylinderMesh" id="CylinderMesh_7g6h4"]
|
[sub_resource type="CylinderMesh" id="CylinderMesh_7g6h4"]
|
||||||
top_radius = 1.0
|
top_radius = 1.0
|
||||||
bottom_radius = 1.0
|
bottom_radius = 1.0
|
||||||
|
|
@ -12,6 +14,7 @@ radius = 0.859375
|
||||||
|
|
||||||
[node name="MapTile" type="Node3D" unique_id=441860049]
|
[node name="MapTile" type="Node3D" unique_id=441860049]
|
||||||
transform = Transform3D(-4.3711385e-08, 0, -0.99999994, 0, 1, 0, 0.99999994, 0, -4.3711385e-08, 0, 0, 0)
|
transform = Transform3D(-4.3711385e-08, 0, -0.99999994, 0, 1, 0, 0.99999994, 0, -4.3711385e-08, 0, 0, 0)
|
||||||
|
script = ExtResource("1_0t1dj")
|
||||||
|
|
||||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="." unique_id=786384927]
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="." unique_id=786384927]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.1, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.1, 0)
|
||||||
|
|
|
||||||
|
|
@ -5,14 +5,21 @@ extends PanelContainer
|
||||||
@onready var progress_bar: ProgressBar = $MarginContainer/MainArea/PrintInfo/ProgressBar
|
@onready var progress_bar: ProgressBar = $MarginContainer/MainArea/PrintInfo/ProgressBar
|
||||||
@onready var select_job: OptionButton = $MarginContainer/MainArea/SelectJob
|
@onready var select_job: OptionButton = $MarginContainer/MainArea/SelectJob
|
||||||
@onready var status_label: Label = $MarginContainer/MainArea/TopInfo/StatusLabel
|
@onready var status_label: Label = $MarginContainer/MainArea/TopInfo/StatusLabel
|
||||||
@onready var time_left_label: Label = $MarginContainer/MainArea/PrintInfo/TimeLeftLabel
|
@onready var time_left_label: Label = $MarginContainer/MainArea/PrintInfo/InfoRow2/TimeLeftLabel
|
||||||
@onready var start_button: Button = $MarginContainer/MainArea/Buttons/StartButton
|
@onready var start_button: Button = $MarginContainer/MainArea/Buttons/StartButton
|
||||||
|
@onready var reward_label: Label = $MarginContainer/MainArea/PrintInfo/InfoRow2/RewardLabel
|
||||||
|
@onready var quality_label: Label = $MarginContainer/MainArea/PrintInfo/InfoRow1/QualityLabel
|
||||||
|
|
||||||
|
|
||||||
var printer_data: PrinterData
|
var printer_data: PrinterData
|
||||||
var selected_job: JobData
|
var selected_job: JobData
|
||||||
var selected_job_index: int
|
var selected_job_index: int
|
||||||
var is_printing: bool = false
|
var is_printing: bool = false
|
||||||
|
var print_failed: bool = false
|
||||||
var time_left: float
|
var time_left: float
|
||||||
|
var failure_points: Array
|
||||||
|
|
||||||
|
var print_quality: float = 1.0
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
GameData.refresh_printer_dropdown.connect(_on_refresh_printer_dropdown)
|
GameData.refresh_printer_dropdown.connect(_on_refresh_printer_dropdown)
|
||||||
|
|
@ -21,6 +28,8 @@ func initialize_printer(data: PrinterData) -> void:
|
||||||
printer_data = data
|
printer_data = data
|
||||||
printer_name_label.text = printer_data.printer_manufacturer
|
printer_name_label.text = printer_data.printer_manufacturer
|
||||||
printer_model_label.text = printer_data.printer_type
|
printer_model_label.text = printer_data.printer_type
|
||||||
|
quality_label.visible = false
|
||||||
|
reward_label.visible = false
|
||||||
time_left_label.visible = false
|
time_left_label.visible = false
|
||||||
time_left = 0
|
time_left = 0
|
||||||
set_status()
|
set_status()
|
||||||
|
|
@ -33,8 +42,13 @@ func _process(delta) -> void:
|
||||||
select_job.visible = false
|
select_job.visible = false
|
||||||
progress_bar.visible = true
|
progress_bar.visible = true
|
||||||
time_left_label.visible = true
|
time_left_label.visible = true
|
||||||
|
quality_label.visible = true
|
||||||
|
reward_label.visible = true
|
||||||
set_status()
|
set_status()
|
||||||
|
|
||||||
|
quality_label.text = 'Quality: %.0f %%' % (print_quality * 100)
|
||||||
|
reward_label.text = 'Reward: %.2f €' % (selected_job.job_reward * print_quality)
|
||||||
|
|
||||||
var total_time = selected_job.job_time / printer_data.printer_speed
|
var total_time = selected_job.job_time / printer_data.printer_speed
|
||||||
var progress = (total_time - time_left) / total_time
|
var progress = (total_time - time_left) / total_time
|
||||||
|
|
||||||
|
|
@ -43,31 +57,68 @@ func _process(delta) -> void:
|
||||||
time_left_label.text = 'Time left: %s' % calculate_time_left(time_left)
|
time_left_label.text = 'Time left: %s' % calculate_time_left(time_left)
|
||||||
|
|
||||||
if time_left <= 0:
|
if time_left <= 0:
|
||||||
PlayerData.give_money.emit(selected_job.job_reward)
|
PlayerData.give_money.emit(selected_job.job_reward * print_quality)
|
||||||
PlayerData.give_experience.emit(selected_job.job_experience)
|
PlayerData.give_experience.emit(selected_job.job_experience * print_quality)
|
||||||
select_job.visible = true
|
|
||||||
reset_status()
|
reset_status()
|
||||||
|
|
||||||
|
if failure_points.has(roundf(progress_bar.value * 100)):
|
||||||
|
if failure_points[0] == roundf(progress_bar.value * 100):
|
||||||
|
if check_failure(roundf(progress_bar.value * 100)):
|
||||||
|
print('Print failed')
|
||||||
|
print_failed = true
|
||||||
|
reset_status()
|
||||||
|
else:
|
||||||
|
if check_failure(roundf(progress_bar.value * 100)):
|
||||||
|
print_quality -= 0.1
|
||||||
|
print('Fail check, new print quality: %.2f' % print_quality)
|
||||||
|
print('Failure points: ', failure_points)
|
||||||
|
else:
|
||||||
|
print('Passed check')
|
||||||
|
|
||||||
func reset_status() -> void:
|
func reset_status() -> void:
|
||||||
is_printing = false
|
is_printing = false
|
||||||
|
set_status()
|
||||||
|
print_failed = false
|
||||||
|
print_quality = 1.0
|
||||||
|
failure_points = []
|
||||||
time_left_label.visible = false
|
time_left_label.visible = false
|
||||||
|
quality_label.visible = false
|
||||||
|
reward_label.visible = false
|
||||||
progress_bar.visible = false
|
progress_bar.visible = false
|
||||||
progress_bar.value = 0
|
progress_bar.value = 0
|
||||||
time_left = 0
|
time_left = 0
|
||||||
select_job.disabled = false
|
select_job.disabled = false
|
||||||
|
select_job.visible = true
|
||||||
start_button.disabled = false
|
start_button.disabled = false
|
||||||
_on_select_job_pressed()
|
_on_select_job_pressed()
|
||||||
set_status()
|
|
||||||
|
|
||||||
func set_status() -> void:
|
func set_status() -> void:
|
||||||
|
if print_failed:
|
||||||
|
status_label.text = 'Status: Failed'
|
||||||
|
return
|
||||||
|
|
||||||
if is_printing:
|
if is_printing:
|
||||||
status_label.text = 'Status: Printing'
|
status_label.text = 'Status: Printing'
|
||||||
else:
|
else:
|
||||||
status_label.text = 'Status: Free'
|
status_label.text = 'Status: Free'
|
||||||
|
|
||||||
|
func calculate_fail_thresholds() -> Array:
|
||||||
|
var failure_checkpoints: Array = []
|
||||||
|
failure_checkpoints.append(roundf(randf_range(1,33)))
|
||||||
|
failure_checkpoints.append(roundf(randf_range(34,66)))
|
||||||
|
failure_checkpoints.append(roundf(randf_range(67,90)))
|
||||||
|
return failure_checkpoints
|
||||||
|
|
||||||
|
func check_failure(value: float) -> bool:
|
||||||
|
if randf() >= PlayerData.failure_chance:
|
||||||
|
failure_points[failure_points.bsearch(value, true)] = 0
|
||||||
|
return false
|
||||||
|
else:
|
||||||
|
failure_points[failure_points.bsearch(value, true)] = 0
|
||||||
|
return true
|
||||||
|
|
||||||
func calculate_time_left(time) -> String:
|
func calculate_time_left(time) -> String:
|
||||||
var minutes: int = 0
|
var minutes: int = 0
|
||||||
|
|
||||||
if time >= 60:
|
if time >= 60:
|
||||||
while time >= 60:
|
while time >= 60:
|
||||||
minutes += 1
|
minutes += 1
|
||||||
|
|
@ -121,4 +172,6 @@ func _on_start_button_pressed() -> void:
|
||||||
else:
|
else:
|
||||||
PlayerData.jobs.remove_at(selected_job_index)
|
PlayerData.jobs.remove_at(selected_job_index)
|
||||||
|
|
||||||
|
failure_points = calculate_fail_thresholds()
|
||||||
|
print('Failure points: ', failure_points)
|
||||||
GameData.refresh_printer_dropdown.emit()
|
GameData.refresh_printer_dropdown.emit()
|
||||||
|
|
|
||||||
|
|
@ -43,13 +43,31 @@ text = "Printer model"
|
||||||
[node name="PrintInfo" type="VBoxContainer" parent="MarginContainer/MainArea" unique_id=1502076264]
|
[node name="PrintInfo" type="VBoxContainer" parent="MarginContainer/MainArea" unique_id=1502076264]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="FilamentLabel" type="Label" parent="MarginContainer/MainArea/PrintInfo" unique_id=181392172]
|
[node name="InfoRow1" type="HBoxContainer" parent="MarginContainer/MainArea/PrintInfo" unique_id=1561257387]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "Material: PLA"
|
|
||||||
|
|
||||||
[node name="TimeLeftLabel" type="Label" parent="MarginContainer/MainArea/PrintInfo" unique_id=1516591173]
|
[node name="FilamentLabel" type="Label" parent="MarginContainer/MainArea/PrintInfo/InfoRow1" unique_id=181392172]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "Time left: 15.0"
|
text = "Material: ###"
|
||||||
|
|
||||||
|
[node name="QualityLabel" type="Label" parent="MarginContainer/MainArea/PrintInfo/InfoRow1" unique_id=1362675397]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
text = "Print quality: ###%"
|
||||||
|
horizontal_alignment = 2
|
||||||
|
|
||||||
|
[node name="InfoRow2" type="HBoxContainer" parent="MarginContainer/MainArea/PrintInfo" unique_id=719967546]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="TimeLeftLabel" type="Label" parent="MarginContainer/MainArea/PrintInfo/InfoRow2" unique_id=1516591173]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Time left: ###s"
|
||||||
|
|
||||||
|
[node name="RewardLabel" type="Label" parent="MarginContainer/MainArea/PrintInfo/InfoRow2" unique_id=1767576134]
|
||||||
|
layout_mode = 2
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
text = "Reward: ###€"
|
||||||
|
horizontal_alignment = 2
|
||||||
|
|
||||||
[node name="ProgressBar" type="ProgressBar" parent="MarginContainer/MainArea/PrintInfo" unique_id=768246659]
|
[node name="ProgressBar" type="ProgressBar" parent="MarginContainer/MainArea/PrintInfo" unique_id=768246659]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ const PRINTER_SCENE = preload("uid://bdpqvwvwmaian")
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
generate_printers()
|
generate_printers()
|
||||||
|
|
||||||
printer_purchase_requested.connect(GameData._on_shop_printer_purchase_req)
|
printer_purchase_requested.connect(GameData._on_shop_printer_purchase_req)
|
||||||
|
|
||||||
func generate_printers() -> void:
|
func generate_printers() -> void:
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,8 @@
|
||||||
[ext_resource type="Resource" uid="uid://b6x4k150ugskw" path="res://Resources/Printers/printer_creality_ender_3.tres" id="18_8rt22"]
|
[ext_resource type="Resource" uid="uid://b6x4k150ugskw" path="res://Resources/Printers/printer_creality_ender_3.tres" id="18_8rt22"]
|
||||||
[ext_resource type="Resource" uid="uid://b4v47rpo27kec" path="res://Resources/Printers/printer_prusa_mk4s.tres" id="19_1ohgd"]
|
[ext_resource type="Resource" uid="uid://b4v47rpo27kec" path="res://Resources/Printers/printer_prusa_mk4s.tres" id="19_1ohgd"]
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_7g6h4"]
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8fchy"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8fchy"]
|
||||||
bg_color = Color(0.3529412, 0.47843137, 0.7372549, 0.47058824)
|
bg_color = Color(0.3529412, 0.47843137, 0.7372549, 0.47058824)
|
||||||
corner_radius_top_left = 6
|
corner_radius_top_left = 6
|
||||||
|
|
@ -38,6 +40,23 @@ grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
script = ExtResource("1_vqjbf")
|
script = ExtResource("1_vqjbf")
|
||||||
|
|
||||||
|
[node name="CPUParticles2D" type="CPUParticles2D" parent="." unique_id=61421642]
|
||||||
|
position = Vector2(568, 312)
|
||||||
|
amount = 60
|
||||||
|
lifetime = 8.0
|
||||||
|
preprocess = 8.0
|
||||||
|
speed_scale = 0.3
|
||||||
|
emission_shape = 3
|
||||||
|
emission_rect_extents = Vector2(1000, 600)
|
||||||
|
direction = Vector2(0, -1)
|
||||||
|
gravity = Vector2(0, 0)
|
||||||
|
initial_velocity_min = 20.0
|
||||||
|
initial_velocity_max = 50.0
|
||||||
|
scale_amount_min = 2.0
|
||||||
|
scale_amount_max = 5.0
|
||||||
|
color = Color(0.45585775, 0.45585775, 0.4558577, 1)
|
||||||
|
color_ramp = SubResource("Gradient_7g6h4")
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="." unique_id=1634044894]
|
[node name="VBoxContainer" type="VBoxContainer" parent="." unique_id=1634044894]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,8 @@ name="Linux"
|
||||||
platform="Linux"
|
platform="Linux"
|
||||||
dedicated_server=false
|
dedicated_server=false
|
||||||
custom_features=""
|
custom_features=""
|
||||||
export_filter="all_resources"
|
export_filter="scenes"
|
||||||
|
export_files=PackedStringArray("res://Scenes/Map/Map.tscn", "res://Scenes/Map/map_tile.tscn")
|
||||||
include_filter=""
|
include_filter=""
|
||||||
exclude_filter=""
|
exclude_filter=""
|
||||||
export_path="Releases/PrintingSim-stable"
|
export_path="Releases/PrintingSim-stable"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue