Class: UI::GenericBase

Inherits:
SpriteStack show all
Defined in:
scripts/01450 Systems/00000 General/00100 UI Generics/00400 GenericBase.rb

Overview

Generica base UI for most of the scenes

Defined Under Namespace

Classes: ControlButton

Constant Summary collapse

DEFAULT_KEYS =

List of key by default

%i[A X Y B]
BUTTON_TO_HIDE =

List of button to hide when a text is shown

0..2

Constants inherited from SpriteStack

SpriteStack::NO_INITIAL_IMAGE

Instance Attribute Summary collapse

Attributes inherited from SpriteStack

#animated, #data, #moving, #stack, #viewport, #x, #y

Instance Method Summary collapse

Methods inherited from SpriteStack

#[], #add_background, #add_line, #add_text, #anime, #anime_delta_set, #dispose, #each, #execute_anime, #move, #move_to, #opacity, #opacity=, #push, #push_sprite, #set_origin, #set_position, #simple_mouse_in?, #size, #stop_animation, #translate_mouse_coords, #update, #update_animation, #update_position, #visible, #visible=, #with_cache, #with_font, #with_surface, #z, #z=

Constructor Details

#initialize(viewport, texts = [], keys = DEFAULT_KEYS, hide_background_and_button: false) ⇒ GenericBase

Create a new GenericBase UI

Parameters:

  • viewport (Viewport)
  • texts (Array<String>) (defaults to: [])

    list of texts shown in the ControlButton

  • keys (Array<Symbol>) (defaults to: DEFAULT_KEYS)

    list of keys used in the ControlButton

  • hide_background_and_button (Boolean) (defaults to: false)

    tell if we don't want to show the button and its bar



21
22
23
24
25
26
27
28
29
30
# File 'scripts/01450 Systems/00000 General/00100 UI Generics/00400 GenericBase.rb', line 21

def initialize(viewport, texts = [], keys = DEFAULT_KEYS, hide_background_and_button: false)
  super(viewport)
  @keys = keys
  create_graphics
  self.button_texts = texts
  if hide_background_and_button
    @button_background.visible = false
    @ctrl.each {|button| button.visible = false}
  end
end

Instance Attribute Details

#backgroundSprite (readonly)

Returns:



11
12
13
# File 'scripts/01450 Systems/00000 General/00100 UI Generics/00400 GenericBase.rb', line 11

def background
  @background
end

#button_textsArray<String>

Returns the texts shown in the button.

Returns:

  • (Array<String>)

    the texts shown in the button



7
8
9
# File 'scripts/01450 Systems/00000 General/00100 UI Generics/00400 GenericBase.rb', line 7

def button_texts
  @button_texts
end

#ctrlArray<ControlButton> (readonly)

Returns the control buttons.

Returns:



9
10
11
# File 'scripts/01450 Systems/00000 General/00100 UI Generics/00400 GenericBase.rb', line 9

def ctrl
  @ctrl
end

#keysArray<Symbol>

Returns keys shown in the button.

Returns:

  • (Array<Symbol>)

    keys shown in the button



5
6
7
# File 'scripts/01450 Systems/00000 General/00100 UI Generics/00400 GenericBase.rb', line 5

def keys
  @keys
end

Instance Method Details

#hide_win_text

Hide the “win text”



60
61
62
63
64
# File 'scripts/01450 Systems/00000 General/00100 UI Generics/00400 GenericBase.rb', line 60

def hide_win_text
  hidden_button_indexes.each { |i| @ctrl[i].visible = true }
  win_text.visible = false
  @win_text_background.visible = false
end

#show_win_text(text)

Show the “win text” (bottom text giving information to the player)

Parameters:

  • text (String)

    text to show



51
52
53
54
55
56
57
# File 'scripts/01450 Systems/00000 General/00100 UI Generics/00400 GenericBase.rb', line 51

def show_win_text(text)
  hidden_button_indexes.each { |i| @ctrl[i].visible = false }
  text_sprite = win_text
  text_sprite.visible = true
  text_sprite.text = text
  @win_text_background.visible = true
end

#update_background_animation

Update the background animation



73
74
75
# File 'scripts/01450 Systems/00000 General/00100 UI Generics/00400 GenericBase.rb', line 73

def update_background_animation
  @background.set_origin((@background.ox - 0.5) % 16, (@background.oy - 0.5) % 16)
end

#win_text_visible?Boolean

Tell if the win text is visible

Returns:

  • (Boolean)


68
69
70
# File 'scripts/01450 Systems/00000 General/00100 UI Generics/00400 GenericBase.rb', line 68

def win_text_visible?
  @win_text_background&.visible
end