GiftBox_Base.c
class GiftBox_Base extends Container_Base
{
protected vector m_HalfExtents; // The Y value contains a heightoffset and not the halfextent !!!
protected ref OpenableBehaviour m_Openable;
void GiftBox_Base()
{
m_HalfExtents = vector.Zero;
m_Openable = new OpenableBehaviour(false);
RegisterNetSyncVariableBool("m_Openable.m_IsOpened");
}
override bool CanReceiveItemIntoCargo(EntityAI item)
{
if (!super.CanReceiveItemIntoCargo(item))
return false;
if (GameInventory.GetInventoryCheckContext() == InventoryCheckContext.DEFAULT)
{
if (!g_Game.IsDedicatedServer())
return IsOpen();
}
return true;
}
override void Open()
{
m_Openable.Open();
SetSynchDirty();
}
override void Close()
{
m_Openable.Close();
SetSynchDirty();
}
override bool IsOpen()
{
return m_Openable.IsOpened();
}
override void SetActions()
{
super.SetActions();
AddAction(ActionUnpackGift);
}
override void OnDebugSpawn()
{
EntityAI entity;
if (Class.CastTo(entity, this))
{
entity.GetInventory().CreateInInventory("Chemlight_Green");
}
}
override void EEHealthLevelChanged(int oldLevel, int newLevel, string zone)
{
super.EEHealthLevelChanged(oldLevel,newLevel,zone);
if (newLevel == GameConstants.STATE_RUINED && g_Game.IsServer())
{
MiscGameplayFunctions.DropAllItemsInInventoryInBounds(this, m_HalfExtents);
DeleteSafe();
}
}
}
class GiftBox_Small extends GiftBox_Base {}
class GiftBox_Medium extends GiftBox_Base {}
class GiftBox_Large extends GiftBox_Base {}