Inheritance: MonoBehaviour
示例#1
0
        public static void NormalSave()
        {
            Loom.QueueOnMainThread(() =>
            {
                try
                {
                    AvatarSaveProc.SaveAll(); //???????
                }
                catch (Exception ex)
                {
                }

                WorldSave fsave;
                using (Recycler <WorldSave, WorldSave.Builder> recycler = WorldSave.Recycler())
                {
                    WorldSave.Builder builder = recycler.OpenBuilder();
                    ServerSaveManager.Get(false).DoSave(ref builder);
                    fsave = builder.Build();
                }

                if (ShowObjectCount)
                {
                    ObjectsCount = fsave.SceneObjectCount + fsave.InstanceObjectCount;
                }

                FileStream stream2 = File.Open(Directory.GetCurrentDirectory() + @"\save\server_data\rust_island_2013.sav", FileMode.Create, FileAccess.Write);
                fsave.WriteTo(stream2);
                stream2.Flush();

                stream2.Dispose(); //??

                SaveEndTime = DateTime.Now;
                AnnounceResults();
            });
        }
示例#2
0
        /// <summary>
        /// Cancels the given craft task. Returns true if the task was found and cancelled.
        /// </summary>
        /// <param name="refundTo">The refunded items will be added to this players inventory.</param>
        public bool CancelTask(CraftTask task, BasePlayer refundTo)
        {
            CraftingTasks.Remove(task);

            foreach (var player in NearbyPlayers)
            {
                SendRemoveCraftingTask(player, task);
            }

            foreach (var item in task.TakenItems)
            {
                if (!item.MoveToContainer(refundTo.inventory.containerMain) && !item.MoveToContainer(refundTo.inventory.containerBelt))
                {
                    item.Drop(refundTo.GetDropPosition(), refundTo.GetDropVelocity(), Quaternion.identity);
                }
            }

            // Stop recycler if crafting queue is empty.
            if (CraftingTasks.Count <= 0)
            {
                Recycler.StopRecycling();
            }

            return(true);
        }
 public RecyclerLoginViewModel()
 {
     SignInRecycler         = new Command(SignInExecute, RecyclerCanSignIn);
     OpenRecyclerSignUpView = new Command(OpenRecyclerSignUpExecute);
     Back     = new Command(BackExecute);
     Recycler = new Recycler();
 }
示例#4
0
    public void WriteObjectSave(ref SavedObject.Builder saveobj)
    {
        NetEntityID netEntityID;

        using (Recycler <objectDeployable, objectDeployable.Builder> recycler = objectDeployable.Recycler())
        {
            objectDeployable.Builder builder = recycler.OpenBuilder();
            builder.SetCreatorID(this.creatorID);
            builder.SetOwnerID(this.ownerID);
            saveobj.SetDeployable(builder);
        }
        using (Recycler <objectICarriableTrans, objectICarriableTrans.Builder> recycler1 = objectICarriableTrans.Recycler())
        {
            objectICarriableTrans.Builder builder1 = recycler1.OpenBuilder();
            if (!this._carrier || (int)NetEntityID.Of(this._carrier, out netEntityID) == 0)
            {
                builder1.ClearTransCarrierID();
            }
            else
            {
                builder1.SetTransCarrierID(netEntityID.id);
            }
            saveobj.SetCarriableTrans(builder1);
        }
    }
示例#5
0
        private object OnRecycleItem(Recycler recycler, Item item)
        {
            if (_config.Options.BlockedItems == null || !_config.Options.BlockedItems.Any())
            {
                return(null);
            }

            if (item.info.Blueprint != null)
            {
                if (item.info.Blueprint.ingredients.Any(x => _config.Options.BlockedItems.Contains(x?.itemDef?.shortname)))
                {
                    foreach (var itemAmount in item.info.Blueprint.ingredients)
                    {
                        if (!_config.Options.BlockedItems.Contains(itemAmount.itemDef.shortname))
                        {
                            recycler.MoveItemToOutput(ItemManager.Create(itemAmount.itemDef, Mathf.CeilToInt(itemAmount.amount * recycler.recycleEfficiency))); // Give normal items.
                            continue;
                        }

                        foreach (var componentIngredient in itemAmount.itemDef.Blueprint.ingredients) // Directly convert components into sub materials.
                        {
                            Item newItem = ItemManager.Create(componentIngredient.itemDef, Mathf.CeilToInt((componentIngredient.amount * recycler.recycleEfficiency)) * Mathf.CeilToInt(itemAmount.amount * recycler.recycleEfficiency), 0uL);
                            recycler.MoveItemToOutput(newItem);
                        }
                    }

                    item.UseItem();
                    return(true);
                }
            }

            return(null);
        }
示例#6
0
        public static void SaveBW(object sender, DoWorkEventArgs e)
        {
            AvatarSaveProc.SaveAll(); //???????
            WorldSave fsave;

            using (Recycler <WorldSave, WorldSave.Builder> recycler = WorldSave.Recycler())
            {
                WorldSave.Builder builder = recycler.OpenBuilder();
                ServerSaveManager.Get(false).DoSave(ref builder);
                fsave = builder.Build();
            }

            if (ShowObjectCount)
            {
                ObjectsCount = fsave.SceneObjectCount + fsave.InstanceObjectCount;
            }

            FileStream stream2 = File.Open(Directory.GetCurrentDirectory() + @"\save\server_data\rust_island_2013.sav", FileMode.Create, FileAccess.Write);

            fsave.WriteTo(stream2);
            stream2.Flush();
            stream2.Dispose(); //??

            SaveEndTime = DateTime.Now;
            AnnounceResults();
            BGW.Dispose();
        }
示例#7
0
        public void Deve_ter_status_rodando_quando_criar_processo_reciclagem()
        {
            var recycler = new Recycler();

            recycler.CreatedDate.Should().BeAfter(DateTime.MinValue);
            recycler.Status.Should().Be(JobStatus.Running);
        }
        private async void LoadAll()
        {
            try
            {
                //FindViewById<CardView>(Resource.Id.ReloadTest).Visibility = Android.Views.ViewStates.Gone;
                Tickets = await new AnsweredService().GetIncorrectTicketAsync(GetTicketBy.All);

                var meneger = new LinearLayoutManager(this)
                {
                    Orientation = LinearLayoutManager.Vertical
                };
                Recycler.SetLayoutManager(meneger);

                Recycler.SetAdapter(new EndUiAdapter(Tickets));
            }
            catch (SQLite.SQLiteException)
            {
                Android.Support.V7.App.AlertDialog.Builder alert = new Android.Support.V7.App.AlertDialog.Builder(this);
                alert.SetTitle("სტატისტიკა");
                alert.SetMessage("ჯერ გაიარე ტესტი");

                Dialog dialog = alert.Create();
                dialog.Show();
            }
        }
示例#9
0
        public SubmissionVM()
        {
            CollectorList = new ObservableCollection <Collector>();
            Recycler      = new Recycler();
            Collector     = new Collector();

            //to open update submission
            OpenUpdateSubmissionView = new Command(OpenUpdateSubmissionExecute);

            AddSubmission = new Command(AddSubmissionExecute);
            if (Material == default(Material))
            {
                Material = new Material();
            }
            if (Submission == default(Submission))
            {
                Submission = new Submission();
            }
            else
            {
                InitializeFromSubmission();
            }
            if (RecyclerVM.Recycler != null && Material != null)
            {
                GetCollectorList();
            }
        }
        // allow recycling of enabled blueprint categories
        object CanRecycle(Recycler recycler, Item item)
        {
            if (item.IsBlueprint())
            {
                ItemDefinition target = ItemManager.FindItemDefinition(item.blueprintTarget);

                if (target?.rarity == null)
                {
                    return(false);
                }

                if ((int)Config["Custom_" + target.shortname] == 0)
                {
                    return(false);
                }

                if ((target.rarity == Rarity.Common && common > 0) ||
                    (target.rarity == Rarity.Uncommon && uncommon > 0) ||
                    (target.rarity == Rarity.Rare && rare > 0) ||
                    ((target.rarity == Rarity.VeryRare || target.rarity == Rarity.None) && veryrare > 0))
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(null);
            }
        }
示例#11
0
        private async void SignUpExecute(object obj)
        {
            SignUpStatus = string.Empty;
            if (CheckPassword())
            {
                Recycler recycler = await RecyclerDA.GetRecycler(Recycler);

                if (recycler == null)
                {
                    Recycler.EcoLevel    = EcoLevelOne;
                    Recycler.TotalPoints = 0;
                    await RecyclerDA.AddRecycler(Recycler);

                    Username        = string.Empty;
                    Password        = string.Empty;
                    FullName        = string.Empty;
                    ConfirmPassword = string.Empty;
                    await Application.Current.MainPage.DisplayAlert("Sign Up", "You have successfully created a Recycler account ", "OK");

                    await Application.Current.MainPage.Navigation.PopAsync();
                }
                else
                {
                    SignUpStatus = "Username already exists! Please choose another username";
                }
            }
            else
            {
                SignUpStatus = "Confirmation password is not matched with your password";
            }
        }
示例#12
0
        object OnRecyclerToggle(Recycler recycler, BasePlayer player)
        {
            if (recycler.IsOn())
            {
                return(null);
            }

            if (useEconomics || useServerRewards)
            {
                return(null);
            }
            else
            {
                if (!HasRecycleable(recycler))
                {
                    recycler.StopRecycling();
                    return(true);
                }
                if (CostItemCheck(recycler, player.IPlayer))
                {
                    return(null);
                }
            }

            return(true);
        }
        private void Init()
        {
            glowSprite = CreateChild <UguiSprite>("glow");
            {
                glowSprite.Size            = new Vector2(BaseSize + GlowSizeOffset, BaseSize + GlowSizeOffset);
                glowSprite.SpriteName      = "glow-square-32";
                glowSprite.ImageType       = Image.Type.Sliced;
                glowSprite.Color           = ColorPreset.SecondaryFocus;
                glowSprite.RotationZ       = 45f;
                glowSprite.IsRaycastTarget = false;
            }
            fillSprite = CreateChild <UguiSprite>("fill");
            {
                fillSprite.Anchor          = AnchorType.Fill;
                fillSprite.Offset          = Offset.Zero;
                fillSprite.Color           = ColorPreset.SecondaryFocus;
                fillSprite.RotationZ       = 45f;
                fillSprite.IsRaycastTarget = false;

                fillSprite.AddEffect(new AdditiveShaderEffect());
            }

            showAni = new Anime();
            showAni.AnimateFloat((alpha) => glowSprite.Alpha = alpha)
            .AddTime(0f, 0f)
            .AddTime(0.05f, 0f, EaseType.QuadEaseOut)
            .AddTime(0.15f, 1f)
            .Build();
            showAni.AnimateFloat((alpha) => fillSprite.Alpha = alpha)
            .AddTime(0f, 0.85f, EaseType.QuadEaseOut)
            .AddTime(0.15f, 0.25f)
            .Build();
            showAni.AnimateVector2((size) => fillSprite.Size = size)
            .AddTime(0f, new Vector2(BaseSize + ShowShrinkSize, BaseSize + ShowShrinkSize), EaseType.CubicEaseOut)
            .AddTime(0.15f, new Vector2(BaseSize, BaseSize))
            .Build();
            showAni.AddEvent(showAni.Duration, () => repeatAni.PlayFromStart());

            hideAni = new Anime();
            hideAni.AddEvent(0f, () => repeatAni.Pause());
            hideAni.AnimateFloat((alpha) => glowSprite.Alpha = alpha)
            .AddTime(0f, () => glowSprite.Alpha)
            .AddTime(0.25f, 0f)
            .Build();
            hideAni.AnimateFloat((alpha) => fillSprite.Alpha = alpha)
            .AddTime(0f, () => fillSprite.Alpha)
            .AddTime(0.25f, 0f)
            .Build();
            hideAni.AddEvent(hideAni.Duration, () => Recycler.Return(this));

            repeatAni = new Anime()
            {
                WrapMode = WrapModeType.Loop,
            };
            repeatAni.AnimateFloat((alpha) => fillSprite.Alpha = alpha)
            .AddTime(0f, 0.25f, EaseType.QuadEaseOut)
            .AddTime(0.4f, 0.75f, EaseType.QuadEaseIn)
            .AddTime(0.8f, 0.25f)
            .Build();
        }
示例#14
0
    public static void Recycle(GameObject go)
    {
        if (Engine.isQuitting || go == null)
        {
            return;
        }

        Recycler r = go.GetComponent <Recycler>();

        if (r != null && r.isPooled)
        {
            go.SetActive(false);
            go.transform.parent = _instance.transform;

            ParticleScaler[] pScalers = go.GetComponentsInChildren <ParticleScaler>(true);
            for (int i = 0; i < pScalers.Length; i++)
            {
                pScalers[i].ResetScale();
            }
        }
        else
        {
            GameObject.Destroy(go);
        }
    }
示例#15
0
文件: Recycle.cs 项目: 5Dev24/Recycle
        private void DropRecyclerContents(BaseEntity e)
        {
            if (e is Recycler && this.IsRecycleBox(e))
            {
                Recycler r = e as Recycler;
                if ((r?.inventory?.itemList?.Count ?? 0) == 0)
                {
                    return;
                }

                BasePlayer p = this.PlayerFromRecycler(r.net.ID);
                if (p == null)
                {
                    return;
                }
                this.PrintToChat(p, this.GetMessage("Recycle", "Dropped", p));

                List <Item> items = r.inventory.itemList.ToList();

                if (this.Data.Settings.InventoryBeforeBag)
                {
                    for (int i = 0; i < items.Count; i++)
                    {
                        Item item = items[i];

                        bool flag = false;
                        if (!p.inventory.containerMain.IsFull())
                        {
                            flag = item.MoveToContainer(p.inventory.containerMain);
                        }
                        if (!flag && !p.inventory.containerBelt.IsFull())
                        {
                            item.MoveToContainer(p.inventory.containerBelt);
                        }

                        if (flag)
                        {
                            items.RemoveAt(i);
                            i--;
                        }
                    }
                }

                if (items.Count == 0)
                {
                    return;
                }

                DroppedItemContainer bag = GameManager.server.CreateEntity(Recycle.BackpackPrefab, p.transform.position + Vector3.up, Quaternion.identity) as DroppedItemContainer;
                bag.enableSaving = false;
                bag.TakeFrom(r.inventory);
                bag.Spawn();
                bag.lootPanelName = "smallwoodbox";
                bag.playerSteamID = p.userID;
                this.DroppedBags.Add(bag.net.ID, new EntityAndPlayer {
                    Entity = bag, Player = p
                });
            }
        }
示例#16
0
 private object CanRecycle(Recycler recycler, Item item)
 {
     if (blacklistedItems.Contains(item.info.shortname) || item.info.Blueprint == null || item.info.Blueprint.ingredients?.Count == 0)
     {
         return(false);
     }
     return(true);
 }
示例#17
0
 object CanRecycle(Recycler recycler, Item item)
 {
     if (item.info.shortname.Contains("can.") && item.info.shortname.Contains(".empty"))
     {
         return(true);
     }
     return(null);
 }
示例#18
0
            static Entry NewEntry(PoolChunk <T> chunk, long handle)
            {
                Entry entry = Recycler.Take();

                entry.Chunk  = chunk;
                entry.Handle = handle;
                return(entry);
            }
示例#19
0
        private object OnRecycleItem(Recycler recycler, Item item)
        {
            bool flag      = false;
            int  usedItems = 1;

            if (item.amount > 1)
            {
                usedItems = item.amount;
            }
            if (usedItems > maxItemsPerRecycle)
            {
                usedItems = maxItemsPerRecycle;
            }

            item.UseItem(usedItems);
            foreach (ItemInfo ingredient in ingredientList[item.info.shortname])
            {
                double multi = 1;
                if (multiplyList.ContainsKey("*"))
                {
                    multi = Convert.ToDouble(multiplyList["*"]);
                }
                if (multiplyList.ContainsKey(ingredient.itemName))
                {
                    multi = Convert.ToDouble(multiplyList[ingredient.itemName]);
                }
                int outputamount = Convert.ToInt32(usedItems * Convert.ToDouble(ingredient.itemAmount) * multi);
                if (outputamount < 1)
                {
                    continue;
                }
                if (!recycler.MoveItemToOutput(ItemManager.CreateByName(ingredient.itemName, outputamount)))
                {
                    flag = true;
                }
            }
            if (flag || !recycler.HasRecyclable())
            {
                recycler.StopRecycling();
                for (int i = 5; i <= 11; i++)
                {
                    Item _item = recycler.inventory.GetSlot(i);
                    if (_item == null)
                    {
                        continue;
                    }
                    if (_item.IsValid())
                    {
                        if (outputBlacklistedItems.Contains(_item.info.shortname))
                        {
                            _item.Remove();
                            _item.RemoveFromContainer();
                        }
                    }
                }
            }
            return(true);
        }
示例#20
0
        public void Deve_atualizar_status_executado()
        {
            var recycler = new Recycler();

            recycler.Executed();

            recycler.UpdatedDate.Should().HaveValue();
            recycler.Status.Should().Be(JobStatus.Executed);
        }
示例#21
0
        /// <summary>
        /// Retrieves the crafter of the given recycler. Returns null if none is found.
        /// </summary>
        public static Crafter GetCrafter(Recycler recycler)
        {
            if (!crafterLookup.ContainsKey(recycler))
            {
                return(null);
            }

            return(crafterLookup[recycler]);
        }
示例#22
0
        public async Task <IActionResult> CreateRecycler(int days)
        {
            Recycler recycler = new Recycler();
            Thread   thread   = new Thread(() => recycler.RecyclerDeleteAsync(days));

            thread.Start();

            return(new StatusCodeResult(202));
        }
示例#23
0
            private void Awake()
            {
                recycler = GetComponent <Recycler>();

                if (config.destroy.checkGround)
                {
                    InvokeRepeating("CheckGround", 5f, 5f);
                }
            }
示例#24
0
 private void OnRecyclerToggle(Recycler recycler, BasePlayer player)
 {
     if (recycler.IsOn())
     {
         return;
     }
     recycler.CancelInvoke("RecycleThink");
     timer.Once(0.1f, () => { recycler.Invoke("RecycleThink", recycleTime); });
 }
        void OnRecycleItem(Recycler recycler, Item item)
        {
            int mult = 1;

            if (item != null && int.TryParse((string)Config["Multiplier"], out mult))
            {
                item.amount = item.amount * mult;
            }
        }
示例#26
0
 public void WriteObjectSave(ref SavedObject.Builder saveobj)
 {
     using (Recycler <objectFireBarrel, objectFireBarrel.Builder> recycler = objectFireBarrel.Recycler())
     {
         objectFireBarrel.Builder builder = recycler.OpenBuilder();
         builder.SetOnFire(this.isOn);
         saveobj.SetFireBarrel(builder);
     }
 }
示例#27
0
        bool SendToOutput(Recycler recycler, string shortname, int amount)
        {
            Item item = ItemManager.CreateByName(shortname, amount);

            if (item != null)
            {
                return(recycler.MoveItemToOutput(item));
            }
            return(false);
        }
示例#28
0
        private object OnRecycleItem(Recycler recycler, Item item)
        {
            if (CrafterManager.ContainsRecycler(recycler))
            {
                // Prevent recycling
                return(true);
            }

            return(null);
        }
示例#29
0
        /// <param name="unloading">Specify true if the plugin is unloading.</param>
        public void Destroy(bool destroyOutputContainer, bool unloading = false)
        {
            resetDespawnTimer.DestroyToPool();

            foreach (var player in NearbyPlayers)
            {
                OnPlayerLeave(player);
            }

            if (!unloading)
            {
                // Drop queue items
                if (CraftingTasks.Count > 0)
                {
                    var container = new ItemContainer();
                    container.ServerInitialize(null, 36);

                    foreach (var task in CraftingTasks)
                    {
                        foreach (var ingredient in task.Blueprint.ingredients)
                        {
                            var item = ItemManager.CreateByItemID(ingredient.itemid, (int)ingredient.amount * task.Amount);

                            if (!item.MoveToContainer(container))
                            {
                                item.Drop(Position + Recycler.transform.up * 1.25f, Recycler.GetDropVelocity(), Recycler.ServerRotation);
                            }
                        }
                    }

                    var droppedContainer = container.Drop(Constants.ItemDropPrefab, Position + Recycler.transform.up * 1.25f, Recycler.ServerRotation);
                    droppedContainer.playerName = Lang.Translate(null, "queue-items");
                }
            }

            Recycler.Kill();
            CodeLock?.Kill();

            if (!outputContainer.IsDestroyed)
            {
                // Remove rock from output container that keeps it from despawning when emptied
                outputInventory.GetSlot(outputInventory.capacity - 1).Remove();

                // Force kill output bag if there's nothing in it.
                if (!destroyOutputContainer && OutputInventory.AnyItems())
                {
                    // Enable physics on output container
                    outputContainer.GetComponent <Rigidbody>().isKinematic = false;
                }
                else
                {
                    outputContainer.Kill();
                }
            }
        }
示例#30
0
        public static VesselUpdate VeselUpdateFromBytes(byte[] messageData)
        {
            VesselUpdate update = Recycler <VesselUpdate> .GetObject();

            using (MessageReader mr = new MessageReader(messageData))
            {
                update.planetTime      = mr.Read <double>();
                update.vesselID        = new Guid(mr.Read <string>());
                update.bodyName        = mr.Read <string>();
                update.rotation        = mr.Read <float[]>();
                update.angularVelocity = mr.Read <float[]>();
                //FlightState variables
                update.flightState = new FlightCtrlState();
                update.flightState.mainThrottle      = mr.Read <float>();
                update.flightState.wheelThrottleTrim = mr.Read <float>();
                update.flightState.X              = mr.Read <float>();
                update.flightState.Y              = mr.Read <float>();
                update.flightState.Z              = mr.Read <float>();
                update.flightState.killRot        = mr.Read <bool>();
                update.flightState.gearUp         = mr.Read <bool>();
                update.flightState.gearDown       = mr.Read <bool>();
                update.flightState.headlight      = mr.Read <bool>();
                update.flightState.wheelThrottle  = mr.Read <float>();
                update.flightState.roll           = mr.Read <float>();
                update.flightState.yaw            = mr.Read <float>();
                update.flightState.pitch          = mr.Read <float>();
                update.flightState.rollTrim       = mr.Read <float>();
                update.flightState.yawTrim        = mr.Read <float>();
                update.flightState.pitchTrim      = mr.Read <float>();
                update.flightState.wheelSteer     = mr.Read <float>();
                update.flightState.wheelSteerTrim = mr.Read <float>();
                //Action group controls
                update.actiongroupControls = mr.Read <bool[]>();
                //Position/velocity
                update.isSurfaceUpdate = mr.Read <bool>();
                if (update.isSurfaceUpdate)
                {
                    update.position      = mr.Read <double[]>();
                    update.velocity      = mr.Read <double[]>();
                    update.acceleration  = mr.Read <double[]>();
                    update.terrainNormal = mr.Read <float[]>();
                }
                else
                {
                    update.orbit = mr.Read <double[]>();
                }
                update.sasEnabled = mr.Read <bool>();
                if (update.sasEnabled)
                {
                    update.autopilotMode  = mr.Read <int>();
                    update.lockedRotation = mr.Read <float[]>();
                }
                return(update);
            }
        }
示例#31
0
        public GameEngine(int width, int height, bool fullScreen)
            : base()
        {
            graphicsDeviceManager = new GraphicsDeviceManager(this);
            screenManager = new ScreenManager(this);
            inputManager = new InputManager();
            recycler = new Recycler();

            GraphicsDeviceManager.PreferredBackBufferWidth = width;
            GraphicsDeviceManager.PreferredBackBufferHeight = height;
            graphicsDeviceManager.IsFullScreen = fullScreen;
            GraphicsDeviceManager.ApplyChanges();

            this.fullScreen = fullScreen;
            Content.RootDirectory = "Content";
        }