Class: Miyako::MapEventManager
Overview
マップ上のイベント全体を管理するクラス
Map/FixedMapクラス内で使用する 使い方:
(1)インスタンスを生成する
em = MapEventManager.new
(2)MapEventクラスとIDを登録する
(例)MapEventモジュールをmixinしたクラスXを、ID=0のイベントとして登録
em.add(0, X)
(3)Map/FixedMapクラスインスタンス生成時に引数として渡す
(注)登録するIDは、イベントレイヤー上の番号と対応しておくこと
Instance Method Summary collapse
-
#[](id) ⇒ Object
イベント番号に関連づけれられているイベントクラスを返す 引数で渡した番号に対応するイベントクラス(クラスそのもの)を返す 引数idが未登録のイベント番号だったときはnilが返る id:: イベント番号 返却値:: イベントクラス(classクラスインスタンス)もしくはnil.
-
#add(id, event) ⇒ Object
イベントクラスをマップに追加登録する id:: イベント番号(0以上の整数) event:: イベントクラス。クラスのインスタンスではないことに注意! 返却値:: 自分自身を返す.
-
#clear ⇒ Object
すべての登録済みイベントクラスの登録を解除する.
-
#create(id, x = 0, y = 0) ⇒ Object
イベントのインスタンスを生成する(番号指定) インスタンス生成と同時に、マップ上の座標を渡して初期位置を設定する 登録していないIDを指定するとエラーになる.
- #dispose ⇒ Object
-
#include?(id) ⇒ Boolean
イベントが登録されているかを確認する 引数で渡した番号に対応するイベントクラスが登録されているかどうかを確認する idに関連づけられたイベントクラスが登録されている時はtrueを返す id:: イベント番号 返却値:: true/false.
-
#initialize ⇒ MapEventManager
constructor
インスタンスを生成する map_obj:: Managerが属するMap/FixedMapクラスのインスタンス 返却値:: 生成されたインスタンス.
-
#initialize_copy(obj) ⇒ Object
:nodoc:.
-
#set(map) ⇒ Object
:nodoc:.
-
#to_id(event) ⇒ Object
イベントクラスに関連づけれられているイベント番号を返す 引数で渡したイベントクラスに対応するイベント番号を返す 引数eventが未登録のイベント番号だったときはnilが返る event:: イベントクラス 返却値:: イベント番号(0以上の整数)もしくはnil.
Constructor Details
#initialize ⇒ MapEventManager
インスタンスを生成する
- map_obj
-
Managerが属するMap/FixedMapクラスのインスタンス
- 返却値
-
生成されたインスタンス
47 48 49 50 |
# File 'lib/Miyako/API/map_event.rb', line 47 def initialize @map = nil @id2event = Hash.new end |
Instance Method Details
#[](id) ⇒ Object
イベント番号に関連づけれられているイベントクラスを返す
引数で渡した番号に対応するイベントクラス(クラスそのもの)を返す 引数idが未登録のイベント番号だったときはnilが返る
- id
-
イベント番号
- 返却値
-
イベントクラス(classクラスインスタンス)もしくはnil
75 76 77 |
# File 'lib/Miyako/API/map_event.rb', line 75 def [](id) return @id2event[id] end |
#add(id, event) ⇒ Object
イベントクラスをマップに追加登録する
- id
-
イベント番号(0以上の整数)
- event
-
イベントクラス。クラスのインスタンスではないことに注意!
- 返却値
-
自分自身を返す
65 66 67 68 |
# File 'lib/Miyako/API/map_event.rb', line 65 def add(id, event) @id2event[id] = event return self end |
#clear ⇒ Object
すべての登録済みイベントクラスの登録を解除する
113 114 115 |
# File 'lib/Miyako/API/map_event.rb', line 113 def clear @id2event.keys.each{|k| @id2event[k] = nil } end |
#create(id, x = 0, y = 0) ⇒ Object
イベントのインスタンスを生成する(番号指定)
インスタンス生成と同時に、マップ上の座標を渡して初期位置を設定する 登録していないIDを指定するとエラーになる
設置は、マップ上の座標に設置する。表示上の座標ではない事に注意。
- id
-
イベントクラスと登録した際の番号
- x
-
イベントを設置する位置(X座標)
- y
-
イベントを設置する位置(Y座標)
- 返却値
-
生成したインスタンス
106 107 108 109 110 |
# File 'lib/Miyako/API/map_event.rb', line 106 def create(id, x = 0, y = 0) raise MiyakoError, "This MapEventManager instance is not set Map/FixedMap instance!" unless @map raise MiyakoError, "Unknown Map Event ID! : #{id}" unless include?(id) return @id2event[id].new(@map, x, y) end |
#dispose ⇒ Object
117 118 119 120 121 |
# File 'lib/Miyako/API/map_event.rb', line 117 def dispose @map = nil @id2event.clear @id2event = nil end |
#include?(id) ⇒ Boolean
イベントが登録されているかを確認する
引数で渡した番号に対応するイベントクラスが登録されているかどうかを確認する idに関連づけられたイベントクラスが登録されている時はtrueを返す
- id
-
イベント番号
- 返却値
-
true/false
93 94 95 |
# File 'lib/Miyako/API/map_event.rb', line 93 def include?(id) return @id2event.has_key?(id) end |
#initialize_copy(obj) ⇒ Object
:nodoc:
52 53 54 55 |
# File 'lib/Miyako/API/map_event.rb', line 52 def initialize_copy(obj) #:nodoc: @map = @map.dup if @map @id2event = @id2event.dup end |
#set(map) ⇒ Object
:nodoc:
57 58 59 |
# File 'lib/Miyako/API/map_event.rb', line 57 def set(map) #:nodoc: @map = map end |
#to_id(event) ⇒ Object
イベントクラスに関連づけれられているイベント番号を返す
引数で渡したイベントクラスに対応するイベント番号を返す 引数eventが未登録のイベント番号だったときはnilが返る
- event
-
イベントクラス
- 返却値
-
イベント番号(0以上の整数)もしくはnil
84 85 86 |
# File 'lib/Miyako/API/map_event.rb', line 84 def to_id(event) return @id2event.key(event) end |