PSF-LoginServer/net/psforever/packet/game/BuildingInfoUpdateMessage.html

36 lines
160 KiB
HTML
Raw Normal View History

<!DOCTYPE html ><html><head><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"/><title>PSF-LoginServer - master - net.psforever.packet.game.BuildingInfoUpdateMessage</title><meta content="PSF - LoginServer - master - net.psforever.packet.game.BuildingInfoUpdateMessage" name="description"/><meta content="PSF LoginServer master net.psforever.packet.game.BuildingInfoUpdateMessage" name="keywords"/><meta http-equiv="content-type" content="text/html; charset=UTF-8"/><link href="../../../../lib/index.css" media="screen" type="text/css" rel="stylesheet"/><link href="../../../../lib/template.css" media="screen" type="text/css" rel="stylesheet"/><link href="../../../../lib/print.css" media="print" type="text/css" rel="stylesheet"/><link href="../../../../lib/diagrams.css" media="screen" type="text/css" rel="stylesheet" id="diagrams-css"/><script type="text/javascript" src="../../../../lib/jquery.min.js"></script><script type="text/javascript" src="../../../../lib/index.js"></script><script type="text/javascript" src="../../../../index.js"></script><script type="text/javascript" src="../../../../lib/scheduler.js"></script><script type="text/javascript" src="../../../../lib/template.js"></script><script type="text/javascript">/* this variable can be used by the JS to determine the path to the root document */
var toRoot = '../../../../';</script></head><body><div id="search"><span id="doc-title">PSF-LoginServer - <span id="doc-version">master</span></span> <span class="close-results"><span class="left">&lt;</span> Back</span><div id="textfilter"><span class="input"><input autocapitalize="none" placeholder="Search" id="index-input" type="text" accesskey="/"/><i class="clear material-icons"></i><i id="search-icon" class="material-icons"></i></span></div></div><div id="search-results"><div id="search-progress"><div id="progress-fill"></div></div><div id="results-content"><div id="entity-results"></div><div id="member-results"></div></div></div><div id="content-scroll-container" style="-webkit-overflow-scrolling: touch;"><div id="content-container" style="-webkit-overflow-scrolling: touch;"><div id="subpackage-spacer"><div id="packages"><h1>Packages</h1><ul><li class="indented0 " name="_root_.root" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="_root_"></a><a id="root:_root_"></a> <span class="permalink"><a href="../../../../index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../../../../index.html" title=""><span class="name">root</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../../../../index.html" name="_root_" id="_root_" class="extype">root</a></dd></dl></div></li><li class="indented1 " name="_root_.net" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="net"></a><a id="net:net"></a> <span class="permalink"><a href="../../../../net/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../../../index.html" title=""><span class="name">net</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../../../../index.html" name="_root_" id="_root_" class="extype">root</a></dd></dl></div></li><li class="indented2 " name="net.psforever" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="psforever"></a><a id="psforever:psforever"></a> <span class="permalink"><a href="../../../../net/psforever/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../../index.html" title=""><span class="name">psforever</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../../../index.html" name="net" id="net" class="extype">net</a></dd></dl></div></li><li class="indented3 " name="net.psforever.packet" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="packet"></a><a id="packet:packet"></a> <span class="permalink"><a href="../../../../net/psforever/packet/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../index.html" title=""><span class="name">packet</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../../index.html" name="net.psforever" id="net.psforever" class="extype">psforever</a></dd></dl></div></li><li class="indented4 " name="net.psforever.packet.game" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="game"></a><a id="game:game"></a> <span class="permalink"><a href="../../../../net/psforever/packet/game/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="index.html" title=""><span class="name">game</span></a></span><div class="fullcomme
The most common application of this packet is to synchronize map state during world login.<br>
<br>
A "building" mainly constitutes any map-viewable structure that has properties or whose ownership can be asserted.
This packet is valid for all major facilities, field towers, warp gates, and some static environment elements.
Additional properties, if available, can be viewed by selecting the sphere of influence of a given building.
The combination of continent UID and building UID ensures that all buildings are uniquely-defined.
This packet can be applied on any continent and will affect the appropriate building on any other continent.
As the intercontinental map is always available, all map assets will publish real time updates to all players.
Map information configured by this packet is not obscured from any players, regardless of faction.
(Network state updates will be delayed for, and the type of compromise will not be specified to, defenders.)<br>
<br>
Aside from the map-viewable aspects, a few properties set by this packet also have game world effects.
Additionally, though most parameters are treated as mandatory, not all buildings will be able to use those parameters.
A parameter that is not applicable for a given asset, e.g., NTU for a field tower, will be ignored.
A collision between some parameters can occur.
For example, if <code>is_hacking</code> is <code>false</code>, the other hacking fields are considered invalid.
If <code>is_hacking</code> is <code>true</code> but the hacking empire is also the owning empire, the <code>is_hacking</code> state is invalid.</p></div><dl class="paramcmts block"><dt class="param">continent_id</dt><dd class="cmt"><p>the continent (zone)</p></dd><dt class="param">building_map_id</dt><dd class="cmt"><p>the map id of this building from the MPO files</p></dd><dt class="param">ntu_level</dt><dd class="cmt"><p>if the building has a silo, the amount of NTU in that silo;
NTU is reported in multiples of 10%;
valid for 0 (0%) to 10 (100%)</p></dd><dt class="param">is_hacked</dt><dd class="cmt"><p>if the building can be hacked and will take time to convert, whether the building is being hacked</p></dd><dt class="param">empire_hack</dt><dd class="cmt"><p>if the building is being hacked, the empire that is performing the hacking</p></dd><dt class="param">hack_time_remaining</dt><dd class="cmt"><p>if the building is being hacked, the amount of time remaining until the hack finishes/clears;
recorded in milliseconds (ms)</p></dd><dt class="param">empire_own</dt><dd class="cmt"><p>the empire that owns the building currently</p></dd><dt class="param">unk1</dt><dd class="cmt"><p>na;
value != 0 causes the next field to be defined</p></dd><dt class="param">unk1x</dt><dd class="cmt"><p>na</p></dd><dt class="param">generator_state</dt><dd class="cmt"><p>if the building has a generator, the state of the generator</p></dd><dt class="param">spawn_tubes_normal</dt><dd class="cmt"><p>if the building has spawn tubes, whether at least one of the tubes is powered and operational</p></dd><dt class="param">force_dome_active</dt><dd class="cmt"><p>if the building is a capitol facility, whether the force dome is active</p></dd><dt class="param">lattice_benefit</dt><dd class="cmt"><p>the benefits from other Lattice-linked bases does this building possess</p></dd><dt class="param">cavern_benefit</dt><dd class="cmt"><p>cavern benefits;
any non-zero value will cause the cavern module icon (yellow) to appear;
proper module values cause the cavern module icon to render green;
all benefits will report as due to a "Cavern Lock"</p></dd><dt class="param">unk4</dt><dd class="cmt"><p>na</p></dd><dt class="param">unk5</dt><dd class="cmt"><p>na</p></dd><dt class="param">unk6</dt><dd class="cmt"><p>na</p></dd><dt class="param">unk7</dt><dd class="cmt"><p>na;
value != 8 causes the next field to be defined</p></dd><dt class="param">unk7x</dt><dd class="cmt"><p>na</p></dd><dt class="param">boost_spawn_pain</dt><dd class="cmt"><p>if the building has spawn tubes, the (boosted) strength of its enemy pain field</p></dd><dt class="param">boost_generator_pain</dt><dd class="cmt"><p>if the building has a generator, the (boosted) strength of its enemy pain field</p></dd></dl><dl class="attributes block"><dt>Source</dt><dd><a href="https://github.com/psforever/PSF-LoginServer/blob/master//home/runner/work/PSF-LoginServer/PSF-LoginServer/src/main/scala/net/psforever/packet/game/BuildingInfoUpdateMessage.scala" target="_blank">BuildingInfoUpdateMessage.scala</a></dd></dl><div class="toggleContainer"><div class="toggle block"><span>Linear Supertypes</span><div class="superTypes hiddenContent"><span name="scala.Product" class="extype">Product</span>, <span name="scala.Equals" class="extype">Equals</span>, <a href="../PlanetSideGamePacket.html" name="net.psforever.packet.PlanetSideGamePacket" id="net.psforever.packet.PlanetSideGamePacket" class="extype">PlanetSideGamePacket</a>, <a href="../PlanetSidePacket.html" name="net.psforever.packet.PlanetSidePacket" id="net.psforever.packet.PlanetSidePacket" class="extype">PlanetSidePacket</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html#java.io.Serializable" name="java.io.Serializable" id="java.io.Serializable" class="extype">Serializable</a>, <span name="scala.AnyRef" class="extype">AnyRef</span>, <span name="scala.Any" class="extype">Any</span></div></div></div></div><div id="mbrsel"><div class="toggle"></div><div id="memberfilter"><i class="material-icons arrow"></i><span class="input"><input placeholder="Filter all members" id="mbrsel-input" type="text" accesskey="/"/></span><i class="clear material-icons"></i></div><div id="filterby"><div id="order"><span class="filtertype">Ordering</span><ol><li class="alpha in"><span>Alphabetic</span></li><li class="inherit out"><span>By Inheritance</span></li></ol></div><div class="ancestors"><span class="filtertype">Inherited<br/></span><ol id="linearization"><li class="in" name="net.psforever.packet.game.BuildingInfoUpdateMessage"><span>BuildingInfoUpdateMessage</span></li><li class="in" name="scala.Product"><span>Product</span></li><li class="in" name="scala.Equals"><span>Equals</span></li><li class="in" name="net.psforever.packet.PlanetSideGamePacket"><span>PlanetSideGamePacket</span></li><li class="in" name="net.psforever.packet.PlanetSidePacket"><span>PlanetSidePacket</span></li><li class="in" name="java.io.Serializable"><span>Serializable</span></li><li class="in" name="scala.AnyRef"><span>AnyRef</span></li><li class="in" name="scala.Any"><span>Any</span></li></ol></div><div class="ancestors"><span class="filtertype"></span><ol><li class="hideall out"><span>Hide All</span></li><li class="showall in"><span>Show All</span></li></ol></div><div id="visbl"><span class="filtertype">Visibility</span><ol><li class="public in"><span>Public</span></li><li class="protected out"><span>Protected</span></li></ol></div></div></div><div id="template"><div id="allMembers"><div id="constructors" class="members"><h3>Instance Constructors</h3><ol><li class="indented0 " name="net.psforever.packet.game.BuildingInfoUpdateMessage#&lt;init&gt;" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="&lt;init&gt;(continent_id:Int,building_map_id:Int,ntu_level:Int,is_hacked:Boolean,empire_hack:net.psforever.types.PlanetSideEmpire.Value,hack_time_remaining:Long,empire_own:net.psforever.types.PlanetSideEmpire.Value,unk1:Long,unk1x:Option[net.psforever.packet.game.Additional1],generator_state:net.psforever.types.PlanetSideGeneratorState.Value,spawn_tubes_normal:Boolean,force_dome_active:Boolean,lattice_benefit:Set[net.psforever.types.LatticeBenefit],cavern_benefit:Set[net.psforever.types.CavernBenefit],unk4:List[net.psforever.packet.game.Additional2],unk5:Long,unk6:Boolean,unk7:Int,unk7x:Option[net.psforever.packet.game.Additional3],boost_spawn_pain:Boolean,boos
NTU is reported in multiples of 10%;
valid for 0 (0%) to 10 (100%)</p></dd><dt class="param">is_hacked</dt><dd class="cmt"><p>if the building can be hacked and will take time to convert, whether the building is being hacked</p></dd><dt class="param">empire_hack</dt><dd class="cmt"><p>if the building is being hacked, the empire that is performing the hacking</p></dd><dt class="param">hack_time_remaining</dt><dd class="cmt"><p>if the building is being hacked, the amount of time remaining until the hack finishes/clears;
recorded in milliseconds (ms)</p></dd><dt class="param">empire_own</dt><dd class="cmt"><p>the empire that owns the building currently</p></dd><dt class="param">unk1</dt><dd class="cmt"><p>na;
value != 0 causes the next field to be defined</p></dd><dt class="param">unk1x</dt><dd class="cmt"><p>na</p></dd><dt class="param">generator_state</dt><dd class="cmt"><p>if the building has a generator, the state of the generator</p></dd><dt class="param">spawn_tubes_normal</dt><dd class="cmt"><p>if the building has spawn tubes, whether at least one of the tubes is powered and operational</p></dd><dt class="param">force_dome_active</dt><dd class="cmt"><p>if the building is a capitol facility, whether the force dome is active</p></dd><dt class="param">lattice_benefit</dt><dd class="cmt"><p>the benefits from other Lattice-linked bases does this building possess</p></dd><dt class="param">cavern_benefit</dt><dd class="cmt"><p>cavern benefits;
any non-zero value will cause the cavern module icon (yellow) to appear;
proper module values cause the cavern module icon to render green;
all benefits will report as due to a "Cavern Lock"</p></dd><dt class="param">unk4</dt><dd class="cmt"><p>na</p></dd><dt class="param">unk5</dt><dd class="cmt"><p>na</p></dd><dt class="param">unk6</dt><dd class="cmt"><p>na</p></dd><dt class="param">unk7</dt><dd class="cmt"><p>na;
value != 8 causes the next field to be defined</p></dd><dt class="param">unk7x</dt><dd class="cmt"><p>na</p></dd><dt class="param">boost_spawn_pain</dt><dd class="cmt"><p>if the building has spawn tubes, the (boosted) strength of its enemy pain field</p></dd><dt class="param">boost_generator_pain</dt><dd class="cmt"><p>if the building has a generator, the (boosted) strength of its enemy pain field</p></dd></dl></div></li></ol></div><div id="types" class="types members"><h3>Type Members</h3><ol><li class="indented0 " name="net.psforever.packet.game.BuildingInfoUpdateMessage.Packet" group="Ungrouped" fullComment="no" data-isabs="false" visbl="pub"><a id="Packet=net.psforever.packet.game.BuildingInfoUpdateMessage"></a><a id="Packet:Packet"></a> <span class="permalink"><a href="../../../../net/psforever/packet/game/BuildingInfoUpdateMessage.html#Packet=net.psforever.packet.game.BuildingInfoUpdateMessage" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">type</span></span> <span class="symbol"><span class="name">Packet</span><span class="result alias"> = <a href="" name="net.psforever.packet.game.BuildingInfoUpdateMessage" id="net.psforever.packet.game.BuildingInfoUpdateMessage" class="extype">BuildingInfoUpdateMessage</a></span></span></li></ol></div><div class="values members"><h3>Value Members</h3><ol><li class="indented0 " name="scala.AnyRef#!=" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="!=(x$1:Any):Boolean"></a><a id="!=(Any):Boolean"></a> <span class="permalink"><a href="../../../../net/psforever/packet/game/BuildingInfoUpdateMessage.html#!=(x$1:Any):Boolean" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name" title="gt4s: $bang$eq">!=</span><span class="params">(<span name="arg0">arg0: <span name="scala.Any" class="extype">Any</span></span>)</span><span class="result">: <span name="scala.Boolean" class="extype">Boolean</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><li class="indented0 " name="scala.AnyRef###" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="##:Int"></a> <span class="permalink"><a href="../../../../net/psforever/packet/game/BuildingInfoUpdateMessage.html###:Int" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name" title="gt4s: $hash$hash">##</span><span class="result">: <span name="scala.Int" class="extype">Int</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><li class="indented0 " name="scala.AnyRef#==" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="==(x$1:Any):Boolean"></a><a id="==(Any):Boolean"></a> <span class="permalink"><a href="../../../../net/psforever/packet/game/BuildingInfoUpdateMessage.html#==(x$1:Any):Boolean" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name" title="gt4s: $eq$eq">==</span><span class="params">(<span name="arg0">arg0: <span name="scala.Any" class="extype">Any</span></span>)</span><span class="result">: <span name="scala.Boolean" class="extype">Boolean</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><li class="indented0 " name="scala.Any#asInstanceOf" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="asInstanceOf[T0]:T0"></a> <span class="permalink"><a href="../../../../net/psforever/packet/game/BuildingInfoUpdateMessage.html#asInstanceOf[T0]:T0