summaryrefslogtreecommitdiffhomepage
path: root/helpers/01_component.rb
diff options
context:
space:
mode:
Diffstat (limited to 'helpers/01_component.rb')
-rw-r--r--helpers/01_component.rb143
1 files changed, 69 insertions, 74 deletions
diff --git a/helpers/01_component.rb b/helpers/01_component.rb
index ca4f86d..9ea90d9 100644
--- a/helpers/01_component.rb
+++ b/helpers/01_component.rb
@@ -1,101 +1,96 @@
-class Helper
- class BaseComponent
- class <<self
- def id
- @id ||= ID.create_new_id Helper::ComponentHelper.underscore(ancestors[0].name.split('::').last)
- #@id ||= ID.send(Helper::ComponentHelper.underscore(ancestors[0].name.split('::').last))
- end
+class FelFlame
+ class Helper
+ class BaseComponent
+ class <<self
+ def signature
+ @signature ||= FelFlame::Signature.create_new_signature FelFlame::Helper::ComponentHelper.underscore(ancestors[0].name.split('::').last)
+ end
- def data
- @data ||= {}
- end
+ def data
+ @data ||= {}
+ end
- def add(entity_id)
- data[entity_id] = new
- end
+ def add(entity_id)
+ data[entity_id] = new
+ end
- def delete(entity_id)
- data.delete entity_id
+ def delete(entity_id)
+ data.delete entity_id
+ end
end
- end
- def self.inherited(subclass) #TODO this should automagically create the ID(handle it with ID)
- #@id = ID.send(subclass)
- # maybe overwrite this?
- end
-
- def set(**opts)
- opts.each do |key, value|
- send "#{key}=", value
+ def set(**opts)
+ opts.each do |key, value|
+ send "#{key}=", value
+ end
end
- end
- def create_data(name, default = nil)
- #TODO fill this out
- end
+ #def create_data(name, default = nil)
+ # #TODO fill this out
+ #end
- def get #TODO maybe optimize removeing the @ symbol | doesnt get defaults
- instance_variables.each_with_object({}) do |key, final|
- final[key.to_s.delete_prefix('@').to_sym] = instance_variable_get(key)
+ def get #TODO maybe optimize removeing the @ symbol
+ instance_variables.each_with_object({}) do |key, final|
+ final[key.to_s.delete_prefix('@').to_sym] = instance_variable_get(key)
+ end
end
- end
- def dump #TODO already does what get does?
- # should return a json or hash of all data in this component
+ def dump #TODO Needs to get id and stuff?
+ # should return a json or hash of all data in this component
+ end
end
- end
- class Level < Helper::BaseComponent
- class <<self
- def data
- @data ||= { add: [], remove: [], grid: Helper::Array2D.new }
- end
+ class Level < FelFlame::Helper::BaseComponent
+ class <<self
+ def data
+ @data ||= { add: [], remove: [], grid: FelFlame::Helper::Array2D.new }
+ end
- def add(entity_id)
- super
- data[:add].push entity_id
- end
+ def add(entity_id)
+ super
+ data[:add].push entity_id
+ end
- def remove(entity_id)
- data[:remove].push entity_id
- super
+ def remove(entity_id)
+ data[:remove].push entity_id
+ super
+ end
end
end
- end
- class Array2D < Array
- def [](val)
- unless val.nil?
- return self[val] = [] if super.nil?
+ class Array2D < Array
+ def [](val)
+ unless val.nil?
+ return self[val] = [] if super.nil?
+ end
+ super
end
- super
end
- end
-
- module ComponentHelper
- class <<self
- def up? char
- char == char.upcase
- end
+ module ComponentHelper
+ class <<self
+ def up? char
+ char == char.upcase
+ end
- def down? char
- char == char.downcase
- end
+ def down? char
+ char == char.downcase
+ end
- def underscore(input)
- output = input[0].downcase
- (1...(input.length - 1)).each do |iter|
- if down?(input[iter]) && up?(input[iter + 1])
- output += "#{input[iter].downcase}_"
- elsif up?(input[iter - 1]) && up?(input[iter]) && down?(input[iter + 1])
- output += "_#{input[iter].downcase}"
- else
- output += input[iter].downcase
+ def underscore(input)
+ output = input[0].downcase
+ (1...(input.length - 1)).each do |iter|
+ if down?(input[iter]) && up?(input[iter + 1])
+ output += "#{input[iter].downcase}_"
+ elsif up?(input[iter - 1]) && up?(input[iter]) && down?(input[iter + 1])
+ output += "_#{input[iter].downcase}"
+ else
+ output += input[iter].downcase
+ end
end
+ output += input[-1].downcase unless input.length == 1
+ output
end
- output += input[-1].downcase unless input.length == 1
- output
end
end
end