public IOrder RegisterBuildingOrder(IBuilder builder, int constructorid, IUnitDef orderedunittype, Float3 orderedpos) { RemovePreviousOrdersFromThisConstructor(constructorid); OwnershipOrder order = new OwnershipOrder(builder, constructorid, orderedunittype, orderedpos); lock (orders) { orders.Add(order); ordersbyconstructorid.Add(constructorid, order); } return(order); }
void RemovePreviousOrdersFromThisConstructor(int constructorid) { lock (orders) { if (ordersbyconstructorid.ContainsKey(constructorid)) { OwnershipOrder order = ordersbyconstructorid[constructorid]; logfile.WriteLine("Removing order by " + constructorid + " for " + order.orderedunit.humanName); order.builder.UnitDestroyed(order, order.unitdeployedid, order.orderedunit); orders.Remove(order); ordersbyconstructorid.Remove(constructorid); } } }
public IOrder RegisterBuildingOrder(IBuilder builder, int constructorid, IUnitDef orderedunittype, Float3 orderedpos) { RemovePreviousOrdersFromThisConstructor(constructorid); OwnershipOrder order = new OwnershipOrder(builder, constructorid, orderedunittype, orderedpos); lock (orders) { orders.Add(order); ordersbyconstructorid.Add(constructorid, order); } return order; }