// Code generated by `mgstudio gen`. DO NOT EDIT.
// Package dir: /Users/zhengyu/.codex/worktrees/8038/moon-game-studio/mgstudio-engine/ui
// Sources: ui.mbt

///|
/// ECS component types discovered via `#ecs.component`.
pub let ecs_components : Array[String] = [
  "Node", "Label", "Button", "UiRoot", "UiText", "ZIndex", "Outline", "UiImage",
  "UiLayout", "BoxShadow", "ImageNode", "BorderColor", "ContentSize", "FocusPolicy",
  "Interaction", "UiAntiAlias", "BorderRadius", "ButtonColors", "GlobalZIndex", "ImageNodeSize",
  "CalculatedClip", "ScrollPosition", "BackgroundColor", "AccessibilityLabel", "UiBoxShadowSamples",
  "RelativeCursorPosition",
]

///|
/// ECS resource types discovered via `#ecs.resource`.
pub let ecs_resources : Array[String] = ["UiScale", "UiStack", "UiContext"]

///|
pub(open) trait Has_Node {
  get_node_store(self : Self) -> @core.ComponentStore[Node]
}

///|
pub(open) trait Has_Label {
  get_label_store(self : Self) -> @core.ComponentStore[Label]
}

///|
pub(open) trait Has_Button {
  get_button_store(self : Self) -> @core.ComponentStore[Button]
}

///|
pub(open) trait Has_UiRoot {
  get_ui_root_store(self : Self) -> @core.ComponentStore[UiRoot]
}

///|
pub(open) trait Has_UiText {
  get_ui_text_store(self : Self) -> @core.ComponentStore[UiText]
}

///|
pub(open) trait Has_ZIndex {
  get_z_index_store(self : Self) -> @core.ComponentStore[ZIndex]
}

///|
pub(open) trait Has_Outline {
  get_outline_store(self : Self) -> @core.ComponentStore[Outline]
}

///|
pub(open) trait Has_UiImage {
  get_ui_image_store(self : Self) -> @core.ComponentStore[UiImage]
}

///|
pub(open) trait Has_UiLayout {
  get_ui_layout_store(self : Self) -> @core.ComponentStore[UiLayout]
}

///|
pub(open) trait Has_BoxShadow {
  get_box_shadow_store(self : Self) -> @core.ComponentStore[BoxShadow]
}

///|
pub(open) trait Has_ImageNode {
  get_image_node_store(self : Self) -> @core.ComponentStore[ImageNode]
}

///|
pub(open) trait Has_BorderColor {
  get_border_color_store(self : Self) -> @core.ComponentStore[BorderColor]
}

///|
pub(open) trait Has_ContentSize {
  get_content_size_store(self : Self) -> @core.ComponentStore[ContentSize]
}

///|
pub(open) trait Has_FocusPolicy {
  get_focus_policy_store(self : Self) -> @core.ComponentStore[FocusPolicy]
}

///|
pub(open) trait Has_Interaction {
  get_interaction_store(self : Self) -> @core.ComponentStore[Interaction]
}

///|
pub(open) trait Has_UiAntiAlias {
  get_ui_anti_alias_store(self : Self) -> @core.ComponentStore[UiAntiAlias]
}

///|
pub(open) trait Has_BorderRadius {
  get_border_radius_store(self : Self) -> @core.ComponentStore[BorderRadius]
}

///|
pub(open) trait Has_ButtonColors {
  get_button_colors_store(self : Self) -> @core.ComponentStore[ButtonColors]
}

///|
pub(open) trait Has_GlobalZIndex {
  get_global_z_index_store(self : Self) -> @core.ComponentStore[GlobalZIndex]
}

///|
pub(open) trait Has_ImageNodeSize {
  get_image_node_size_store(self : Self) -> @core.ComponentStore[ImageNodeSize]
}

///|
pub(open) trait Has_CalculatedClip {
  get_calculated_clip_store(self : Self) -> @core.ComponentStore[CalculatedClip]
}

///|
pub(open) trait Has_ScrollPosition {
  get_scroll_position_store(self : Self) -> @core.ComponentStore[ScrollPosition]
}

///|
pub(open) trait Has_BackgroundColor {
  get_background_color_store(self : Self) -> @core.ComponentStore[
    BackgroundColor,
  ]
}

///|
pub(open) trait Has_AccessibilityLabel {
  get_accessibility_label_store(self : Self) -> @core.ComponentStore[
    AccessibilityLabel,
  ]
}

///|
pub(open) trait Has_UiBoxShadowSamples {
  get_ui_box_shadow_samples_store(self : Self) -> @core.ComponentStore[
    UiBoxShadowSamples,
  ]
}

///|
pub(open) trait Has_RelativeCursorPosition {
  get_relative_cursor_position_store(self : Self) -> @core.ComponentStore[
    RelativeCursorPosition,
  ]
}

///|
pub(open) trait HasRes_UiScale {
  get_ui_scale_resource(self : Self) -> @core.Resource[UiScale]
}

///|
pub(open) trait HasRes_UiStack {
  get_ui_stack_resource(self : Self) -> @core.Resource[UiStack]
}

///|
pub(open) trait HasRes_UiContext {
  get_ui_context_resource(self : Self) -> @core.Resource[UiContext]
}