private void NectarUpdated(NectarProperty nectarProperty, SimObject simObject) { if (nectarProperty.HasNectar) { Console.WriteLine("Hive got nectar!!!"); nectarProperty.DrainNectar(); } }
protected override void OnSimObjectUpdating(SimObject simObject, SimModel simModel, SimState simState) { var nectarProp = simObject.GetProperty <NectarProperty>(); if (nectarProp == null) { nectarProp = new NectarProperty(); simObject.Properties.Add(nectarProp); } nectarProp.FillNectar(); }
private void NectarUpdated(NectarProperty nectarProperty, SimObject simObject) { if (nectarProperty.HasNectar) { simObject.Color = Colors.Green; simObject.Velocity = simObject.Location.GetDirection(_hive.Location).ScalarMultiply(Speed); } else if (!nectarProperty.HasNectar) { GiveRandomDirection(simObject, Speed); simObject.Color = Colors.Black; } }
public bool GetNectarFrom(NectarProperty nectarProperty) { if (nectarProperty == null) { return(false); } lock (_nectarLockObject) { lock (nectarProperty._nectarLockObject) { if (HasNectar || !nectarProperty.HasNectar) { return(false); } HasNectar = true; nectarProperty.HasNectar = false; return(true); } } }