示例#1
0
        public void BeginCrafting(Entity compo1, Entity compo2, Entity source, NetConnection sourceConnection)
        //Check for components and remove.
        {
            if (!isValidRecipe(compo1.Template.Name, compo2.Template.Name))
            {
                return;
            }
            CraftingEntry recipe    = getRecipe(compo1.Template.Name, compo2.Template.Name);
            var           newTicket = new CraftingTicket();

            if (recipe.components.Count < 2)
            {
                return;
            }

            newTicket.component1       = compo1;
            newTicket.component2       = compo2;
            newTicket.sourceEntity     = source;
            newTicket.result           = recipe.result;
            newTicket.doneAt           = DateTime.Now.AddSeconds(recipe.secondsToCreate);
            newTicket.sourceConnection = sourceConnection;

            craftingTickets.Add(newTicket);

            NetOutgoingMessage startCraftMsg = IoCManager.Resolve <ISS14NetServer>().CreateMessage();

            //Not starcraft. sorry.
            startCraftMsg.Write((byte)NetMessage.PlayerUiMessage);
            startCraftMsg.Write((byte)UiManagerMessage.ComponentMessage);
            startCraftMsg.Write((byte)GuiComponentType.ComboGui);
            startCraftMsg.Write((byte)ComboGuiMessage.ShowCraftBar);
            startCraftMsg.Write(recipe.secondsToCreate);

            _netServer.SendMessage(startCraftMsg, sourceConnection, NetDeliveryMethod.ReliableUnordered);
        }
示例#2
0
        private void sendCraftSuccess(NetConnection connection, Entity result, CraftingTicket ticket)
        {
            NetOutgoingMessage successMsg = IoCManager.Resolve <ISS14NetServer>().CreateMessage();

            successMsg.Write((byte)NetMessage.PlayerUiMessage);
            successMsg.Write((byte)UiManagerMessage.ComponentMessage);
            successMsg.Write((byte)GuiComponentType.ComboGui);
            successMsg.Write((byte)ComboGuiMessage.CraftSuccess);
            successMsg.Write(ticket.component1.Template.Name);
            successMsg.Write(ticket.component1.Name);
            successMsg.Write(ticket.component2.Template.Name);
            successMsg.Write(ticket.component2.Name);
            successMsg.Write(result.Template.Name);
            successMsg.Write(result.Name);
            _netServer.SendMessage(successMsg, connection, NetDeliveryMethod.ReliableUnordered);
            removeTicketByConnection(connection); //Better placement for this.
        }
 private void sendCraftSuccess(NetConnection connection, Entity result, CraftingTicket ticket)
 {
     NetOutgoingMessage successMsg = IoCManager.Resolve<ISS14NetServer>().CreateMessage();
     successMsg.Write((byte) NetMessage.PlayerUiMessage);
     successMsg.Write((byte) UiManagerMessage.ComponentMessage);
     successMsg.Write((byte) GuiComponentType.ComboGui);
     successMsg.Write((byte) ComboGuiMessage.CraftSuccess);
     successMsg.Write(ticket.component1.Template.Name);
     successMsg.Write(ticket.component1.Name);
     successMsg.Write(ticket.component2.Template.Name);
     successMsg.Write(ticket.component2.Name);
     successMsg.Write(result.Template.Name);
     successMsg.Write(result.Name);
     _netServer.SendMessage(successMsg, connection, NetDeliveryMethod.ReliableUnordered);
     removeTicketByConnection(connection); //Better placement for this.
 }
        public void BeginCrafting(Entity compo1, Entity compo2, Entity source, NetConnection sourceConnection)
            //Check for components and remove.
        {
            if (!isValidRecipe(compo1.Template.Name, compo2.Template.Name)) return;
            CraftingEntry recipe = getRecipe(compo1.Template.Name, compo2.Template.Name);
            var newTicket = new CraftingTicket();
            if (recipe.components.Count < 2) return;

            newTicket.component1 = compo1;
            newTicket.component2 = compo2;
            newTicket.sourceEntity = source;
            newTicket.result = recipe.result;
            newTicket.doneAt = DateTime.Now.AddSeconds(recipe.secondsToCreate);
            newTicket.sourceConnection = sourceConnection;

            craftingTickets.Add(newTicket);

            NetOutgoingMessage startCraftMsg = IoCManager.Resolve<ISS14NetServer>().CreateMessage();
            //Not starcraft. sorry.
            startCraftMsg.Write((byte) NetMessage.PlayerUiMessage);
            startCraftMsg.Write((byte) UiManagerMessage.ComponentMessage);
            startCraftMsg.Write((byte) GuiComponentType.ComboGui);
            startCraftMsg.Write((byte) ComboGuiMessage.ShowCraftBar);
            startCraftMsg.Write(recipe.secondsToCreate);

            _netServer.SendMessage(startCraftMsg, sourceConnection, NetDeliveryMethod.ReliableUnordered);
        }
示例#5
0
        public void removeTicketByConnection(NetConnection connection)
        {
            CraftingTicket ticket = craftingTickets.First(x => x.sourceConnection == connection);

            craftingTickets.Remove(ticket);
        }