Beispiel #1
0
        static ItemObject CreateItem(EnvironmentObject env, ItemID itemID, MaterialID materialID, IntVector3 p)
        {
            var builder = new ItemObjectBuilder(itemID, materialID);
            var item    = builder.Create(env.World);

            item.MoveToMustSucceed(env, p);
            return(item);
        }
Beispiel #2
0
        public static void AddGem(LivingObject living)
        {
            var world = living.World;

            var materials = Materials.GetMaterials(MaterialCategory.Gem).ToArray();
            var material  = materials[Helpers.GetRandomInt(materials.Length)].ID;

            var itemBuilder = new ItemObjectBuilder(ItemID.Gem, material);
            var item        = itemBuilder.Create(world);

            item.MoveToMustSucceed(living);
        }
Beispiel #3
0
        public static FoodGenerator Create(World world)
        {
            var builder = new ItemObjectBuilder(ItemID.Contraption, MaterialID.Diamond)
            {
                Name  = "Food Generator",
                Color = GameColor.Gold,
            };

            var item = new FoodGenerator(builder);

            item.Initialize(world);
            return(item);
        }
Beispiel #4
0
        void CreateItems(LivingObject living, int numItems)
        {
            var gemMaterials = Materials.GetMaterials(MaterialCategory.Gem).ToArray();

            for (int i = 0; i < numItems; ++i)
            {
                var material = gemMaterials[m_random.Next(gemMaterials.Length)].ID;
                var builder  = new ItemObjectBuilder(ItemID.Gem, material);
                var item     = builder.Create(living.World);

                item.MoveTo(living);
            }
        }
Beispiel #5
0
        //  Write this object into message-out
        internal override void Write(BinaryWriter binaryWriter)
        {
            base.Write(binaryWriter);

            //  Amount
            MyMwcLog.IfNetVerbose_AddToLog("Amount: " + Amount);
            MyMwcMessageOut.WriteFloat(Amount, binaryWriter);

            // Item's objectbuilder
            bool isItemsObjectBuilder = ItemObjectBuilder != null;

            MyMwcMessageOut.WriteBool(isItemsObjectBuilder, binaryWriter);
            if (isItemsObjectBuilder)
            {
                ItemObjectBuilder.Write(binaryWriter);
            }
        }
Beispiel #6
0
        //  Read this object from message-in
        internal override bool Read(BinaryReader binaryReader, EndPoint senderEndPoint, int gameVersion)
        {
            if (base.Read(binaryReader, senderEndPoint, gameVersion) == false)
            {
                return(NetworkError());
            }

            //  Amount
            float?amount = MyMwcMessageIn.ReadFloat(binaryReader);

            if (amount == null)
            {
                return(NetworkError());
            }
            Amount = amount.Value;
            MyMwcLog.IfNetVerbose_AddToLog("Amount: " + Amount);

            //  Item's objectbuilder
            bool?isItemObjectBuilder = MyMwcMessageIn.ReadBoolEx(binaryReader, senderEndPoint);

            if (isItemObjectBuilder == null)
            {
                return(NetworkError());
            }
            if (isItemObjectBuilder.Value)
            {
                ItemObjectBuilder = MyMwcObjectBuilder_Base.ReadAndCreateNewObject(binaryReader, senderEndPoint) as MyMwcObjectBuilder_Base;
                if (ItemObjectBuilder == null)
                {
                    return(NetworkError());
                }
                if (ItemObjectBuilder.Read(binaryReader, senderEndPoint, gameVersion) == false)
                {
                    return(NetworkError());
                }
            }
            else
            {
                ItemObjectBuilder = null;
            }

            return(true);
        }
Beispiel #7
0
        void OnTickStart()
        {
            if (this.Environment == null)
            {
                return;
            }

            if (!this.Environment.GetContents(this.Location).OfType <ItemObject>().Any(o => o.ItemID == Dwarrowdelf.ItemID.Food))
            {
                var builder = new ItemObjectBuilder(ItemID.Food, Dwarrowdelf.MaterialID.Flesh)
                {
                    Color            = GameColor.Green,
                    NutritionalValue = 200,
                };
                var ob = builder.Create(this.World);

                var ok = ob.MoveTo(this.Container, this.Location);
                if (!ok)
                {
                    ob.Destruct();
                }
            }

            if (!this.Environment.GetContents(this.Location).OfType <ItemObject>().Any(o => o.ItemID == Dwarrowdelf.ItemID.Drink))
            {
                var builder = new ItemObjectBuilder(ItemID.Drink, Dwarrowdelf.MaterialID.Water)
                {
                    Color            = GameColor.Aquamarine,
                    RefreshmentValue = 200,
                };
                var ob = builder.Create(this.World);

                var ok = ob.MoveTo(this.Container, this.Location);
                if (!ok)
                {
                    ob.Destruct();
                }
            }
        }
Beispiel #8
0
 FoodGenerator(ItemObjectBuilder builder)
     : base(builder)
 {
 }
Beispiel #9
0
        LivingObject CreateDwarf(int i)
        {
            var builder = new LivingObjectBuilder(LivingID.Dwarf)
            {
                Color = (GameColor)m_random.Next(GameColorRGB.NUMCOLORS - 1) + 1,
            };

            switch (i)
            {
            case 0:
                builder.Name = "Doc";
                builder.SetSkillLevel(SkillID.Fighting, 100);
                break;

            case 1:
                builder.Name = "Grumpy";
                builder.SetSkillLevel(SkillID.Fighting, 100);
                break;

            case 2:
                builder.Name = "Happy";
                builder.SetSkillLevel(SkillID.Fighting, 100);
                break;

            case 3:
                builder.Name = "Sleepy";
                builder.SetSkillLevel(SkillID.Fighting, 100);
                break;

            case 4:
                builder.Name = "Bashful";
                builder.SetSkillLevel(SkillID.Fighting, 100);
                break;

            case 5:
                builder.Name = "Sneezy";
                builder.SetSkillLevel(SkillID.Fighting, 100);
                break;

            case 6:
                builder.Name = "Dopey";
                builder.SetSkillLevel(SkillID.Fighting, 100);
                break;
            }

            var dwarf = builder.Create(this.World);

            dwarf.SetAI(new DwarfAI(dwarf));


            var gemMaterials = Materials.GetMaterials(MaterialCategory.Gem).ToArray();
            var material     = gemMaterials[m_random.Next(gemMaterials.Length)].ID;

            var itemBuilder = new ItemObjectBuilder(ItemID.Gem, material);
            var item        = itemBuilder.Create(this.World);

            item.MoveTo(dwarf);


            return(dwarf);
        }
Beispiel #10
0
 public override void RemapEntityIds(IMyEntityIdRemapContext remapContext)
 {
     base.RemapEntityIds(remapContext);
     ItemObjectBuilder.RemapEntityIds(remapContext);
 }