fn config() { let config = SceneConfig(); config.show_starfield(true); config.show_phys(false); return config } fn init(state) { let se_box = SpriteBuilder( "se_box", "ui::outfitterbox", Rect( -1.0, -1.0, 202.345, 133.409, SpriteAnchor::SouthWest, SpriteAnchor::SouthWest ) ); let exit_text = TextBoxBuilder( "exit_text", 10.0, 10.0, Rect( 122.71, 48.0, 51.0, 12.0, SpriteAnchor::NorthWest, SpriteAnchor::SouthWest ), Color(1.0, 1.0, 1.0, 1.0) ); exit_text.set_text("Exit"); exit_text.font_serif(); exit_text.align_center(); let exit_button = SpriteBuilder( "exit_button", "ui::button", Rect( 113.35, 52.0, 69.8, 18.924, SpriteAnchor::NorthWest, SpriteAnchor::SouthWest ) ); let ship_bg = SpriteBuilder( "ship_bg", "ui::outfitter-ship-bg", Rect( 16.0, -16.0, 190.0, 353.0, SpriteAnchor::NorthWest, SpriteAnchor::NorthWest ) ); let ship_thumb = SpriteBuilder( "ship_thumb", "icon::gypsum", Rect( 111.0, -95.45, 90.0, 90.0, SpriteAnchor::Center, SpriteAnchor::NorthWest ) ); let ship_name = TextBoxBuilder( "ship_name", 10.0, 10.0, Rect( 111.0, -167.27, 145.0, 10.0, SpriteAnchor::Center, SpriteAnchor::NorthWest ), Color(1.0, 1.0, 1.0, 1.0) ); ship_name.set_text("Hyperion"); ship_name.font_serif(); ship_name.align_center(); let ship_type = TextBoxBuilder( "ship_type", 7.0, 8.5, Rect( 111.0, -178.0, 145.0, 8.5, SpriteAnchor::Center, SpriteAnchor::NorthWest ), Color(0.7, 0.7, 0.7, 1.0) ); if state.player_ship().is_some() { ship_type.set_text(state.player_ship().name()); } else { ship_type.set_text("ERR: SHIP IS NONE"); } ship_type.font_sansserif(); ship_type.align_center(); let ship_stats = TextBoxBuilder( "ship_stats", 7.0, 8.5, Rect( 38.526, -192.332, 144.948, 154.5, SpriteAnchor::NorthWest, SpriteAnchor::NorthWest, ), Color(1.0, 1.0, 1.0, 1.0) ); ship_stats.set_text("Earth"); ship_stats.font_monospace(); let outfit_bg = SpriteBuilder( "outfit_bg", "ui::outfitter-outfit-bg", Rect( -16.0, -16.0, 300.0, 480.0, SpriteAnchor::NorthEast, SpriteAnchor::NorthEast ) ); let outfit_thumb = SpriteBuilder( "outfit_thumb", "icon::engine", Rect( -166.0, -109.0, 90.0, 90.0, SpriteAnchor::Center, SpriteAnchor::NorthEast ) ); let outfit_name = TextBoxBuilder( "outfit_name", 16.0, 16.0, Rect( -312.0, -20.0, 200.0, 16.0, SpriteAnchor::NorthWest, SpriteAnchor::NorthEast, ), Color(1.0, 1.0, 1.0, 1.0) ); outfit_name.set_text("Earth"); outfit_name.font_serif(); outfit_name.weight_bold(); let outfit_desc = TextBoxBuilder( "outfit_desc", 7.0, 8.5, Rect( -166.0, -219.0, 260.0, 78.0, SpriteAnchor::Center, SpriteAnchor::NorthEast, ), Color(1.0, 1.0, 1.0, 1.0) ); outfit_desc.set_text("Earth"); outfit_desc.font_serif(); let outfit_stats = TextBoxBuilder( "outfit_stats", 7.0, 8.5, Rect( -295.0, -271.0, 164.0, 216.0, SpriteAnchor::NorthWest, SpriteAnchor::NorthEast, ), Color(1.0, 1.0, 1.0, 1.0) ); outfit_stats.set_text("Earth"); ship_stats.font_monospace(); return [ ship_bg, ship_thumb, ship_name, ship_type, ship_stats, outfit_bg, outfit_thumb, outfit_name, outfit_desc, outfit_stats, se_box, exit_button, exit_text ]; } fn event(state, event) { if type_of(event) == "MouseHoverEvent" { let element = event.element(); if element.has_name("exit_button") { if event.is_enter() { element.take_edge("on:top", 0.1); } else { element.take_edge("off:top", 0.1); } } return; } if type_of(event) == "MouseClickEvent" { if !event.is_down() { return SceneAction::None; } let element = event.element(); if element.has_name("exit_button") { return SceneAction::GoTo("landed"); } return; } if type_of(event) == "PlayerShipStateEvent" { if !state.player_ship().is_landed() { return SceneAction::GoTo("flying"); } return; } }