コード例 #1
0
        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);
        }
コード例 #2
0
 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);
         }
     }
 }
コード例 #3
0
        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;
        }