public void DetachCommonEntity(CSCommon csc) { csc.Assembly = null; // m_BelongObjectsMap[(CSConst.ObjectType) csc.m_Type].Remove(csc); RemoveBelongBuilding((CSConst.ObjectType)csc.m_Type, csc); CSElectric cse = csc as CSElectric; if (cse != null) { if (cse.m_PowerPlant != null) { cse.m_PowerPlant.DetachElectric(cse); } } csc.ChangeState(); }
public int AttachCommonEntity(CSCommon csc) { if (csc.Assembly == this) { return(CSConst.rrtUnkown); } if (!InRange(csc.Position)) { return(CSConst.rrtOutOfRadius); } CSConst.ObjectType type = (CSConst.ObjectType)csc.m_Type; if (IsOutOfLimit(type)) { return(CSConst.rrtOutOfRange); } // m_BelongObjectsMap[(CSConst.ObjectType) csc.m_Type].Add(csc); AddBelongBuilding((CSConst.ObjectType)csc.m_Type, csc); csc.Assembly = this; CSElectric cse = csc as CSElectric; if (cse != null) { foreach (CSCommon power in AllPowerPlants) { CSPowerPlant cspp = power as CSPowerPlant; cspp.AttachElectric(cse); if (cse.IsRunning) { break; } } } csc.ChangeState(); return(CSConst.rrtSucceed); }