From 866ed5e2ca86d2f780492f01c30b3350037d3f7c Mon Sep 17 00:00:00 2001 From: realtradam Date: Thu, 3 Feb 2022 04:18:07 -0500 Subject: added new group method for entity manager --- docs/FelFlame/Entities.html | 792 -------------------------------------------- 1 file changed, 792 deletions(-) delete mode 100644 docs/FelFlame/Entities.html (limited to 'docs/FelFlame/Entities.html') diff --git a/docs/FelFlame/Entities.html b/docs/FelFlame/Entities.html deleted file mode 100644 index 37a9d84..0000000 --- a/docs/FelFlame/Entities.html +++ /dev/null @@ -1,792 +0,0 @@ - - - - - - - Class: FelFlame::Entities - - — Documentation by YARD 0.9.26 - - - - - - - - - - - - - - - - - - - -
- - -

Class: FelFlame::Entities - - - -

-
- -
-
Inherits:
-
- Object - -
    -
  • Object
  • - - - -
- show all - -
-
- - - - - - - - - - - -
-
Defined in:
-
lib/felflame.rb,
- lib/felflame/entity_manager.rb
-
-
- -
- -

Overview

-
- -

Creates and manages Entities. Entities are just collections of Components. You can use array methods directly on this class to access Entities.

- - -
-
-
- - -
- - - - - - - -

- Instance Method Summary - collapse -

- - - - -
-

Constructor Details

- -
-

- - #initialize(*components) ⇒ Entity - - - - - -

-
- -

Creating a new Entity

- - -
-
-
-

Parameters:

-
    - -
  • - - components - - - (Components) - - - - — -
    -

    Can be any number of components, identical duplicates will be automatically purged however different components from the same component manager are allowed.

    -
    - -
  • - -
- - -
- - - - -
-
-
-
-8
-9
-10
-11
-12
-
-
# File 'lib/felflame/entity_manager.rb', line 8
-
-def initialize(*components)
-  # Add each component
-  add(*components)
-  self.class._data.push self
-end
-
-
- -
- - -
-

Instance Method Details

- - -
-

- - #add(*components_to_add) ⇒ Boolean - - - - - -

-
- -

Add any number components to the Entity.

- - -
-
-
-

Parameters:

-
    - -
  • - - components_to_add - - - (Component) - - - - — -
    -

    Any number of components created from any component manager

    -
    - -
  • - -
- -

Returns:

-
    - -
  • - - - (Boolean) - - - - — -
    -

    true

    -
    - -
  • - -
- -
- - - - -
-
-
-
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-
-
# File 'lib/felflame/entity_manager.rb', line 57
-
-def add(*components_to_add)
-  components_to_add.each do |component|
-    if components[component.class].nil?
-      components[component.class] = [component]
-      component.entities.push self
-      check_systems component, :addition_triggers
-    elsif !components[component.class].include? component
-      components[component.class].push component
-      component.entities.push self
-      check_systems component, :addition_triggers
-    end
-  end
-  true
-end
-
-
- -
-

- - #component(manager = nil) ⇒ Component - - - - - -

-
- -

A single component from a component manager. Use this if you expect the component to only belong to one entity and you want to access it. Access the component using either parameter notation or array notation. Array notation is conventional for better readablility.

- - -
-
-
- -
-

Examples:

- - -
@entity.component[@component_manager] # array notation(the standard)
-@entity.component(@component_manager) # method notation
- -
-

Parameters:

-
    - -
  • - - manager - - - (ComponentManager) - - - (defaults to: nil) - - - — -
    -

    If you pass nil you can then use array notation to access the same value.

    -
    - -
  • - -
- -

Returns:

-
    - -
  • - - - (Component) - - - -
  • - -
- -
- - - - -
-
-
-
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-
-
# File 'lib/felflame/entity_manager.rb', line 26
-
-def component(manager = nil)
-  if manager.nil?
-    FelFlame::Entities.component_redirect.entity = self
-    FelFlame::Entities.component_redirect
-  else
-    if components[manager].nil?
-      raise "This entity(#{self}) doesnt have any components of this type: #{manager}"
-    elsif components[manager].length > 1
-      Warning.warn("This entity has MANY of this component but you called the method that is intended for having a single of this component type.\nYou may have a bug in your logic.")
-    end
-
-    components[manager].first
-  end
-end
-
-
- -
-

- - #componentsHash<Component_Manager, Array<Integer>> - - - - - -

-
- -

A hash that uses component manager constant names as keys, and where the values of those keys are arrays that contain the the components attached to this entity.

- - -
-
-
- -

Returns:

-
    - -
  • - - - (Hash<Component_Manager, Array<Integer>>) - - - -
  • - -
- -
- - - - -
-
-
-
-16
-17
-18
-
-
# File 'lib/felflame/entity_manager.rb', line 16
-
-def components
-  @components ||= {}
-end
-
-
- -
-

- - #deleteBoolean - - - - - -

-
- -

Removes this Entity from the list and purges all references to this Entity from other Components, as well as its data.

- - -
-
-
- -

Returns:

-
    - -
  • - - - (Boolean) - - - - — -
    -

    true

    -
    - -
  • - -
- -
- - - - -
-
-
-
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-
-
# File 'lib/felflame/entity_manager.rb', line 43
-
-def delete
-  components.each do |_component_manager, component_array|
-    component_array.reverse_each do |component|
-      component.entities.delete(self)
-    end
-  end
-  FelFlame::Entities._data.delete self
-  @components = {}
-  true
-end
-
-
- -
-

- - #remove(*components_to_remove) ⇒ Boolean - - - - - -

-
- -

Remove a component from the Entity

- - -
-
-
-

Parameters:

-
    - -
  • - - components_to_remove - - - (Component) - - - - — -
    -

    A component created from any component manager

    -
    - -
  • - -
- -

Returns:

-
    - -
  • - - - (Boolean) - - - - — -
    -

    true

    -
    - -
  • - -
- -
- - - - -
-
-
-
-87
-88
-89
-90
-91
-92
-93
-94
-95
-
-
# File 'lib/felflame/entity_manager.rb', line 87
-
-def remove(*components_to_remove)
-  components_to_remove.each do |component|
-    check_systems component, :removal_triggers if component.entities.include? self
-    component.entities.delete self
-    components[component.class].delete component
-    components.delete component.class if components[component.class].empty?
-  end
-  true
-end
-
-
- -
- -
- - - -
- - \ No newline at end of file -- cgit v1.2.3