Доработка, рефакторинг

This commit is contained in:
2024-11-18 16:31:42 +03:00
parent c9509cd25b
commit 463a550209
10 changed files with 270 additions and 111 deletions

146
PRD.gd
View File

@@ -27,10 +27,9 @@ func poll_receive(sock: Socket) -> bool: ## Приёмник
var addr_receive = sock.get_packet_ip()
var port_receive = sock.get_packet_port()
if (broadcast_packet) and (address == addr_receive) and (port == port_receive):
if (address == addr_receive) and (port == port_receive):
$control_dev/control_dev.get_node2(0, 0).text = 'ЯУ-07Б НА СВЯЗИ'
$control_dev/control_dev.get_node2(0, 0).modulate = Constants.GREEN
flag_yau_control = true
last_update_time = 0.0
unit.parse(broadcast_packet)
else:
@@ -39,12 +38,10 @@ func poll_receive(sock: Socket) -> bool: ## Приёмник
else:
$control_dev/control_dev.get_node2(0, 0).text = 'НЕТ СВЯЗИ С ЯУ-07Б'
$control_dev/control_dev.get_node2(0, 0).modulate = Constants.RED
flag_yau_control = false
return false
func _ready() -> void:
# Таблица 1 (temp)
node_select1 = $scroll1/table1
draw_tabl(node_select1, Constants.ROWS_REGS_DATA, Constants.ROWS_REGS_DATA.size())
@@ -85,6 +82,7 @@ func _ready() -> void:
unit.connect('command_done', Callable(self, 'on_command_done'))
unit.connect('data_received', Callable(self, 'data_received'))
## Рисует таблицу
func draw_tabl(tbl, row: Array, count_row: int):
for i_row in count_row:
@@ -94,114 +92,88 @@ func draw_tabl(tbl, row: Array, count_row: int):
func _process(delta: float) -> void:
last_update_time += delta
poll_receive(soc_brodcast)
if broadcast_packet:
parse_broadcast(broadcast_packet)
match unit.process(delta):
Error.OK: soc_unicast.send_to(address, port, unit.tx_data.slice(0, unit.tx_len))
Error.FAILED: print('Ошибка отправки данных')
func parse_broadcast(packet):
var power: int # Мощность с широковещания
var temperature: int # Температура с широковещания
var DKM: int
var EMS_G: int
var status_board = packet.decode_u8(8)
var node_control_device = $control_dev/control_dev
$Packet.text = 'broadcast: ' + str(packet)
for i in 4:
if i == 0:
node_control_device.get_node2(0, i+2).text = 'ЯЧЕЙКА ЭМС-Г НА СВЯЗИ' if status_board & (1 << i) and flag_yau_control else 'ЯЧЕЙКИ ЭМС-Г НЕТ НА СВЯЗИ'
node_control_device.get_node2(0, i+2).modulate = Constants.GREEN if status_board & (1 << i) and flag_yau_control else Constants.RED
elif i == 1:
node_control_device.get_node2(0, i+2).text = 'ЯЧЕЙКА УГ НА СВЯЗИ' if status_board & (1 << i) and flag_yau_control else 'ЯЧЕЙКИ УГ НЕТ НА СВЯЗИ'
node_control_device.get_node2(0, i+2).modulate = Constants.GREEN if status_board & (1 << i) and flag_yau_control else Constants.RED
elif i == 2:
node_control_device.get_node2(0, i+2).text = 'ЯЧЕЙКА УКП №1 НА СВЯЗИ' if status_board & (1 << i) and flag_yau_control else 'ЯЧЕЙКИ УКП №1 НЕТ НА СВЯЗИ'
node_control_device.get_node2(0, i+2).modulate = Constants.GREEN if status_board & (1 << i) and flag_yau_control else Constants.RED
elif i == 3:
node_control_device.get_node2(0, i+2).text = 'ЯЧЕЙКА УКП №2 НА СВЯЗИ' if status_board & (1 << i) and flag_yau_control else 'ЯЧЕЙКИ УКП №2 НЕТ НА СВЯЗИ'
node_control_device.get_node2(0, i+2).modulate = Constants.GREEN if status_board & (1 << i) and flag_yau_control else Constants.RED
var dry_contact: int = packet.decode_u16(35) # Контроль сухих контактов (ИП УГ)
func data_received(_unit):
var data_from_yau_07 = unit.status
var status_board = data_from_yau_07.decode_u8(0)
var EMS_G: int = data_from_yau_07.decode_u16(1) # Данные СИ от ЭМС-Г на выходе
var dry_contact: int = data_from_yau_07.decode_u16(27) # Контроль сухих контактов (УГ)
var DKM: int = data_from_yau_07.decode_u16(29) # ДКМ от УГ
var power_ukp_1: int = data_from_yau_07.decode_u16(31) # Мощность с широковещания от УКП №1
var temperature_ukp_1: int = data_from_yau_07.decode_u16(47) # Температура с широковещания от УКП №1
var power_ukp_2: int = data_from_yau_07.decode_u16(63)
var temperature_ukp_2: int = data_from_yau_07.decode_u16(79)
node_select1.set_node_text(2, 0, '%d' % dry_contact)
for i in 9:
if i == 0:
node_control_device.get_node2(0, i+6).text = 'ИП МАА №1' if dry_contact & (1 << i) == 0 and flag_yau_control else 'ОШИБКА. КОНТРОЛЬ ИП МАА №1'
node_control_device.get_node2(0, i+6).modulate = Constants.GREEN if dry_contact & (1 << i) == 0 and flag_yau_control else Constants.RED
elif i == 1:
node_control_device.get_node2(0, i+6).text = 'ИП МАА №2' if dry_contact & (1 << i) == 0 and flag_yau_control else 'ОШИБКА. КОНТРОЛЬ ИП МАА №2'
node_control_device.get_node2(0, i+6).modulate = Constants.GREEN if dry_contact & (1 << i) == 0 and flag_yau_control else Constants.RED
elif i == 2:
node_control_device.get_node2(0, i+6).text = 'ИП9-50 №1' if dry_contact & (1 << i) == 0 and flag_yau_control else 'ОШИБКА. КОНТРОЛЬ ИП9-50 №1'
node_control_device.get_node2(0, i+6).modulate = Constants.GREEN if dry_contact & (1 << i) == 0 and flag_yau_control else Constants.RED
elif i == 3:
node_control_device.get_node2(0, i+6).text = 'ИП9-50 №2' if dry_contact & (1 << i) == 0 and flag_yau_control else 'ОШИБКА. КОНТРОЛЬ ИП9-50 №2'
node_control_device.get_node2(0, i+6).modulate = Constants.GREEN if dry_contact & (1 << i) == 0 and flag_yau_control else Constants.RED
#elif i == 4:
#node_control_device.get_node2(0, i+6).text = 'ОШИБКА. КОНТРОЛЬ ИП9-50 №3' if dry_contact & (1 << i) and flag_yau_control else 'ИП9-50 №3'
#node_control_device.get_node2(0, i+6).modulate = Constants.RED if dry_contact & (1 << i) and flag_yau_control else Constants.GREEN
elif i == 4:
node_control_device.get_node2(0, i+6).text = 'ИП12-50 №1' if dry_contact & (1 << i) == 0 and flag_yau_control else 'ОШИБКА. КОНТРОЛЬ ИП12-50 №1'
node_control_device.get_node2(0, i+6).modulate = Constants.GREEN if dry_contact & (1 << i) == 0 and flag_yau_control else Constants.RED
#elif i == 6:
#node_control_device.get_node2(0, i+6).text = 'ОШИБКА. КОНТРОЛЬ ИП12-50 №2' if dry_contact & (1 << i) and flag_yau_control else 'ИП12-50 №2'
#node_control_device.get_node2(0, i+6).modulate = Constants.RED if dry_contact & (1 << i) and flag_yau_control else Constants.GREEN
elif i == 7:
node_control_device.get_node2(0, i+6).text = 'ИП5-25' if dry_contact & (1 << i) == 0 and flag_yau_control else 'ОШИБКА. КОНТРОЛЬ ИП5-25'
node_control_device.get_node2(0, i+6).modulate = Constants.GREEN if dry_contact & (1 << i) == 0 and flag_yau_control else Constants.RED
var node_control_device = $control_dev/control_dev
for i in 4:
var node_board = node_control_device.get_node2(0, i+2)
var j = int(status_board & (1 << i) == 0 and flag_yau_control)
node_board.text = Constants.CONTROL_BOARD[i][j]
node_board.modulate = [Constants.GREEN, Constants.RED][j]
for i in 8:
var node_power_supply = node_control_device.get_node2(0, i+6)
var j = int(not(dry_contact & (1 << i) == 0 and flag_yau_control))
node_power_supply.text = Constants.CONTROL_POWER_SUPPLY[i][j]
node_power_supply.modulate = [Constants.GREEN, Constants.RED][j]
# EMS G
var in_blank: int = data_from_yau_07.decode_u32(1)
var in_imp: int = data_from_yau_07.decode_u32(5)
DKM = packet.decode_u16(37)
var EMSG = [['Вход Х3:23', 'Вход Х3:23'],['Вход Х3:24', 'Вход Х3:24']]
for i in 2:
var node_ems_g = node_control_device.get_node2(0, i+ 14)
#var ems = data_from_yau_07.decode_u64()
var j = int(EMS_G & (1 << i) == 0 and flag_yau_control)
node_ems_g.text = EMSG[i][j]
node_ems_g.modulate = [Constants.GREEN, Constants.RED][j]
set_frame(Constants.Frame.VARIABLE)
node_select1.set_node_text(3, 0, '%d' % DKM)
for i in range(8):
power = packet.decode_u16(39 + 2 * i)
node_select1.set_node_text(0, i, '%d' % power)
power_ukp_1 += 2 * i
node_select1.set_node_text(0, i, '%d' % power_ukp_1)
for i in range(8):
var TMP = packet.decode_u16(55 + 2 * i)
temperature = Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - TMP) * Constants.TEMP
node_select1.set_node_text(1, i, '%d' % temperature)
temperature_ukp_1 += 2 * i
var TMP = Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_1) * Constants.TEMP
node_select1.set_node_text(1, i, '%d' % TMP)
for i in range(8):
power = packet.decode_u16(71 + 2 * i)
node_select1.set_node_text(0, i+8, '%d' % power)
power_ukp_2 += 2 * i
node_select1.set_node_text(0, i+8, '%d' % power_ukp_2)
for i in range(8):
if len(packet) > 87 + 2 * i:
var TMP = packet.decode_u16(87 + 2 * i)
temperature = Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - TMP) * Constants.TEMP
node_select1.set_node_text(1, i+8, '%d' % temperature)
if len(data_from_yau_07) > 79 + 2 * i:
temperature_ukp_2 += 2 * i
var TMP = Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_2) * Constants.TEMP
node_select1.set_node_text(1, i+8, '%d' % TMP)
for i in range(15):
EMS_G = packet.decode_u16(9 + 2 * i)
EMS_G += 2 * i
node_select1.set_node_text(3, i+1, '%d' % EMS_G)
func data_received(unit):
var status = unit.status
#var bit_online = 0 + id_board
#var bit_load = 3 + id_board
#online = (status[0] >> bit_online) & 1
#ems_load = (status[0] >> bit_load) & 1
var in_blank = int(status[1] | (status[2] << 8) | (status[3] << 16) | \
(status[4] << 24) | (status[5] << 32))
var in_imp = int(status[7] | (status[8] << 8) | (status[9] << 16) | \
(status[10] << 24) | (status[11] << 32))
var out_blank = int(status[13] | (status[14] << 8) | (status[15] << 16) | \
(status[16] << 24) | (status[17] << 32))
var out_imp = int(status[19] | (status[20] << 8) | (status[21] << 16)| \
(status[22] << 24) | (status[23] << 32))
var out_kz = int(status[25] | (status[26] << 8))
###
func set_frame(val: int): $control_dev/sprite.set_frame(val)
###
func on_line_changed(_unit) -> void:
if unit.online:
print('Off line')
flag_yau_control = true
else:
print('On line')
flag_yau_control = false
## Ессли отсутствует подключение к ячейке ЯУ-07
func on_command_fail(_unit) -> void:

View File

@@ -1,21 +1,38 @@
[gd_scene load_steps=16 format=3 uid="uid://cvor2jm4xk3ha"]
[gd_scene load_steps=17 format=3 uid="uid://cvor2jm4xk3ha"]
[ext_resource type="Script" path="res://PRD.gd" id="1_v273n"]
[ext_resource type="Script" path="res://table/table.gd" id="2_vmbyo"]
[ext_resource type="Material" uid="uid://s6xe8igevnv2" path="res://Shaders/shader_edu.tres" id="3_3syd3"]
[ext_resource type="Shader" path="res://Shaders/ray.gdshader" id="4_uy5o2"]
[ext_resource type="Texture2D" uid="uid://62v0xejejuwj" path="res://Web.png" id="5_i3nvb"]
[ext_resource type="Texture2D" uid="uid://dkef6xwxwdxi8" path="res://эмс-бланк.png" id="7_hdx0f"]
[ext_resource type="Texture2D" uid="uid://b15flrfytxkop" path="res://эмс-бланк-пост.png" id="8_eaogg"]
[ext_resource type="Texture2D" uid="uid://ijdfo2mml54" path="res://эмс-бланк-перем.png" id="9_nctgk"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ovl8a"]
bg_color = Color(0.388235, 0.227451, 0.290196, 1)
corner_detail = 1
anti_aliasing = false
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_5yjx2"]
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_kofy6"]
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_hdj8q"]
[sub_resource type="SpriteFrames" id="SpriteFrames_vex4t"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("7_hdx0f")
}, {
"duration": 1.0,
"texture": ExtResource("8_eaogg")
}, {
"duration": 1.0,
"texture": ExtResource("9_nctgk")
}, {
"duration": 1.0,
"texture": null
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_723du"]
size = Vector2(1600, 1200)
@@ -74,7 +91,7 @@ text = "КОНТРОЛЬ"
offset_left = 118.0
offset_top = 53.0
offset_right = 465.0
offset_bottom = 487.0
offset_bottom = 527.0
color = Color(0.390334, 0.227948, 0.288326, 1)
metadata/_edit_lock_ = true
@@ -82,7 +99,7 @@ metadata/_edit_lock_ = true
offset_left = 142.0
offset_top = 63.0
offset_right = 477.0
offset_bottom = 487.0
offset_bottom = 527.0
metadata/_edit_lock_ = true
[node name="control_dev" type="GridContainer" parent="control_dev"]
@@ -90,6 +107,16 @@ layout_mode = 2
script = ExtResource("2_vmbyo")
metadata/_edit_lock_ = true
[node name="sprite" type="AnimatedSprite2D" parent="control_dev"]
position = Vector2(215, 404)
sprite_frames = SubResource("SpriteFrames_vex4t")
metadata/_edit_lock_ = true
[node name="sprite2" type="AnimatedSprite2D" parent="control_dev"]
position = Vector2(214, 432)
sprite_frames = SubResource("SpriteFrames_vex4t")
metadata/_edit_lock_ = true
[node name="scroll1" type="ScrollContainer" parent="."]
offset_left = 478.0
offset_top = 65.0
@@ -101,19 +128,6 @@ layout_mode = 2
script = ExtResource("2_vmbyo")
metadata/_edit_lock_ = true
[node name="Packet" type="TextEdit" parent="."]
offset_left = 23.0
offset_top = 606.0
offset_right = 1121.0
offset_bottom = 786.0
theme_override_colors/font_readonly_color = Color(1, 1, 1, 1)
theme_override_styles/normal = SubResource("StyleBoxTexture_5yjx2")
theme_override_styles/focus = SubResource("StyleBoxTexture_kofy6")
theme_override_styles/read_only = SubResource("StyleBoxTexture_hdj8q")
text = "broadcast"
editable = false
wrap_mode = 1
[node name="PSK" type="Sprite2D" parent="."]
material = ExtResource("3_3syd3")
position = Vector2(1243, 81)

View File

@@ -29,8 +29,9 @@ const CONTROL_TABLE: Array = [
[TableNode],
[TableNode],
[TableNode],
[TableNode],]
const CONTROL_DEVICE: Array = ['ЯЧЕЙКА ЯУ-07Б', 'ФС', 'ЯЧЕЙКА ЭМС-Г', 'ЯЧЕЙКА УГ', 'ЯЧЕЙКА УКП №1', 'ЯЧЕЙКА УКП №2', 'ИП МАА №1', 'ИП МАА №2', 'ИП9-50 №1', 'ИП9-50 №2', 'ИП12-50 №1', '-', '-','ИП5-25']
[TableNode],
[TableNode]]
const CONTROL_DEVICE: Array = ['ЯЧЕЙКА ЯУ-07Б', 'ФС', 'ЯЧЕЙКА ЭМС-Г', 'ЯЧЕЙКА УГ', 'ЯЧЕЙКА УКП №1', 'ЯЧЕЙКА УКП №2', 'ИП МАА №1', 'ИП МАА №2', 'ИП9-50 №1', 'ИП9-50 №2', 'ИП12-50 №1', '-', '-','ИП5-25', 'Вход Х3:23', 'Вход Х3:24']
const ROWS_REGS_DATA: Array = [
[TableNode, TableNode, TableNode, TableNode],
[TableNode, TableNode, TableNode, TableNode],
@@ -47,7 +48,7 @@ const ROWS_REGS_DATA: Array = [
[TableNode, TableNode, TableNode, TableNode],
[TableNode, TableNode, TableNode, TableNode],
[TableNode, TableNode, TableNode, TableNode],
[TableNode, TableNode, TableNode, TableNode],]
[TableNode, TableNode, TableNode, TableNode]]
const ADDRESSES: Array = [
['ПРД-Н1', '10.1.1.11', 50011],
['ПРД-Н2', '10.1.1.21', 50021],
@@ -61,3 +62,22 @@ const ADDRESSES: Array = [
['ПРД-К2', '10.1.1.23', 50023],
['ПРД-К3', '10.1.1.33', 50033],
['ПРД-К4', '10.1.1.43', 50043]]
var CONTROL_BOARD: Array = [
['ЯЧЕЙКА ЭМС-Г НА СВЯЗИ', 'ЯЧЕЙКИ ЭМС-Г НЕТ НА СВЯЗИ'],
['ЯЧЕЙКА УГ НА СВЯЗИ','ЯЧЕЙКИ УГ НЕТ НА СВЯЗИ'],
['ЯЧЕЙКА УКП №1 НА СВЯЗИ', 'ЯЧЕЙКИ УКП №1 НЕТ НА СВЯЗИ'],
['ЯЧЕЙКА УКП №2 НА СВЯЗИ', 'ЯЧЕЙКИ УКП №2 НЕТ НА СВЯЗИ']]
var CONTROL_POWER_SUPPLY: Array = [
['ИП МАА №1', 'ОШИБКА. КОНТРОЛЬ ИП МАА №1'],
['ИП МАА №2', 'ОШИБКА. КОНТРОЛЬ ИП МАА №2'],
['ИП9-50 №1', 'ОШИБКА. КОНТРОЛЬ ИП9-50 №1'],
['ИП9-50 №2', 'ОШИБКА. КОНТРОЛЬ ИП9-50 №2'],
['ИП12-50 №1', 'ОШИБКА. КОНТРОЛЬ ИП12-50 №1'],
['ИП9-50 №3', 'ОШИБКА. КОНТРОЛЬ ИП9-50 №3'],
['ИП12-50 №2', 'ОШИБКА. КОНТРОЛЬ ИП12-50 №2'],
['ИП5-25', 'ОШИБКА. КОНТРОЛЬ ИП5-25']]
enum Frame {
WORK, ## В работе
CONSTANT, ## Постоянный сигнал
VARIABLE ## Переменный сигнал
}

View File

@@ -0,0 +1,51 @@
[gd_scene load_steps=6 format=3 uid="uid://cf500m6u46dqe"]
[ext_resource type="Texture2D" uid="uid://dkef6xwxwdxi8" path="res://эмс-бланк.png" id="2_don4l"]
[ext_resource type="Texture2D" uid="uid://b15flrfytxkop" path="res://эмс-бланк-пост.png" id="3_lu634"]
[ext_resource type="Texture2D" uid="uid://ijdfo2mml54" path="res://эмс-бланк-перем.png" id="4_b33qw"]
[sub_resource type="GDScript" id="GDScript_q347l"]
script/source = "extends Control
var align : get = get_align, set = set_align
var _align: int = 0
func set_align(val: int): _align = val
func get_align(): return _align
func set_frame(val: int): $sprite.set_frame(val)
func get_frame(): return $sprite.get_frame()
"
[sub_resource type="SpriteFrames" id="SpriteFrames_ow7xh"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("2_don4l")
}, {
"duration": 1.0,
"texture": ExtResource("3_lu634")
}, {
"duration": 1.0,
"texture": ExtResource("4_b33qw")
}, {
"duration": 1.0,
"texture": null
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[node name="Control" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_right = -1540.0
offset_bottom = -1182.0
grow_horizontal = 2
grow_vertical = 2
script = SubResource("GDScript_q347l")
[node name="sprite" type="AnimatedSprite2D" parent="."]
position = Vector2(32, 226)
sprite_frames = SubResource("SpriteFrames_ow7xh")
frame = 2

Binary file not shown.

After

Width:  |  Height:  |  Size: 704 B

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ijdfo2mml54"
path="res://.godot/imported/эмс-бланк-перем.png-011e0d06ef6ddca754d1f3d8e11a448c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://эмс-бланк-перем.png"
dest_files=["res://.godot/imported/эмс-бланк-перем.png-011e0d06ef6ddca754d1f3d8e11a448c.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 483 B

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b15flrfytxkop"
path="res://.godot/imported/эмс-бланк-пост.png-439ef19be91abe97f22f96e843d00c61.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://эмс-бланк-пост.png"
dest_files=["res://.godot/imported/эмс-бланк-пост.png-439ef19be91abe97f22f96e843d00c61.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

BIN
эмс-бланк.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 787 B

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dkef6xwxwdxi8"
path="res://.godot/imported/эмс-бланк.png-59a703aa6cdf36be7c906f7ee7a30184.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://эмс-бланк.png"
dest_files=["res://.godot/imported/эмс-бланк.png-59a703aa6cdf36be7c906f7ee7a30184.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/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