User Tools

Site Tools


custom-building-function

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
custom-building-function [2022/04/29 20:32] minotoriouscustom-building-function [2022/04/30 19:23] (current) minotorious
Line 23: Line 23:
 All [[api/building_function|BUILDING_FUNCTION]]s have three base functions that can be overriden, ''activateBuilding'', ''reloadBuildingFunction'', and ''removeBuildingFunction''. All [[api/building_function|BUILDING_FUNCTION]]s have three base functions that can be overriden, ''activateBuilding'', ''reloadBuildingFunction'', and ''removeBuildingFunction''.
  
-''activateBuilding'' is called the first time a [[api/building_function|BUILDING_FUNCTION]] is instantiated in game be it because the [[api/building_part|BUILDING_PART]] it was defined on was built or because it was assigned on a [[api/building_part|BUILDING_PART]] by the player. This function can be used to set up our [[api/building_part|BUILDING_PART]] for villagers to use, for example in the case of [[api/building_function_workplace|BUILDING_FUNCTION_WORKPLACE]] this function creates the [[api/comp_workplace|COMP_WORKPLACE]] necessary for assigning workers to the [[api/building_part|BUILDING_PART]].+''activateBuilding'' is called the first time a [[api/building_function|BUILDING_FUNCTION]] is instantiated in game be it because the [[api/building_part|BUILDING_PART]] it was defined on was built or because it was assigned by the player. This function can be used to set up any necessities for the [[api/building_function|BUILDING_FUNCTION]] to work, for example in the case of [[api/building_function_workplace|BUILDING_FUNCTION_WORKPLACE]] this function creates the [[api/comp_workplace|COMP_WORKPLACE]] necessary for assigning workers to the [[api/building_part|BUILDING_PART]].
  
 ''reloadBuildingFunction'' is called upon save game loading. This function usually serves as a back-call to the ''activateBuilding'' function to ensure any necessities are present and initialised after a reload. ''reloadBuildingFunction'' is called upon save game loading. This function usually serves as a back-call to the ''activateBuilding'' function to ensure any necessities are present and initialised after a reload.
  
-''removeBuildingFunction'' is called when a [[api/building_function|BUILDING_FUNCTION]] is manually unassigned from a [[api/building_part|BUILDING_PART]] by the player. This function is used to remove components or other elements that should no longer be present once the function is removed from the [[api/building_part|BUILDING_PART]].+''removeBuildingFunction'' is called when a [[api/building_function|BUILDING_FUNCTION]] is manually unassigned by the player. This function is used to remove components or other elements that should no longer be present once the function is removed from the [[api/building_part|BUILDING_PART]]
 + 
 +For example below we set up a function that upon activation logs its properties and upon reload executes a back-call to its activation function.
 <code lua> <code lua>
 +function MY_BUILDING_FUNCTION:activateBuilding(gameObject)
 +    mod:log("Property1: " .. tostring(self.Property1))
 +    mod:log("Property2: " .. tostring(self.Property2))
 +    mod:log("Property3: " .. tostring(self.Property3))
 +    
 +    return true
 +end
  
 +function MY_BUILDING_FUNCTION:reloadBuildingFunction(gameObject)
 +    self:activateBuilding(gameObject)
 +end
 </code> </code>
 And finally we register our custom [[api/building_function|BUILDING_FUNCTION]] class. And finally we register our custom [[api/building_function|BUILDING_FUNCTION]] class.
custom-building-function.1651278747.txt.gz · Last modified: 2022/04/29 20:32 by minotorious

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki