Доработка. Опыты с раскраской антенн.
This commit is contained in:
@@ -27,6 +27,7 @@ config/map_server_addr="https://b.tile.openstreetmap.org"
|
||||
interfer/resend_timeout=1000.0
|
||||
config/map_image_size_rto=Vector2i(512, 512)
|
||||
config/map_image_size_rls=Vector2i(1024, 1024)
|
||||
interfer/center_offset=Vector2(0, 25)
|
||||
|
||||
[autoload]
|
||||
|
||||
@@ -80,6 +81,7 @@ enabled=PackedStringArray()
|
||||
[global]
|
||||
|
||||
map_server_addr=false
|
||||
center_offset=Vector2(0, 0)
|
||||
|
||||
[gui]
|
||||
|
||||
|
||||
@@ -23,3 +23,4 @@ func get_radius_inner_0() -> float: return material.get('shader_parameter/radiu
|
||||
func get_radius_inner_1() -> float: return material.get('shader_parameter/radius_inner_1')
|
||||
|
||||
func set_view_mode(val: int): material.set('shader_parameter/mode', val);
|
||||
func set_band_colors(val: Array): material.set('shader_parameter/ant_band_c', val)
|
||||
|
||||
@@ -36,7 +36,34 @@ signal drag_begin ## Вызывается в момент начала пе
|
||||
signal drag_continue ## Вызывается во время продолжения перетаскивания
|
||||
signal drag_end ## Вызывается в момент завершения перетаскивания
|
||||
|
||||
const fs_sectors: Dictionary = {
|
||||
0: [0.0, 90.0],
|
||||
1: [90.0, 180.0],
|
||||
2: [180.0, 270.0],
|
||||
3: [270.0, 360.0]
|
||||
}
|
||||
|
||||
const fs_band_rto: Dictionary = {
|
||||
0: [200.0, 250.0],
|
||||
1: [250.0, 300.0],
|
||||
2: [300.0, 350.0],
|
||||
3: [350.0, 400.0],
|
||||
4: [400.0, 450.0],
|
||||
5: [450.0, 500.0],
|
||||
6: [500.0, 550.0],
|
||||
}
|
||||
|
||||
const fs_band_rls: Dictionary = {
|
||||
0: [480.0, 490.0],
|
||||
1: [490.0, 500.0],
|
||||
2: [500.0, 510.0],
|
||||
3: [510.0, 520.0],
|
||||
4: [520.0, 530.0],
|
||||
5: [530.0, 540.0],
|
||||
6: [540.0, 550.0],
|
||||
}
|
||||
|
||||
var fs_band = fs_band_rto
|
||||
## Состояние перетаскивания
|
||||
enum DragFSM {
|
||||
DRAG, ## В процессе
|
||||
@@ -52,7 +79,12 @@ func on_threats_resized(threats: Dictionary): $count_all_pad/count_all.text = '%
|
||||
func on_threat_selected(th, ecm_btns): on_rto_threat_sel(th.id, ecm_btns)
|
||||
|
||||
|
||||
func on_button_view_toggled(toggled: bool): signaller.emit_signal('map_mode_changed', int(toggled))
|
||||
func on_button_view_toggled(toggled: bool):
|
||||
signaller.emit_signal('map_mode_changed', int(toggled))
|
||||
if toggled:
|
||||
fs_band = fs_band_rls
|
||||
else:
|
||||
fs_band = fs_band_rto
|
||||
|
||||
|
||||
##
|
||||
@@ -292,4 +324,26 @@ func _on_zoom_complete(zoom: int) -> void:
|
||||
|
||||
# Обработчик нажатия по сектору формирователя сигналов
|
||||
func sel_fs_sector(event):
|
||||
print_debug(event.position)
|
||||
var center: Vector2 = $tilemap.position
|
||||
var center_offset: Vector2 = ProjectSettings.get_setting('application/interfer/center_offset', Vector2i(0, 25))
|
||||
var angle: float = event.position.angle_to_point(center + center_offset) * 180/PI - 45.0
|
||||
if angle < 0:
|
||||
angle +=360
|
||||
var distance: float = event.position.distance_to(center + center_offset)
|
||||
var sector: int
|
||||
var band: int
|
||||
for sec in fs_sectors.values():
|
||||
if angle >= sec[0] and angle <= sec[1]:
|
||||
sector = fs_sectors.find_key(sec)
|
||||
for diap in fs_band.values():
|
||||
if distance >= diap[0] and distance <= diap[1]:
|
||||
band = fs_band.find_key(diap)
|
||||
var colors: Array = []
|
||||
var color0 = Vector3(0.38, 0.47, 0.51)
|
||||
var color1 = Vector3(0.39, 0.44, 0.50)
|
||||
for i in range(14):
|
||||
colors.append(color0)
|
||||
colors.append(color1)
|
||||
$canvas.set_band_colors(colors)
|
||||
print_debug(sector, band)
|
||||
|
||||
|
||||
@@ -41,6 +41,8 @@ const float ant_band_r1_4[] = {450.0, 530.0};
|
||||
const float ant_band_r1_5[] = {500.0, 540.0};
|
||||
const float ant_band_r1_6[] = {550.0, 550.0};
|
||||
|
||||
const vec4 ant_band_colors[] = {vec4(0.38, 0.47, 0.51, 0.4),vec4(0.38, 0.47, 0.51, 0.4), vec4(0.38, 0.47, 0.51, 0.4), vec4(0.38, 0.47, 0.51, 0.4)};
|
||||
uniform vec3 ant_band_c[28];
|
||||
|
||||
const float d4 = 90.0;
|
||||
const float ds = 1.0;
|
||||
@@ -108,3 +110,4 @@ shader_parameter/radius_inner_0 = 200.0
|
||||
shader_parameter/radius_inner_1 = 480.0
|
||||
shader_parameter/radius_outter = 550.0
|
||||
shader_parameter/mode = 0
|
||||
shader_parameter/ant_band_c = PackedVector3Array(0.38, 0.47, 0.51, 0.39, 0.44, 0.5, 0.38, 0.47, 0.51, 0.39, 0.44, 0.5, 0.38, 0.47, 0.51, 0.39, 0.44, 0.5, 0.38, 0.47, 0.51, 0.39, 0.44, 0.5, 0.38, 0.47, 0.51, 0.39, 0.44, 0.5, 0.38, 0.47, 0.51, 0.39, 0.44, 0.5, 0.38, 0.47, 0.51, 0.39, 0.44, 0.5, 0.38, 0.47, 0.51, 0.39, 0.44, 0.5, 0.38, 0.47, 0.51, 0.39, 0.44, 0.5, 0.38, 0.47, 0.51, 0.39, 0.44, 0.5, 0.38, 0.47, 0.51, 0.39, 0.44, 0.5, 0.38, 0.47, 0.51, 0.39, 0.44, 0.5, 0.38, 0.47, 0.51, 0.39, 0.44, 0.5, 0.38, 0.47, 0.51, 0.39, 0.44, 0.5)
|
||||
|
||||
Reference in New Issue
Block a user