add auto-generated sceleton
This commit is contained in:
parent
2d685ce745
commit
8dfa066715
BIN
data/scene.rgs
BIN
data/scene.rgs
Binary file not shown.
|
|
@ -18,7 +18,7 @@ use fyrox::{
|
||||||
graph::Graph,
|
graph::Graph,
|
||||||
node::Node,
|
node::Node,
|
||||||
},
|
},
|
||||||
script::{ScriptContext, ScriptTrait, Script},
|
script::{ScriptContext, ScriptTrait},
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::Player;
|
use crate::Player;
|
||||||
|
|
@ -42,11 +42,11 @@ const END_MAP_RIGHT: f32 = 25.0;
|
||||||
|
|
||||||
#[derive(Visit, Reflect, Debug, Clone, Default)]
|
#[derive(Visit, Reflect, Debug, Clone, Default)]
|
||||||
pub struct Enemy {
|
pub struct Enemy {
|
||||||
sprite: Handle<Node>,
|
// pub sprite: Handle<Node>,
|
||||||
move_left: bool,
|
move_left: bool,
|
||||||
move_right: bool,
|
move_right: bool,
|
||||||
jump: bool,
|
jump: bool,
|
||||||
animations: Vec<SpriteSheetAnimation>,
|
pub animations: Vec<SpriteSheetAnimation>,
|
||||||
fight: bool,
|
fight: bool,
|
||||||
win: bool,
|
win: bool,
|
||||||
dead: bool,
|
dead: bool,
|
||||||
|
|
@ -262,7 +262,7 @@ impl Enemy {
|
||||||
if x_speed == 0.0 {
|
if x_speed == 0.0 {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let sprite = context.scene.graph.try_get_mut(self.sprite);
|
let sprite = context.scene.graph.try_get_mut(context.handle);
|
||||||
match sprite {
|
match sprite {
|
||||||
Some(sprite_data) => {
|
Some(sprite_data) => {
|
||||||
// It is always a good practice to check whether the handles are valid, at this point we don't know
|
// It is always a good practice to check whether the handles are valid, at this point we don't know
|
||||||
|
|
@ -329,12 +329,35 @@ impl Enemy {
|
||||||
let current_animation = self.animations.get_mut(cur_anim);
|
let current_animation = self.animations.get_mut(cur_anim);
|
||||||
match current_animation {
|
match current_animation {
|
||||||
Some(animation_data) => {
|
Some(animation_data) => {
|
||||||
animation_data.update(context.dt);
|
let mut graph_ctx = context.scene.graph.begin_multi_borrow::<2>();
|
||||||
|
let enemy_rigid_data = match graph_ctx.try_get(context.handle) {
|
||||||
|
Some(rigid_body) => rigid_body,
|
||||||
|
None => return,
|
||||||
|
};
|
||||||
|
for child in enemy_rigid_data.children().iter() {
|
||||||
|
if let Some(enemy) = graph_ctx.try_get(*child) {
|
||||||
|
if !enemy.is_rectangle() {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
let sprite = enemy.cast_mut::<Rectangle>().unwrap();
|
||||||
|
animation_data.update(context.dt);
|
||||||
|
sprite
|
||||||
|
.material()
|
||||||
|
.data_ref()
|
||||||
|
.set_texture(&"diffuseTexture".into(), animation_data.texture())
|
||||||
|
.unwrap();
|
||||||
|
sprite.set_uv_rect(
|
||||||
|
animation_data.current_frame_uv_rect().unwrap_or_default(),
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
animation_data.update(context.dt);
|
||||||
if let Some(sprite) = context
|
if let Some(sprite) = context
|
||||||
.scene
|
.scene
|
||||||
.graph
|
.graph
|
||||||
.try_get_mut(self.sprite)
|
.try_get_mut(context.handle)
|
||||||
.and_then(|n| n.cast_mut::<Rectangle>())
|
.and_then(|n| n.cast_mut::<Rectangle>())
|
||||||
{
|
{
|
||||||
sprite
|
sprite
|
||||||
|
|
@ -364,14 +387,8 @@ impl ScriptTrait for Enemy {
|
||||||
|
|
||||||
// Find and store the Player's collider node handle
|
// Find and store the Player's collider node handle
|
||||||
for child in handle.1.children().iter() {
|
for child in handle.1.children().iter() {
|
||||||
// TODO:
|
|
||||||
self.player_collider = *child;
|
self.player_collider = *child;
|
||||||
break;
|
break;
|
||||||
// println!("1!!!!!!!!!!!!!Collider{:?}", context.scene.graph[*child]);
|
|
||||||
// if let Some(_) = context.scene.graph[*child].cast::<Collider>() {
|
|
||||||
// println!("2!!!!!!!!!!!!!Collider{:?}", *child);
|
|
||||||
// self.player_collider = *child;
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
None => {}
|
None => {}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,129 @@
|
||||||
|
use crate::Enemy;
|
||||||
|
use fyrox::{
|
||||||
|
asset::manager::ResourceManager,
|
||||||
|
core::{
|
||||||
|
algebra::{Vector2, Vector3},
|
||||||
|
impl_component_provider,
|
||||||
|
math::Rect,
|
||||||
|
reflect::prelude::*,
|
||||||
|
sstorage::ImmutableString,
|
||||||
|
uuid_provider,
|
||||||
|
visitor::prelude::*,
|
||||||
|
},
|
||||||
|
generic_animation::spritesheet::{ImageParameters, SpriteSheetAnimation},
|
||||||
|
material::{shader::SamplerFallback, Material, MaterialResource, PropertyValue},
|
||||||
|
resource::texture::Texture,
|
||||||
|
scene::{
|
||||||
|
base::BaseBuilder,
|
||||||
|
collider::InteractionGroups,
|
||||||
|
dim2::{
|
||||||
|
collider::{CapsuleShape, ColliderBuilder, ColliderShape},
|
||||||
|
rectangle::RectangleBuilder,
|
||||||
|
rigidbody::RigidBodyBuilder,
|
||||||
|
},
|
||||||
|
graph::Graph,
|
||||||
|
rigidbody::RigidBodyType,
|
||||||
|
transform::TransformBuilder,
|
||||||
|
},
|
||||||
|
script::{Script, ScriptContext, ScriptTrait},
|
||||||
|
};
|
||||||
|
|
||||||
|
impl_component_provider!(EnemySpawn,);
|
||||||
|
uuid_provider!(EnemySpawn = "b5671d19-9f1a-4286-8486-add4ebaadaec");
|
||||||
|
#[derive(Visit, Reflect, Debug, Clone, Default)]
|
||||||
|
pub struct EnemySpawn {
|
||||||
|
x: f32,
|
||||||
|
y: f32,
|
||||||
|
enemy: Enemy,
|
||||||
|
}
|
||||||
|
impl EnemySpawn {
|
||||||
|
pub fn new() -> Self {
|
||||||
|
return EnemySpawn::default();
|
||||||
|
}
|
||||||
|
pub fn spawn_enemy(&self, graph: &mut Graph, resource_manager: &ResourceManager) {
|
||||||
|
// TODO: add with_build
|
||||||
|
let mut enemy = Enemy::default();
|
||||||
|
enemy.x = 0.0;
|
||||||
|
enemy.y = -4.0;
|
||||||
|
let x = enemy.x;
|
||||||
|
let y = enemy.y;
|
||||||
|
let mut material = Material::standard_2d();
|
||||||
|
let idle = resource_manager.request::<Texture>(
|
||||||
|
"assets/data/characters/skeleton/Skeleton_Warrior/Idle.png".to_owned(),
|
||||||
|
);
|
||||||
|
let mut idle_animation = SpriteSheetAnimation::new_from_image_parameters(ImageParameters {
|
||||||
|
width: 896,
|
||||||
|
height: 128,
|
||||||
|
frame_width: 118,
|
||||||
|
frame_height: 128,
|
||||||
|
first_frame: 1,
|
||||||
|
last_frame: 5,
|
||||||
|
column_major: false,
|
||||||
|
});
|
||||||
|
idle_animation.set_texture(Some(idle.clone()));
|
||||||
|
idle_animation.set_looping(true);
|
||||||
|
idle_animation.set_speed(10.);
|
||||||
|
idle_animation.play();
|
||||||
|
enemy.animations = vec![
|
||||||
|
idle_animation.clone(),
|
||||||
|
idle_animation.clone(),
|
||||||
|
idle_animation.clone(),
|
||||||
|
idle_animation,
|
||||||
|
];
|
||||||
|
material
|
||||||
|
.set_property(
|
||||||
|
&ImmutableString::new("diffuseTexture"),
|
||||||
|
PropertyValue::Sampler {
|
||||||
|
value: Some(idle.clone()),
|
||||||
|
fallback: SamplerFallback::Normal,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
.unwrap();
|
||||||
|
let shape = ColliderShape::Capsule(CapsuleShape {
|
||||||
|
begin: Vector2::new(0.0, -0.2),
|
||||||
|
end: Vector2::new(0.0, 0.1),
|
||||||
|
radius: 0.3,
|
||||||
|
});
|
||||||
|
let rb_transform = TransformBuilder::new()
|
||||||
|
.with_local_position(Vector3::new(x, y, 0.0))
|
||||||
|
.with_local_scale(Vector3::new(2.0, 2.0, 1.0))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
RigidBodyBuilder::new(
|
||||||
|
BaseBuilder::new()
|
||||||
|
.with_children(&[
|
||||||
|
// Collider to prevent player from moving past boundary
|
||||||
|
RectangleBuilder::new(BaseBuilder::new())
|
||||||
|
.with_material(MaterialResource::new_ok(Default::default(), material))
|
||||||
|
// Sprite is located in top left corner of sprite sheet
|
||||||
|
.with_uv_rect(Rect::new(0.0, 0.3, 0.13, 0.8))
|
||||||
|
.build(graph),
|
||||||
|
ColliderBuilder::new(BaseBuilder::new())
|
||||||
|
.with_shape(shape)
|
||||||
|
.with_collision_groups(InteractionGroups::default())
|
||||||
|
.with_solver_groups(InteractionGroups::default())
|
||||||
|
.build(graph),
|
||||||
|
])
|
||||||
|
// Optional, set name of tile
|
||||||
|
.with_name(format!("Sceleton ({x}, {y})",))
|
||||||
|
// Set position of tile
|
||||||
|
.with_local_transform(rb_transform)
|
||||||
|
.with_script(Script::new(enemy)),
|
||||||
|
)
|
||||||
|
.with_mass(1.0)
|
||||||
|
// Turn off gravity for tile
|
||||||
|
.with_gravity_scale(1.)
|
||||||
|
.with_lin_damping(2.0)
|
||||||
|
// Set tile to be static and not rotate
|
||||||
|
.with_rotation_locked(true)
|
||||||
|
.with_body_type(RigidBodyType::Dynamic)
|
||||||
|
.build(graph);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
impl ScriptTrait for EnemySpawn {
|
||||||
|
fn on_init(&mut self, context: &mut ScriptContext) {
|
||||||
|
let resource_manager: &ResourceManager = &context.resource_manager;
|
||||||
|
self.spawn_enemy(&mut context.scene.graph, resource_manager);
|
||||||
|
// self.enemy.on_init(context);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -30,9 +30,8 @@ impl PluginConstructor for GameConstructor {
|
||||||
fn register(&self, context: PluginRegistrationContext) {
|
fn register(&self, context: PluginRegistrationContext) {
|
||||||
// Register your scripts here.
|
// Register your scripts here.
|
||||||
let script_constructors = &context.serialization_context.script_constructors;
|
let script_constructors = &context.serialization_context.script_constructors;
|
||||||
script_constructors.add::<EnemySpawn>("EnemySpanw");
|
|
||||||
script_constructors.add::<Player>("Player");
|
|
||||||
script_constructors.add::<Enemy>("Enemy");
|
script_constructors.add::<Enemy>("Enemy");
|
||||||
|
script_constructors.add::<Player>("Player");
|
||||||
}
|
}
|
||||||
|
|
||||||
fn create_instance(&self, scene_path: Option<&str>, context: PluginContext) -> Box<dyn Plugin> {
|
fn create_instance(&self, scene_path: Option<&str>, context: PluginContext) -> Box<dyn Plugin> {
|
||||||
|
|
@ -110,7 +109,7 @@ impl Plugin for Game {
|
||||||
|
|
||||||
let graph: &mut Graph = &mut context.scenes[self.scene].graph;
|
let graph: &mut Graph = &mut context.scenes[self.scene].graph;
|
||||||
let resource_manager: &ResourceManager = &context.resource_manager;
|
let resource_manager: &ResourceManager = &context.resource_manager;
|
||||||
|
|
||||||
build_map(graph, resource_manager);
|
build_map(graph, resource_manager);
|
||||||
|
EnemySpawn::new().spawn_enemy(graph, resource_manager);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
842
settings.ron
842
settings.ron
|
|
@ -322,199 +322,13 @@
|
||||||
),
|
),
|
||||||
node_infos: {
|
node_infos: {
|
||||||
(
|
(
|
||||||
index: 7,
|
index: 93,
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 74,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 40,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 39,
|
|
||||||
generation: 1,
|
generation: 1,
|
||||||
): (
|
): (
|
||||||
is_expanded: false,
|
is_expanded: false,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
index: 59,
|
index: 50,
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 12,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 51,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 32,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 17,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 60,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 38,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 69,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 86,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 90,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 14,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 18,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 92,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 21,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 1,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 91,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 42,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 20,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 27,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 29,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 57,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 52,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 30,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 81,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 35,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 71,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 2,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 4,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 48,
|
|
||||||
generation: 1,
|
generation: 1,
|
||||||
): (
|
): (
|
||||||
is_expanded: true,
|
is_expanded: true,
|
||||||
|
|
@ -525,228 +339,12 @@
|
||||||
): (
|
): (
|
||||||
is_expanded: true,
|
is_expanded: true,
|
||||||
),
|
),
|
||||||
(
|
|
||||||
index: 22,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 83,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 49,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 0,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 72,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 87,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 56,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 66,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 94,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 43,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 31,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 63,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 82,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 10,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 46,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 80,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 93,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 6,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 95,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 8,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 3,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 58,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 15,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 5,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 44,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 26,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 36,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 89,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 13,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 65,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 78,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 54,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
(
|
||||||
index: 84,
|
index: 84,
|
||||||
generation: 1,
|
generation: 1,
|
||||||
): (
|
): (
|
||||||
is_expanded: false,
|
is_expanded: false,
|
||||||
),
|
),
|
||||||
(
|
|
||||||
index: 25,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 28,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 24,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 41,
|
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
(
|
||||||
index: 34,
|
index: 34,
|
||||||
generation: 1,
|
generation: 1,
|
||||||
|
|
@ -754,13 +352,7 @@
|
||||||
is_expanded: true,
|
is_expanded: true,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
index: 62,
|
index: 20,
|
||||||
generation: 1,
|
|
||||||
): (
|
|
||||||
is_expanded: true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
index: 23,
|
|
||||||
generation: 1,
|
generation: 1,
|
||||||
): (
|
): (
|
||||||
is_expanded: true,
|
is_expanded: true,
|
||||||
|
|
@ -772,22 +364,22 @@
|
||||||
is_expanded: false,
|
is_expanded: false,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
index: 47,
|
index: 71,
|
||||||
generation: 1,
|
generation: 1,
|
||||||
): (
|
): (
|
||||||
is_expanded: true,
|
is_expanded: true,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
index: 53,
|
index: 28,
|
||||||
generation: 1,
|
generation: 1,
|
||||||
): (
|
): (
|
||||||
is_expanded: true,
|
is_expanded: false,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
index: 50,
|
index: 72,
|
||||||
generation: 1,
|
generation: 1,
|
||||||
): (
|
): (
|
||||||
is_expanded: true,
|
is_expanded: false,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
index: 55,
|
index: 55,
|
||||||
|
|
@ -796,19 +388,19 @@
|
||||||
is_expanded: true,
|
is_expanded: true,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
index: 11,
|
index: 81,
|
||||||
generation: 1,
|
generation: 1,
|
||||||
): (
|
): (
|
||||||
is_expanded: false,
|
is_expanded: false,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
index: 77,
|
index: 63,
|
||||||
generation: 1,
|
generation: 1,
|
||||||
): (
|
): (
|
||||||
is_expanded: true,
|
is_expanded: false,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
index: 16,
|
index: 92,
|
||||||
generation: 1,
|
generation: 1,
|
||||||
): (
|
): (
|
||||||
is_expanded: true,
|
is_expanded: true,
|
||||||
|
|
@ -820,7 +412,133 @@
|
||||||
is_expanded: false,
|
is_expanded: false,
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
index: 9,
|
index: 56,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 47,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 77,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 66,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: false,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 22,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: false,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 44,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 62,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 42,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: false,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 52,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 82,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 83,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 39,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: false,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 17,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: false,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 38,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 65,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 21,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: false,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 41,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 5,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 35,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 26,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 54,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 46,
|
||||||
generation: 1,
|
generation: 1,
|
||||||
): (
|
): (
|
||||||
is_expanded: false,
|
is_expanded: false,
|
||||||
|
|
@ -831,12 +549,294 @@
|
||||||
): (
|
): (
|
||||||
is_expanded: true,
|
is_expanded: true,
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
index: 78,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: false,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 48,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 43,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: false,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 59,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 53,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 40,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 13,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 32,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 16,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 25,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: false,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 7,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 11,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: false,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 74,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 51,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 36,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: false,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 15,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 49,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: false,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 1,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 9,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: false,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 80,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 18,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 30,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 3,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 60,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: false,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 94,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 8,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: false,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 0,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 10,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
(
|
(
|
||||||
index: 75,
|
index: 75,
|
||||||
generation: 1,
|
generation: 1,
|
||||||
): (
|
): (
|
||||||
is_expanded: false,
|
is_expanded: false,
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
index: 90,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: false,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 31,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 27,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: false,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 6,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 58,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 14,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 23,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 12,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: false,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 91,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 95,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 89,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 87,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: false,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 57,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: false,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 29,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 86,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 24,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: false,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 4,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 2,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: true,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
index: 69,
|
||||||
|
generation: 1,
|
||||||
|
): (
|
||||||
|
is_expanded: false,
|
||||||
|
),
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue