Открыть боковую панель
Teknokomo
universo-godot
Коммиты
08d7a616
Коммит
08d7a616
создал
Май 19, 2020
по автору
magcourier
Просмотр файлов
корабль в станции собран
владелец
3522716e
Изменения
9
Скрыть пробелы
Построчно
Рядом
blokoj/kosmo/skriptoj/space.gd
Просмотр файла @
08d7a616
...
...
@@ -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'
],
...
...
blokoj/kosmostacioj/skriptoj/CapKosmostacio.gd
Просмотр файла @
08d7a616
...
...
@@ -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/s
cen
oj/moduloj/
engines.tscn
"
)
const
base_cargo
=
preload
(
"res://blokoj/kosmosxipoj/scenoj/moduloj/cargo.tscn"
)
const
sxipo
=
preload
(
"res://blokoj/kosmosxipoj/s
kript
oj/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
# в сторону от центра
...
...
blokoj/kosmosxipoj/scenoj/moduloj/cabine.tscn
Просмотр файла @
08d7a616
[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 )
blokoj/kosmosxipoj/scenoj/moduloj/cargo.tscn
Просмотр файла @
08d7a616
[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 )
blokoj/kosmosxipoj/scenoj/moduloj/engine.tscn
Просмотр файла @
08d7a616
[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 )
blokoj/kosmosxipoj/scenoj/moduloj/laser.tscn
Просмотр файла @
08d7a616
[gd_scene load_steps=1
3
format=2]
[gd_scene load_steps=1
4
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 )
blokoj/kosmosxipoj/scenoj/sxipo_fremdulo.tscn
0 → 100644
Просмотр файла @
08d7a616
[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 )
blokoj/kosmosxipoj/skriptoj/moduloj/sxipo.gd
0 → 100644
Просмотр файла @
08d7a616
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
)
kerno/menuo/skriptoj/queries.gd
Просмотр файла @
08d7a616
...
...
@@ -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.
Сначала завершите редактирование этого сообщения!
Отмена
Пожалуйста,
зарегистрируйтесь
или
войдите
чтобы прокомментировать