User Tools

Site Tools


zone

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
zone [2025/03/30 16:45] justinzone [2025/04/03 13:57] (current) justin
Line 1: Line 1:
-=====Zone======+======Zones======
 ---- ----
  
-A zone is a box-shaped area/region within a [[map]], defined by a position (using the [[tile]] [[coordinate]] system) and a size (measured in [[voxel|voxels]]). Zones can be either passable or impassable. Passable zones allow [[character|characters]] and [[object|objects]] to pass through them freely, with an option to trigger a [[script]] whenever a [[character]] or [[object]] enters or exits the zone. Impassable zones, only applicable to free movement, act as obstacles and prevent [[character|characters]] and [[object|objects]] from passing through them or entering that area, with an option to trigger a [[script]] whenever one collides with the zone.+**zone** is a box-shaped area/region within a [[map]], defined by a position (using the [[tile]] [[coordinate]] system) and a size (measured in [[voxel|voxels]]). Zones can be either passable or impassable. Passable zones allow [[character|characters]] and [[object|objects]] to pass through them freely, with an option to trigger a [[script]] whenever a [[character]] or [[object]] enters or exits the zone. Impassable zones, only applicable to free movement, act as obstacles and prevent [[character|characters]] and [[object|objects]] from passing through them or entering that area, with an option to trigger a [[script]] whenever one collides with the zone. 
 + 
 +{{:zone_properties_example.png?nolink|}}
  
 Zones are created and modified from the [[Map Properties]] tab in the [[Map Editor]]. When assigning [[script|scripts]] to zones, the built-in **//initiator//** variable will contain the [[character]] or [[object]] that triggered the event. Zones are created and modified from the [[Map Properties]] tab in the [[Map Editor]]. When assigning [[script|scripts]] to zones, the built-in **//initiator//** variable will contain the [[character]] or [[object]] that triggered the event.
  
-==Example Usages==+====Example Usages====
   * Blocking off areas to ensure they're inaccessible to the player   * Blocking off areas to ensure they're inaccessible to the player
-  * Resetting the player when they fall off the edge of a map (see video below) +  * Resetting the player when they fall off the edge of a [[map]] (see video below) 
-  * Triggering a cutscene when the player enters a certain area of a map +  * Triggering a cutscene when the player enters a certain area of a [[map]] 
-  * Applying a status effect to the player when they're in a healing zone or toxic zone+  * Applying a [[status effect]] to the player when they're in a healing zone or toxic zone
   * And so much more!   * And so much more!
-    + 
 +The **First-Person Magic Shooter** project template includes some uses of zones. The passable zone inside the room behind the locked door (the green area in the image below) triggers the end of the game when the player enters the zone. The impassable zone above that room's walls (the red area in the image below) prevents the player from jumping over the walls to bypass the locked door. 
 + 
 +{{:zones_passable_and_impassable.png?nolink|}} 
 + 
 +The colored boxes for zones in the [[Map Editor]] can be hidden using the **Display Zones** button on the [[Map Editor]] toolbar. They can also be hidden along with other visual indicators by holding the Backtick (`) key, or Shift + Backtick (`) key to toggle all of them off. 
 + 
 +====Scripting==== 
 +From a scripting perspective, there are several Bauxite functions related to the management of zones. Below is a list of these new functions that are available to use: 
 +  * **[[Add Zone]]**: Adds a new zone to the current [[map]], with parameters for zone name, passability, position, width, depth, and height. The width, depth, and height are measured in [[voxel|voxels]]. For example, **add_zone("toxic_zone", true, coord[0, 0, 0], 64, 64, 16)** will add a passable zone named "toxic_zone" at [[coordinate]] (0, 0, 0) with dimensions of 64 x 64 x 16 [[voxel|voxels]]. 
 +  * **[[Disable Zone]]**: Disables a zone in the current [[map]], e.g. **disable_zone("toxic_zone")**. When a zone is disabled, scripts for that zone will not trigger. If the zone is impassable, it won't block the player when disabled. 
 +  * **[[Enable Zone]]**: Enables a zone that was previously disabled via the [[Disable Zone]] function, e.g. **enable_zone("toxic_zone")**. 
 +  * **[[Remove Zone]]**: Removes a zone from the current [[map]], e.g. **remove_zone("toxic_zone")**. 
 +  * **[[Set Zone Script]]**: Modifies a zone's [[script]], with trigger options of CHARACTER_ENTER and CHARACTER_EXIT for passable zones and CHARACTER_COLLIDE for impassable zones. For example, **set_zone_script("toxic_zone", "apply_poison_status", CHARACTER_ENTER)** will cause the "apply_poison_status" script to be triggered whenever a [[character]] enters that zone. 
 + 
 +**Bauxite Examples:** 
 +<code bauxite> 
 +add_zone("toxic_zone", true, coord[0, 0, 0], 64, 64, 16); 
 +set_zone_script("toxic_zone", "apply_poison_status", CHARACTER_ENTER); 
 +set_zone_script("toxic_zone", "remove_poison_status", CHARACTER_EXIT); 
 +</code> 
 ~~NOTOC~~ ~~NOTOC~~
zone.1743378342.txt.gz · Last modified: 2025/03/30 16:45 by justin