XmasLights.c
class XmasLights extends Inventory_Base
{
private ItemBase m_AttachedTo = NULL;
void XmasLights()
{
TurnOffItem( this );
}
override bool IsElectricAppliance()
{
return true;
}
override void OnWorkStart()
{
TurnOnItem( m_AttachedTo );
TurnOnItem( this );
}
override void OnWorkStop()
{
TurnOffItem( m_AttachedTo );
TurnOffItem( this );
}
void AttachToObject(ItemBase parent)
{
//SetPilotLight( false );
m_AttachedTo = parent;
TurnOnItem( parent );
if ( GetCompEM().IsPlugged() )
{
parent.SetAnimationPhase( "Cord_plugged", 0);
parent.SetAnimationPhase( "Cord_folded", 1);
}
else
{
parent.SetAnimationPhase( "Cord_plugged", 1);
parent.SetAnimationPhase( "Cord_folded", 0);
}
}
void DetachFromObject(ItemBase parent)
{
m_AttachedTo = NULL;
HideOnItem( parent );
TurnOnItem( this );
GetCompEM().UnplugThis();
}
void TurnOnItem(ItemBase item)
{
if ( item != NULL )
{
if ( GetCompEM().IsWorking() )
{
item.SetObjectMaterial( item.GetHiddenSelectionIndex("xlights_glass_r"), "dz\\gear\\camping\\data\\christmas_lights_red_on.rvmat" );
item.SetObjectMaterial( item.GetHiddenSelectionIndex("xlights_glass_g"), "dz\\gear\\camping\\data\\christmas_lights_green_on.rvmat" );
item.SetObjectMaterial( item.GetHiddenSelectionIndex("xlights_glass_b"), "dz\\gear\\camping\\data\\christmas_lights_blue_on.rvmat" );
item.SetObjectMaterial( item.GetHiddenSelectionIndex("xlights_glass_y"), "dz\\gear\\camping\\data\\christmas_lights_yellow_on.rvmat" );
item.SetObjectTexture( item.GetHiddenSelectionIndex("xlights_glass_r"), "dz\\gear\\camping\\data\\christmas_lights_string_ca.paa" );
item.SetObjectTexture( item.GetHiddenSelectionIndex("xlights_glass_g"), "dz\\gear\\camping\\data\\christmas_lights_string_ca.paa" );
item.SetObjectTexture( item.GetHiddenSelectionIndex("xlights_glass_b"), "dz\\gear\\camping\\data\\christmas_lights_string_ca.paa" );
item.SetObjectTexture( item.GetHiddenSelectionIndex("xlights_glass_y"), "dz\\gear\\camping\\data\\christmas_lights_string_ca.paa" );
//item.SetPilotLight(true);
}
else
{
TurnOffItem( item );
}
}
}
void TurnOffItem(ItemBase item)
{
if ( item != NULL )
{
item.SetObjectMaterial( item.GetHiddenSelectionIndex("xlights_glass_r"), "dz\\gear\\camping\\data\\christmass_ligths_string.rvmat" );
item.SetObjectMaterial( item.GetHiddenSelectionIndex("xlights_glass_g"), "dz\\gear\\camping\\data\\christmass_ligths_string.rvmat" );
item.SetObjectMaterial( item.GetHiddenSelectionIndex("xlights_glass_b"), "dz\\gear\\camping\\data\\christmass_ligths_string.rvmat" );
item.SetObjectMaterial( item.GetHiddenSelectionIndex("xlights_glass_y"), "dz\\gear\\camping\\data\\christmass_ligths_string.rvmat" );
item.SetObjectTexture( item.GetHiddenSelectionIndex("xlights_glass_r"), "dz\\gear\\camping\\data\\christmas_lights_string_ca.paa" );
item.SetObjectTexture( item.GetHiddenSelectionIndex("xlights_glass_g"), "dz\\gear\\camping\\data\\christmas_lights_string_ca.paa" );
item.SetObjectTexture( item.GetHiddenSelectionIndex("xlights_glass_b"), "dz\\gear\\camping\\data\\christmas_lights_string_ca.paa" );
item.SetObjectTexture( item.GetHiddenSelectionIndex("xlights_glass_y"), "dz\\gear\\camping\\data\\christmas_lights_string_ca.paa" );
//item.SetPilotLight(false);
}
}
void HideOnItem(ItemBase item)
{
item.SetObjectMaterial( item.GetHiddenSelectionIndex("xlights_glass_r"), "" );
item.SetObjectMaterial( item.GetHiddenSelectionIndex("xlights_glass_g"), "" );
item.SetObjectMaterial( item.GetHiddenSelectionIndex("xlights_glass_b"), "" );
item.SetObjectMaterial( item.GetHiddenSelectionIndex("xlights_glass_y"), "" );
item.SetObjectTexture( item.GetHiddenSelectionIndex("xlights_glass_r"), "" );
item.SetObjectTexture( item.GetHiddenSelectionIndex("xlights_glass_g"), "" );
item.SetObjectTexture( item.GetHiddenSelectionIndex("xlights_glass_b"), "" );
item.SetObjectTexture( item.GetHiddenSelectionIndex("xlights_glass_y"), "" );
// item.SetPilotLight(false);
item.SetAnimationPhase( "Cord_plugged", 1);
item.SetAnimationPhase( "Cord_folded", 1);
}
// --------------------------------------------------
// Advanced placement
//---------------------------------------------------
override void SetActions()
{
super.SetActions();
AddAction(ActionAttachOnProxy);
AddAction(ActionPlugIn);
AddAction(ActionUnplugThisByCord);
}
}