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
Last revisionBoth sides next revision
custom-building-function [2022/04/29 20:32] minotoriouscustom-building-function [2022/04/29 20:49] 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))
 +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.txt · Last modified: 2022/04/30 19:23 by minotorious

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki