• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# Definitions.MyBlueprintDefinitionBase类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中Sandbox.Definitions.MyBlueprintDefinitionBase的典型用法代码示例。如果您正苦于以下问题:C# MyBlueprintDefinitionBase类的具体用法?C# MyBlueprintDefinitionBase怎么用?C# MyBlueprintDefinitionBase使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



MyBlueprintDefinitionBase类属于Sandbox.Definitions命名空间,在下文中一共展示了MyBlueprintDefinitionBase类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: MyRepairBlueprintToProduce

 public MyRepairBlueprintToProduce(MyFixedPoint amount, MyBlueprintDefinitionBase blueprint, uint inventoryItemId, MyObjectBuilderType inventoryItemType, MyStringHash inventoryItemSubtypeId) : base(amount, blueprint)
 {
     System.Diagnostics.Debug.Assert(Blueprint is MyRepairBlueprintDefinition, "MyRepairBlueprintToProduce class should be used together with blueprints type of MyRepairBlueprintDefinition only!");
     InventoryItemId = inventoryItemId;
     InventoryItemType = inventoryItemType;
     InventoryItemSubtypeId = inventoryItemSubtypeId;
 }
开发者ID:2asoft,项目名称:SpaceEngineers,代码行数:7,代码来源:MyCraftingComponentBase.cs


示例2: PostprocessAddSubblueprint

        private void PostprocessAddSubblueprint(MyBlueprintDefinitionBase blueprint, MyFixedPoint blueprintAmount)
        {
            for (int i = 0; i < blueprint.Prerequisites.Length; ++i)
            {
                Item prerequisite = blueprint.Prerequisites[i];
                prerequisite.Amount *= blueprintAmount;
                AddToItemList(m_tmpPrerequisiteList, prerequisite);
            }

            for (int i = 0; i < blueprint.Results.Length; ++i)
            {
                Item result = blueprint.Results[i];
                result.Amount *= blueprintAmount;
                AddToItemList(m_tmpResultList, result);
            }
        }
开发者ID:fluxit,项目名称:SpaceEngineers,代码行数:16,代码来源:MyCompositeBlueprintDefinition.cs


示例3: InsertQueueItemRequest

 public void InsertQueueItemRequest(int idx, MyBlueprintDefinitionBase blueprint, MyFixedPoint amount)
 {
     if (MyFakes.ENABLE_PRODUCTION_SYNC)
     {
         if (Sync.IsServer)
         {
             InsertQueueItem(idx, blueprint, amount);
             SyncObject.AddQueueItemAnnounce(blueprint, amount, idx);
         }
         else
             SyncObject.AddQueueItemRequest(blueprint, amount, idx);
     }
     else
     {
         InsertQueueItem(idx, blueprint, amount);
     }
 }
开发者ID:Krulac,项目名称:SpaceEngineers,代码行数:17,代码来源:MyProductionBlock.cs


示例4: InsertQueueItem

 protected override void InsertQueueItem(int idx, MyBlueprintDefinitionBase blueprint, MyFixedPoint amount)
 {
     if (idx == 0)
     {
         var queueItem = TryGetFirstQueueItem();
         if (queueItem.HasValue && queueItem.Value.Blueprint != blueprint)
             CurrentProgress = 0f;
     }
     base.InsertQueueItem(idx, blueprint, amount);
 }
开发者ID:notten,项目名称:SpaceEngineers,代码行数:10,代码来源:MyAssembler.cs


示例5: CheckInventoryContents

 private bool CheckInventoryContents(MyInventory inventory, MyBlueprintDefinitionBase.Item item, MyFixedPoint amountMultiplier)
 {
     return inventory.ContainItems(item.Amount * amountMultiplier, item.Id);
 }
开发者ID:notten,项目名称:SpaceEngineers,代码行数:4,代码来源:MyAssembler.cs


示例6: CheckInventoryCapacity

 private bool CheckInventoryCapacity(MyInventory inventory, MyBlueprintDefinitionBase.Item item, MyFixedPoint amountMultiplier)
 {
     return inventory.CanItemsBeAdded(item.Amount * amountMultiplier, item.Id);
 }
开发者ID:notten,项目名称:SpaceEngineers,代码行数:4,代码来源:MyAssembler.cs


示例7: FinishDisassembling

        private void FinishDisassembling(MyBlueprintDefinitionBase blueprint)
        {
            if (RepeatEnabled && Sync.IsServer) OutputInventory.ContentsChanged -= OutputInventory_ContentsChanged;
            foreach (var res in blueprint.Results)
            {
                OutputInventory.RemoveItemsOfType(res.Amount, res.Id);
            }
            if (RepeatEnabled && Sync.IsServer) OutputInventory.ContentsChanged += OutputInventory_ContentsChanged;

            var amountMult = (MyFixedPoint)(1.0f / MySession.Static.AssemblerEfficiencyMultiplier);
            for (int i = 0; i < blueprint.Prerequisites.Length; ++i)
            {
                var item = blueprint.Prerequisites[i];
                var itemOb = (MyObjectBuilder_PhysicalObject)MyObjectBuilderSerializer.CreateNewObject(item.Id.TypeId, item.Id.SubtypeName);
                InputInventory.AddItems(item.Amount * amountMult, itemOb);
            }
        }
开发者ID:notten,项目名称:SpaceEngineers,代码行数:17,代码来源:MyAssembler.cs


示例8: calculateBlueprintProductionTime

 private float calculateBlueprintProductionTime(MyBlueprintDefinitionBase currentBlueprint)
 {
     return currentBlueprint.BaseProductionTimeInSeconds * 1000 / (MySession.Static.AssemblerSpeedMultiplier * ((MyAssemblerDefinition)BlockDefinition).AssemblySpeed + UpgradeValues["Productivity"]);
 }
开发者ID:notten,项目名称:SpaceEngineers,代码行数:4,代码来源:MyAssembler.cs


示例9: RemoveItemToProduce

 public void RemoveItemToProduce(MyFixedPoint amount, MyBlueprintDefinitionBase blueprint, long senderEntityId, int itemId = -1)
 {        
     SerializableDefinitionId blueprintId = blueprint.Id;
     MyMultiplayer.RaiseEvent(this, x => x.RemoveItemToProduce_Request, amount, blueprintId, senderEntityId, itemId);
 }
开发者ID:2asoft,项目名称:SpaceEngineers,代码行数:5,代码来源:MyCraftingComponentBase.cs


示例10: AddItemToRepair

 public void AddItemToRepair(MyFixedPoint amount, MyBlueprintDefinitionBase blueprint, long senderEntityId, uint inventoryItemId, MyObjectBuilderType inventoryItemType, MyStringHash inventoryItemSubtypeId)
 {
     SerializableDefinitionId blueprintId = blueprint.Id;
     MyMultiplayer.RaiseEvent(this, x => x.AddItemToRepair_Request, amount, blueprintId, senderEntityId, inventoryItemId, inventoryItemType, inventoryItemSubtypeId);
 }
开发者ID:2asoft,项目名称:SpaceEngineers,代码行数:5,代码来源:MyCraftingComponentBase.cs


示例11: CanUseBlueprint

        public bool CanUseBlueprint(MyBlueprintDefinitionBase blueprint)
        {
            System.Diagnostics.Debug.Assert(blueprint != null, "Passing blueprint as null argument!");

            foreach (var blueprintClass in m_blueprintClasses)
                if (blueprintClass.ContainsBlueprint(blueprint)) return true;

            return false;
        }
开发者ID:2asoft,项目名称:SpaceEngineers,代码行数:9,代码来源:MyCraftingComponentBase.cs


示例12: MyBlueprintToProduce

 public MyBlueprintToProduce(MyFixedPoint amount, MyBlueprintDefinitionBase blueprint)
 {
     Amount = amount;
     Blueprint = blueprint;
 }
开发者ID:2asoft,项目名称:SpaceEngineers,代码行数:5,代码来源:MyCraftingComponentBase.cs


示例13: OnBlueprintProduced

 protected void OnBlueprintProduced(MyBlueprintDefinitionBase blueprint, MyFixedPoint amount)
 {
     SerializableDefinitionId blueprintId = blueprint.Id;
     MyMultiplayer.RaiseEvent(this, x => x.OnBlueprintProduced_Implementation, blueprintId, amount);   
 }
开发者ID:2asoft,项目名称:SpaceEngineers,代码行数:5,代码来源:MyCraftingComponentBase.cs


示例14: RaiseEvent_MissingRequiredItem

 protected void RaiseEvent_MissingRequiredItem(MyBlueprintDefinitionBase blueprint, MyBlueprintDefinitionBase.Item missingItem)
 {
     MyMultiplayer.RaiseEvent(this, x => x.MissingRequiredItem_Implementation, (SerializableDefinitionId)blueprint.Id, (SerializableDefinitionId)missingItem.Id);
 }
开发者ID:2asoft,项目名称:SpaceEngineers,代码行数:4,代码来源:MyCraftingComponentBase.cs


示例15: InsertQueueItem

        protected virtual void InsertQueueItem(int idx, MyBlueprintDefinitionBase blueprint, MyFixedPoint amount)
        {
            Debug.Assert(idx <= m_queue.Count);
            Debug.Assert(CanUseBlueprint(blueprint));
            Debug.Assert(amount > 0);

            QueueItem item = new QueueItem();
            item.Amount = amount;
            item.Blueprint = blueprint;

            if (CanUseBlueprint(item.Blueprint))
            {
                if (m_queue.IsValidIndex(idx) && m_queue[idx].Blueprint == item.Blueprint)
                {
                    // Increase amount if there is same kind of item at this index.
                    item.Amount += m_queue[idx].Amount;
                    item.ItemId = m_queue[idx].ItemId;
                    m_queue[idx] = item;
                }
                else if (m_queue.Count > 0 && (idx >= m_queue.Count || idx == -1) && m_queue[m_queue.Count - 1].Blueprint == item.Blueprint)
                {
                    // Add to the last item in the queue if it is the same.
                    item.Amount += m_queue[m_queue.Count - 1].Amount;
                    item.ItemId = m_queue[m_queue.Count - 1].ItemId;
                    m_queue[m_queue.Count - 1] = item;
                }
                else
                {
                    if (idx == -1)
                        idx = m_queue.Count;

                    // Reset timer when adding first item. Otherwise we might produce it faster than possible.
                    if (m_queue.Count == 0)
                        m_lastUpdateTime = MySandboxGame.TotalGamePlayTimeInMilliseconds;

                    // Put new item into the queue with given amount and type.
                    item.ItemId = NextItemId;
                    m_queue.Insert(idx, item);
                }

                UpdatePower();

                OnQueueChanged();
            }
        }
开发者ID:Krulac,项目名称:SpaceEngineers,代码行数:45,代码来源:MyProductionBlock.cs


示例16: ShowBlueprintComponents

        private void ShowBlueprintComponents(MyBlueprintDefinitionBase blueprint, MyFixedPoint amount)
        {
            m_materialsList.Clear();
            if (blueprint == null)
                return;

            AddComponentPrerequisites(blueprint, amount, m_requiredCountCache);
            FillMaterialList(m_requiredCountCache);
            m_requiredCountCache.Clear();
        }
开发者ID:fluxit,项目名称:SpaceEngineers,代码行数:10,代码来源:MyTerminalProductionController.cs


示例17: AddComponentPrerequisites

        private static void AddComponentPrerequisites(MyBlueprintDefinitionBase blueprint, MyFixedPoint multiplier, Dictionary<MyDefinitionId, MyFixedPoint> outputAmounts)
        {
            foreach (var prerequisite in blueprint.Prerequisites)
            {
                if (!outputAmounts.ContainsKey(prerequisite.Id))
                    outputAmounts[prerequisite.Id] = 0;

                var amountMult = (MyFixedPoint)(1.0f / MySession.Static.AssemblerEfficiencyMultiplier);
                outputAmounts[prerequisite.Id] += prerequisite.Amount * multiplier * amountMult;
            }
        }
开发者ID:fluxit,项目名称:SpaceEngineers,代码行数:11,代码来源:MyTerminalProductionController.cs


示例18: MaxProducableAmount

        public MyFixedPoint MaxProducableAmount(MyBlueprintDefinitionBase blueprintDefinition, bool raiseMissingRequiredItemEvent = false)
        {
            if (MySession.Static.CreativeMode)
                return MyFixedPoint.MaxValue;

            var inventory = (Entity as MyEntity).GetInventory();

            if (inventory == null)
            {
                System.Diagnostics.Debug.Fail("Inventory was not found on the entity!");
                return 0;
            }

            MyFixedPoint maxProducableAmount = MyFixedPoint.MaxValue;

            foreach (var requiredItem in blueprintDefinition.Prerequisites)
            {
                var itemAmount = inventory.GetItemAmount( requiredItem.Id, substitute: true);
                var producableAmount = MyFixedPoint.Floor((MyFixedPoint)((float)itemAmount / (float)requiredItem.Amount));
                maxProducableAmount = MyFixedPoint.Min(maxProducableAmount, producableAmount);
                if (maxProducableAmount == 0)
                {
                    if (raiseMissingRequiredItemEvent)
                    {
                        RaiseEvent_MissingRequiredItem(blueprintDefinition, requiredItem);
                    }
                    return maxProducableAmount;
                }
            }

            return maxProducableAmount;           
        }
开发者ID:2asoft,项目名称:SpaceEngineers,代码行数:32,代码来源:MyCraftingComponentBase.cs


示例19: ComputeAmountThatFits

        public MyFixedPoint ComputeAmountThatFits(MyBlueprintDefinitionBase blueprint)
        {
            if (!MyPerGameSettings.ConstrainInventory())
                return MyFixedPoint.MaxValue;

            var amountThatFits = (MaxVolume - m_currentVolume) * (1.0f / blueprint.OutputVolume);
            amountThatFits = MyFixedPoint.Max(amountThatFits, 0); // In case we added more than we can carry using debug keys.

            if (blueprint.Atomic)
                amountThatFits = MyFixedPoint.Floor(amountThatFits);

            return amountThatFits;
        }
开发者ID:liiir1985,项目名称:SpaceEngineers,代码行数:13,代码来源:MyInventory.cs


示例20: RemovePrereqItemsFromInventory

        protected void RemovePrereqItemsFromInventory(MyBlueprintDefinitionBase definition, MyFixedPoint amountMult)
        {
            System.Diagnostics.Debug.Assert(Sync.IsServer, "This method should be called only on server!");

            if (!Sync.IsServer)
                return;

            if (MySession.Static.CreativeMode)
                return;

            var inventory = (Entity as MyEntity).GetInventory();

            if (inventory == null)
            {
                System.Diagnostics.Debug.Fail("Inventory was not found on the entity!");
                return;
            }

            foreach (var reqItem in definition.Prerequisites)
            {
                MyFixedPoint amountToRemove = reqItem.Amount * amountMult;
                MyDefinitionId itemId = reqItem.Id;
                MyFixedPoint removed = 0;

                if (MySessionComponentEquivalency.Static != null && MySessionComponentEquivalency.Static.HasEquivalents(itemId))
                {
                    MyFixedPoint amountRemaining = amountToRemove;
                    var eqGroup = MySessionComponentEquivalency.Static.GetEquivalents(itemId);
                    foreach (var element in eqGroup)
                    {
                        MyFixedPoint removedThisItem = inventory.RemoveItemsOfType(amountRemaining, element);
                        amountRemaining -= removedThisItem;
                        removed += removedThisItem;
                        if (amountRemaining == 0) break;
                    }
                }
                else
                {
                    System.Diagnostics.Debug.Assert(amountToRemove <= inventory.GetItemAmount(reqItem.Id, substitute: true), "Trying to remove higher amount than is present in inventory!");
                    removed += inventory.RemoveItemsOfType(amountToRemove, itemId);
                }
                System.Diagnostics.Debug.Assert(removed == amountToRemove, "Removed different amount, than expected!");
            }
        }
开发者ID:2asoft,项目名称:SpaceEngineers,代码行数:44,代码来源:MyCraftingComponentBase.cs



注:本文中的Sandbox.Definitions.MyBlueprintDefinitionBase类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# Definitions.MyCubeBlockDefinition类代码示例发布时间:2022-05-26
下一篇:
C# Definitions.MyObjectBuilder_DefinitionBase类代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap