Коммит 08d7a616 создал по автору magcourier's avatar magcourier
Просмотр файлов

корабль в станции собран

владелец 3522716e
......@@ -134,11 +134,9 @@ const ships = preload("res://blokoj/kosmo/scenoj/ships.tscn")
const space_object = preload("res://blokoj/kosmo/scenoj/space_object.tscn")
const ship_gem = preload("res://blokoj/kosmo/scenoj/ship.tscn")
const sxipo = preload("res://blokoj/kosmosxipoj/skriptoj/moduloj/sxipo.gd")
const base_ship = preload("res://blokoj/kosmosxipoj/scenoj/base_ship.tscn")
const base_cabine = preload("res://blokoj/kosmosxipoj/scenoj/moduloj/cabine.tscn")
const base_engine = preload("res://blokoj/kosmosxipoj/scenoj/moduloj/engine.tscn")
const base_cargo = preload("res://blokoj/kosmosxipoj/scenoj/moduloj/cargo.tscn")
const laser = preload("res://blokoj/kosmosxipoj/scenoj/moduloj/laser.tscn")
const espero = preload("res://blokoj/kosmostacioj/espero/espero_ekster.tscn")
......@@ -147,70 +145,11 @@ const asteroido = preload("res://blokoj/asteroidoj/ast 6.tscn")
# функция создания корабля
func create_ship(objecto):
var ship = null
var cabine = null
var cargo = null
var engine = null
var moduloj = null
if (objecto['resurso']['objId'] == 3):# это корабль "Vostok U2" "Базовый космический корабль"
ship = base_ship.instance()
var enganes = false # временно - указывает, чтоодин двигатель уже ставили
# первый цикл добавляет все модули к кораблю
var max_konektilo = 0 # максимальный номер комплектующей
var tek_konektilo = 1 # текущий номер устанавливаемой в пространстве комплектующей
# на сколько сдвигать по осям
var konektilo_x = 0
var konektilo_y = 0
var konektilo_z = 0
for modulo in objecto['ligilo']['edges']:
if max_konektilo < modulo['node']['konektiloPosedanto']:
max_konektilo = modulo['node']['konektiloPosedanto']
if modulo['node']['tipo']['objId'] == 1: # связь типа 1 - модуль корабля
if modulo['node']['ligilo']['resurso']['objId'] == 4: #"Vostok Модуль Кабины" "Базовый модуль кабины кораблей Vostok"
cabine = base_cabine.instance()
cabine.uuid = modulo['node']['ligilo']['uuid']
# x - в право
cabine.get_node("cabine").translation.y = 2 #вверх
cabine.get_node("cabine").translation.z = 2 # назад
cabine.get_node("cabine").rotate_y(deg2rad(90))
ship.get_node("CollisionShape").add_child(cabine)
elif modulo['node']['ligilo']['resurso']['objId'] == 5: #"Vostok Грузовой Модуль" "Базовый грузовой модуль кораблей Vostok"
cargo = base_cargo.instance()
cargo.uuid = modulo['node']['ligilo']['uuid']
cargo.get_node("Cargo").translation.y = 2
cargo.get_node("Cargo").translation.z = 8
cargo.get_node("Cargo").rotate_y(deg2rad(90))
ship.get_node("CollisionShape").add_child(cargo)
elif modulo['node']['ligilo']['resurso']['objId'] == 6: #"Vostok Двигатель" "Базовый двигатель кораблей Vostok"
engine = base_engine.instance()
engine.uuid = modulo['node']['ligilo']['uuid']
if enganes:
engine.get_node("engine R").translation.x = -2.5
engine.get_node("engine R").translation.y = 1
engine.get_node("engine R").translation.z = 10
engine.get_node("engine R").rotate_y(deg2rad(270))
engine.get_node("engine R").rotate_x(deg2rad(180))
else:
engine.get_node("engine R").translation.x = 2.5
engine.get_node("engine R").translation.y = 1
engine.get_node("engine R").translation.z = 10
engine.get_node("engine R").rotate_y(deg2rad(90))
ship.get_node("CollisionShape").add_child(engine)
enganes = !enganes
elif modulo['node']['ligilo']['resurso']['objId'] == 11: #Универсальный лазер
moduloj = laser.instance()
moduloj.uuid = modulo['node']['ligilo']['uuid']
moduloj.get_node("gun_body").translation.y = 4.2
moduloj.get_node("gun_body").translation.z = 0.6
moduloj.get_node("laser").translation.y = 4.2
moduloj.get_node("laser").translation.z = 0.6
# moduloj.get_node("laser/gun_stem").translation.y = 4.2
moduloj.get_node("laser/gun_stem").translation.z = -0.6
# moduloj.get_node("laser/beam/MeshInstance").translation.y = 4.2
# moduloj.get_node("laser/beam/MeshInstance2").translation.y = 4.2
# moduloj.get_node("laser/end_point/Particles").translation.y = 4.2
ship.get_node("CollisionShape").add_child(moduloj)
# for modulo in objecto['ligilo']['edges']:
var sh = sxipo.new()
sh.create_sxipo(ship, objecto)
if not ship: # проверка, если такого корабля нет в программе
return null
ship.translation=Vector3(objecto['koordinatoX'],
......
......@@ -49,9 +49,9 @@ func _on_kosmo_pressed():
const base_ship = preload("res://blokoj/kosmosxipoj/scenoj/base_ship.tscn")
const base_cabine = preload("res://blokoj/kosmosxipoj/scenoj/moduloj/cabine.tscn")
const base_engines = preload("res://blokoj/kosmosxipoj/scenoj/moduloj/engines.tscn")
const base_cargo = preload("res://blokoj/kosmosxipoj/scenoj/moduloj/cargo.tscn")
const sxipo = preload("res://blokoj/kosmosxipoj/skriptoj/moduloj/sxipo.gd")
func _on_CapKosmostacio_ready():
# устанавливаем корабль на место 1А
......@@ -60,13 +60,11 @@ func _on_CapKosmostacio_ready():
var cargo = null
var engines = null
ship = base_ship.instance()
engines = base_engines.instance()
ship.get_node("CollisionShape").add_child(engines)
cabine = base_cabine.instance()
ship.get_node("CollisionShape").add_child(cabine)
cargo = base_cargo.instance()
ship.get_node("CollisionShape").add_child(cargo)
var sh = sxipo.new()
sh.create_sxipo(ship, Global.direktebla_objekto[Global.realeco-2])
ship.visible=true
ship.rotate_y(1.58)
ship.translation.x = ship.translation.x + 4.2 # насколько въезжать в парковку
ship.translation.z = ship.translation.z - 5 # в сторону от центра
......
[gd_scene load_steps=4 format=2]
[gd_scene load_steps=5 format=2]
[ext_resource path="res://blokoj/kosmosxipoj/scenoj/baseSpaceship/cabine.glb" type="PackedScene" id=1]
[ext_resource path="res://blokoj/kosmosxipoj/scenoj/baseSpaceship/cabine.material" type="Material" id=2]
[ext_resource path="res://blokoj/kosmosxipoj/skriptoj/moduloj/modulo.gd" type="Script" id=3]
[sub_resource type="BoxShape" id=1]
extents = Vector3( 1, 1, 1.85794 )
[node name="cabine" instance=ExtResource( 1 )]
script = ExtResource( 3 )
[node name="cabine" parent="." index="0"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
material/0 = ExtResource( 2 )
[node name="KinematicBody" type="Area" parent="." index="1"]
[node name="CollisionShape" type="CollisionShape" parent="KinematicBody" index="0"]
transform = Transform( 2.02778, 0, 0, 0, 2.02037, 0, 0, 0, 1.08249, 0, 0, 0 )
shape = SubResource( 1 )
[gd_scene load_steps=3 format=2]
[gd_scene load_steps=4 format=2]
[ext_resource path="res://blokoj/kosmosxipoj/scenoj/baseSpaceship/cargo.glb" type="PackedScene" id=1]
[ext_resource path="res://blokoj/kosmosxipoj/skriptoj/moduloj/modulo.gd" type="Script" id=2]
[sub_resource type="BoxShape" id=1]
[node name="cargo" instance=ExtResource( 1 )]
script = ExtResource( 2 )
[node name="Cargo" parent="." index="0"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
[node name="KinematicBody" type="Area" parent="." index="1"]
[node name="CollisionShape" type="CollisionShape" parent="KinematicBody" index="0"]
transform = Transform( 3.98628, 0, 0, 0, 2.00558, 0, 0, 0, 1.98912, 0, 0, 0 )
shape = SubResource( 1 )
[gd_scene load_steps=3 format=2]
[gd_scene load_steps=4 format=2]
[ext_resource path="res://blokoj/kosmosxipoj/scenoj/baseSpaceship/engine.glb" type="PackedScene" id=1]
[ext_resource path="res://blokoj/kosmosxipoj/skriptoj/moduloj/modulo.gd" type="Script" id=2]
[sub_resource type="BoxShape" id=1]
[node name="engine" instance=ExtResource( 1 )]
script = ExtResource( 2 )
[node name="engine R" parent="." index="0"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
[node name="KinematicBody" type="Area" parent="." index="1"]
[node name="CollisionShape" type="CollisionShape" parent="KinematicBody" index="0"]
transform = Transform( 0.80205, 0, 0, 0, 0.39925, 0, 0, 0, 0.994229, 0, 0, 0.398373 )
shape = SubResource( 1 )
[gd_scene load_steps=13 format=2]
[gd_scene load_steps=14 format=2]
[ext_resource path="res://blokoj/kosmosxipoj/resursoj/laser_beam.tres" type="Material" id=1]
......@@ -116,6 +116,8 @@ size = Vector3( 1, 0.5, 1 )
[sub_resource type="SpatialMaterial" id=11]
albedo_color = Color( 1, 1, 0, 1 )
[sub_resource type="BoxShape" id=12]
[node name="laser_gun" type="Spatial"]
script = SubResource( 1 )
......@@ -162,3 +164,9 @@ material/0 = ExtResource( 1 )
[node name="gun_body" type="MeshInstance" parent="."]
mesh = SubResource( 10 )
material/0 = SubResource( 11 )
[node name="KinematicBody" type="Area" parent="."]
[node name="CollisionShape" type="CollisionShape" parent="KinematicBody"]
transform = Transform( 0.499908, 0, 0, 0, 0.276098, 0, 0, 0, 0.504597, 0, 0, 0 )
shape = SubResource( 12 )
[gd_scene load_steps=3 format=2]
[ext_resource path="res://blokoj/kosmosxipoj/skriptoj/moduloj/modulo.gd" type="Script" id=1]
[sub_resource type="CapsuleShape" id=1]
[node name="sxipo" type="KinematicBody"]
script = ExtResource( 1 )
[node name="CollisionShape" type="CollisionShape" parent="."]
shape = SubResource( 1 )
extends Node
const base_cabine = preload("res://blokoj/kosmosxipoj/scenoj/moduloj/cabine.tscn")
const base_engine = preload("res://blokoj/kosmosxipoj/scenoj/moduloj/engine.tscn")
const base_cargo = preload("res://blokoj/kosmosxipoj/scenoj/moduloj/cargo.tscn")
const laser = preload("res://blokoj/kosmosxipoj/scenoj/moduloj/laser.tscn")
# функция создания корабля
func create_sxipo(sxipo, objecto):
var cabine = null
var cargo = null
var engine = null
var moduloj = null
if (objecto['resurso']['objId'] == 3):# это корабль "Vostok U2" "Базовый космический корабль"
var enganes = false # временно - указывает, чтоодин двигатель уже ставили
# первый цикл добавляет все модули к кораблю
var max_konektilo = 0 # максимальный номер комплектующей
var tek_konektilo = 1 # текущий номер устанавливаемой в пространстве комплектующей
# на сколько сдвигать по осям
var konektilo_x = 0
var konektilo_y = 0
var konektilo_z = 0
for modulo in objecto['ligilo']['edges']:
if max_konektilo < modulo['node']['konektiloPosedanto']:
max_konektilo = modulo['node']['konektiloPosedanto']
if modulo['node']['tipo']['objId'] == 1: # связь типа 1 - модуль корабля
if modulo['node']['ligilo']['resurso']['objId'] == 4: #"Vostok Модуль Кабины" "Базовый модуль кабины кораблей Vostok"
cabine = base_cabine.instance()
cabine.uuid = modulo['node']['ligilo']['uuid']
# x - в право
cabine.get_node("cabine").translation.y = 2 #вверх
cabine.get_node("cabine").translation.z = 2 # назад
cabine.get_node("cabine").rotate_y(deg2rad(90))
sxipo.get_node("CollisionShape").add_child(cabine)
elif modulo['node']['ligilo']['resurso']['objId'] == 5: #"Vostok Грузовой Модуль" "Базовый грузовой модуль кораблей Vostok"
cargo = base_cargo.instance()
cargo.uuid = modulo['node']['ligilo']['uuid']
cargo.get_node("Cargo").translation.y = 2
cargo.get_node("Cargo").translation.z = 8
cargo.get_node("Cargo").rotate_y(deg2rad(90))
sxipo.get_node("CollisionShape").add_child(cargo)
elif modulo['node']['ligilo']['resurso']['objId'] == 6: #"Vostok Двигатель" "Базовый двигатель кораблей Vostok"
engine = base_engine.instance()
engine.uuid = modulo['node']['ligilo']['uuid']
if enganes:
engine.get_node("engine R").translation.x = -2.5
engine.get_node("engine R").translation.y = 1
engine.get_node("engine R").translation.z = 10
engine.get_node("engine R").rotate_y(deg2rad(270))
engine.get_node("engine R").rotate_x(deg2rad(180))
else:
engine.get_node("engine R").translation.x = 2.5
engine.get_node("engine R").translation.y = 1
engine.get_node("engine R").translation.z = 10
engine.get_node("engine R").rotate_y(deg2rad(90))
sxipo.get_node("CollisionShape").add_child(engine)
enganes = !enganes
elif modulo['node']['ligilo']['resurso']['objId'] == 11: #Универсальный лазер
moduloj = laser.instance()
moduloj.uuid = modulo['node']['ligilo']['uuid']
moduloj.get_node("gun_body").translation.y = 4.2
moduloj.get_node("gun_body").translation.z = 0.6
moduloj.get_node("laser").translation.y = 4.2
moduloj.get_node("laser").translation.z = 0.6
# moduloj.get_node("laser/gun_stem").translation.y = 4.2
moduloj.get_node("laser/gun_stem").translation.z = -0.6
# moduloj.get_node("laser/beam/MeshInstance").translation.y = 4.2
# moduloj.get_node("laser/beam/MeshInstance2").translation.y = 4.2
# moduloj.get_node("laser/end_point/Particles").translation.y = 4.2
sxipo.get_node("CollisionShape").add_child(moduloj)
......@@ -62,7 +62,7 @@ func eniri_kosmostacio(projekto_uuid, tasko_uuid, station_uuid):
' $tipoId:Int '+param+')'+
'{ '+
' redaktuUniversoObjektoLigiloj ( posedantoUuid:$posedantoUuid,' +
' ligiloUuid:$ligiloUuid, tipoId:$tipoId) { message status' +
' ligiloUuid:$ligiloUuid, tipoId:$tipoId, publikigo:true) { message status' +
' universoObjektojLigiloj{ uuid } }' +
mutateProjekto +
'}',
......
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать