Beispiel #1
0
        public void TestSubstance()
        {
            IChemObjectBuilder builder   = RootObject.Builder;
            ISubstance         substance = builder.NewSubstance();

            Assert.IsNotNull(substance);
        }
        private static ISubstance plugin_OnActionWait(ISubstance value, Guid self, string eventName)
        {
            Logger.Trace($"Start Plugin_onActionWait {self}.{eventName}");
            var        oSignalEvent = new ManualResetEvent(false);
            ISubstance result       = null;
            var        data         = createOnAction(value, self, eventName);

            if (data != null)
            {
                _currentWait[data] = oSignalEvent;
                OnAction?.Invoke(data);

                if (!oSignalEvent.WaitOne(99 * 1000)) //This thread will block here until the reset event is sent.
                {
                    _currentWait[data] = null;
                    result             = null;
                }
                else
                {
                    result = (data as SandboxDataValue).Value;
                }
            }
            oSignalEvent.Dispose();
            if (_currentWait.ContainsKey(data))
            {
                _currentWait.TryRemove(data, out oSignalEvent);
            }
            oSignalEvent = null;
            Logger.Trace("End Plugin_onActionWait", result);
            return(result);
        }
        private static void plugin_OnAction(ISubstance value, Guid self, string eventName)
        {
            Logger.Trace($"Start Plugin_onAction {self}.{eventName}");
            var data = createOnAction(value, self, eventName);

            OnAction?.Invoke(data);
            Logger.Trace("End Plugin_onAction");
        }
Beispiel #4
0
 private void Awake()
 {
     substance = GetComponent <ISubstance>();
     if (substance == null)
     {
         Debug.LogError("PureEnergy must have a substance as a component!");
     }
 }
Beispiel #5
0
        public virtual void AddSubstance(ISubstance substance, int sortOrder, IUnitValue quanity)
        {
            if (ContainsSubstance(substance))
            {
                return;
            }

            _substances.Add(ProductSubstance.Create(sortOrder, this, (Substance)substance, (UnitValue)quanity));
        }
Beispiel #6
0
        public virtual void RemoveSubstance(ISubstance substance)
        {
            var prodSubst = _substances.SingleOrDefault(x => x.Substance == substance);

            if (prodSubst == null)
            {
                return;
            }

            _substances.Remove(prodSubst);
        }
        private static void plugin_OnActionCallBack(ISubstance value, Guid self, string eventName, EventDelegate method)
        {
            Logger.Trace($"Start Plugin_onActionCallBack {self}.{eventName}");

            var data = createOnAction(value, self, eventName);

            if (data != null)
            {
                _currentDeligate[data] = method;
                Task.Run(() => OnAction?.Invoke(data));
            }


            Logger.Trace("End Plugin_onActionCallBack");
        }
        private static SandboxDataValue createOnAction(ISubstance value, Guid self, string eventName)
        {
            SandboxDataValue data = null;

            Logger.Trace($"Start createOnAction {self}.{eventName}");
            if (value is ISubstance)
            {
                data = new SandboxDataValue()
                {
                    From = self, EventName = eventName, TheType = value?.GetType(), Value = value
                };
            }
            else
            {
                Logger.Error("value is not ISubstance", value.ToJson());
            }
            Logger.Trace("End createOnAction");
            return(data);
        }
        /// <inheritdoc/>
        public Result Calculate(ISubstance substance)
        {
            int count = 0;

            if (substance != null)
            {
                foreach (var container in substance)
                {
                    foreach (var atom in container.Atoms)
                    {
                        if (atom.AtomicNumber == AtomicNumbers.Oxygen)
                        {
                            count++;
                        }
                    }
                }
            }

            return(new Result(count));
        }
 public virtual bool ContainsSubstance(ISubstance subst)
 {
     return(_substances.Contains(subst));
 }
Beispiel #11
0
 public virtual bool ContainsSubstance(ISubstance substance)
 {
     return(_substances.Count(x => x.Substance == substance) > 0);
 }
Beispiel #12
0
 private static void PersistSubstance(ISession session, ISubstance subst)
 {
     session.SaveOrUpdate(subst);
 }
Beispiel #13
0
 internal void Add(ISubstance substance)
 {
     base.Add((Substance)substance, ((Substance)substance).SetSubstanceGroup);
 }
Beispiel #14
0
 internal void Remove(ISubstance substance)
 {
     base.Remove((Substance)substance, ((Substance)substance).RemoveFromSubstanceGroup);
 }
Beispiel #15
0
 private static void PersistSubstance(ISession session, ISubstance subst)
 {
     session.SaveOrUpdate(subst);
 }
Beispiel #16
0
 public void Add(ISubstance substance)
 {
     substances.Add(substance);
 }
 /// <inheritdoc/>
 IDescriptorResult ISubstanceDescriptor.Calculate(ISubstance substance) => Calculate(substance);
 public virtual void AddSubstance(ISubstance substance)
 {
     _substances.Add(substance);
 }
 public virtual void Remove(ISubstance substance)
 {
     _substances.Remove(substance);
 }
 public void AddData <T>(T value) where T : ISubstance, new()
 {
     _value  = value;
     TheType = typeof(T);
 }
Beispiel #21
0
 public bool Contains(ISubstance substance)
 {
     return(substances.Contains(substance));
 }