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); }
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]); }