1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- class Container_Base : ItemBase
- {
- override bool IsContainer()
- {
- return true;
- }
-
- override bool CanPutInCargo(EntityAI parent)
- {
- if (!super.CanPutInCargo(parent))
- return false;
- if (parent && (parent == this || GetType() == parent.GetType() || !parent.GetInventory().AreChildrenAccessible()))
- return false;
-
- return true;
- }
- override bool CanReceiveItemIntoCargo( EntityAI item )
- {
- if (!super.CanReceiveItemIntoCargo(item))
- return false;
-
- //is 'this' somewhere in cargo?
- if (!GetInventory().AreChildrenAccessible())
- return false;
-
- return true;
- }
- }
- class DeployableContainer_Base : Container_Base
- {
- protected vector m_HalfExtents; // The Y value contains a heightoffset and not the halfextent !!!
-
- void DeployableContainer_Base()
- {
- m_HalfExtents = vector.Zero;
-
- ProcessInvulnerabilityCheck(GetInvulnerabilityTypeString());
- }
-
- override string GetInvulnerabilityTypeString()
- {
- return "disableContainerDamage";
- }
-
- override void SetActions()
- {
- super.SetActions();
-
- AddAction(ActionTogglePlaceObject);
- AddAction(ActionPlaceObject);
- }
-
- override bool CanReceiveAttachment(EntityAI attachment, int slotId)
- {
- if (GetHealthLevel() == GameConstants.STATE_RUINED)
- return false;
-
- return super.CanReceiveAttachment(attachment, slotId);
- }
-
- override bool CanLoadAttachment(EntityAI attachment)
- {
- if (GetHealthLevel() == GameConstants.STATE_RUINED)
- return false;
-
- return super.CanLoadAttachment(attachment);
- }
- override bool CanReceiveItemIntoCargo(EntityAI item)
- {
- if (GetHealthLevel() == GameConstants.STATE_RUINED)
- return false;
- return super.CanReceiveItemIntoCargo(item);
- }
-
- override bool CanLoadItemIntoCargo(EntityAI item)
- {
- if (!super.CanLoadItemIntoCargo(item))
- return false;
- if (GetHealthLevel() == GameConstants.STATE_RUINED)
- return false;
- return true;
- }
-
- override void EEHealthLevelChanged(int oldLevel, int newLevel, string zone)
- {
- super.EEHealthLevelChanged(oldLevel,newLevel,zone);
-
- if (newLevel == GameConstants.STATE_RUINED && !GetHierarchyParent())
- MiscGameplayFunctions.DropAllItemsInInventoryInBounds(this, m_HalfExtents);
- }
- }
|