Example #1
0
        public static void AddMineToFraction(Entity structureEntity, Fraction fraction, JEventBus eventBus = null)
        {
            Structure structure = structureEntity.GetComponent <Structure>();

            if (structure == null)
            {
                return;
            }

            AddStructureToFractionEvent addStructureToFractionEvent =
                new AddStructureToFractionEvent(structure, fraction, structureEntity);

            BaseApi.SendEvent(eventBus, addStructureToFractionEvent);
        }
Example #2
0
        public void AddStructureListener(AddStructureToFractionEvent addStructureToFractionEvent)
        {
            Fraction  newFraction = addStructureToFractionEvent.Fraction;
            Structure structure   = addStructureToFractionEvent.Structure;
            Fraction  oldFraction = structure.Fraction;
            GeoEntity geoEntity   = addStructureToFractionEvent.Entity.GetComponent <GeoEntity>();
            long      geoIndex    = _grid.GetNodeIndex(geoEntity.Position);

            if (newFraction == oldFraction)
            {
                return;
            }


            oldFraction?.Structures.Remove(geoIndex);
            newFraction?.Structures.Add(geoIndex, structure);
            structure.Fraction = newFraction;

            Debug("Mines captured: " + newFraction?.Structures[geoIndex]);
        }