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

C# DwarfCorp.Voxel类代码示例

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

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



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

示例1: Flag

        public Flag(Vector3 position)
            : base("Flag", PlayState.ComponentManager.RootComponent, Matrix.CreateTranslation(position), new Vector3(1.0f, 1.0f, 1.0f), Vector3.Zero)
        {
            SpriteSheet spriteSheet = new SpriteSheet(ContentPaths.Entities.Furniture.interior_furniture);
            List<Point> frames = new List<Point>
            {
                new Point(0, 2),
                new Point(1, 2),
                new Point(2, 2)
            };
            Animation lampAnimation = new Animation(GameState.Game.GraphicsDevice, new SpriteSheet(ContentPaths.Entities.Furniture.interior_furniture), "Flag", 32, 32, frames, true, Color.White, 5.0f + MathFunctions.Rand(), 1f, 1.0f, false);

            Sprite sprite = new Sprite(PlayState.ComponentManager, "sprite", this, Matrix.Identity, spriteSheet, false)
            {
                OrientationType = Sprite.OrientMode.YAxis
            };
            sprite.AddAnimation(lampAnimation);

            Voxel voxelUnder = new Voxel();

            if (PlayState.ChunkManager.ChunkData.GetFirstVoxelUnder(position, ref voxelUnder))
            {
                VoxelListener listener = new VoxelListener(PlayState.ComponentManager, this, PlayState.ChunkManager, voxelUnder);
            }

            lampAnimation.Play();
            Tags.Add("Flag");

            CollisionType = CollisionManager.CollisionType.Static;
        }
开发者ID:scorvi,项目名称:dwarfcorp,代码行数:30,代码来源:Flag.cs


示例2: BuildVoxelTask

 public BuildVoxelTask(Voxel voxel, VoxelType type)
 {
     Name = "Put voxel of type: " + type.Name + " on voxel " + voxel.Position;
     Voxel = voxel;
     VoxType = type;
     Priority = PriorityType.Low;
 }
开发者ID:scorvi,项目名称:dwarfcorp,代码行数:7,代码来源:BuildVoxelTask.cs


示例3: CraftItemAct

 public CraftItemAct(CreatureAI creature, Voxel voxel, string type)
     : base(creature)
 {
     ItemType = type;
     Voxel = voxel;
     Name = "Build craft item";
 }
开发者ID:scorvi,项目名称:dwarfcorp,代码行数:7,代码来源:CraftItemAct.cs


示例4: CraftItemTask

 public CraftItemTask(Voxel voxel, string type)
 {
     Name = "Craft item " + voxel.GridPosition + " " + voxel.ChunkID.X + " " + voxel.ChunkID.Y + " " + voxel.ChunkID.Z;
     Voxel = voxel;
     CraftType = type;
     Priority = PriorityType.Low;
 }
开发者ID:scorvi,项目名称:dwarfcorp,代码行数:7,代码来源:CraftItemTask.cs


示例5: PlaceVoxelAct

 public PlaceVoxelAct(Voxel voxel, CreatureAI agent, ResourceAmount resource)
     : base(agent)
 {
     Agent = agent;
     Voxel = voxel;
     Name = "Build Voxel " + voxel.ToString();
     Resource = resource;
 }
开发者ID:scorvi,项目名称:dwarfcorp,代码行数:8,代码来源:PlaceVoxelAct.cs


示例6: VoxelListener

 public VoxelListener(ComponentManager manager, GameComponent parent, ChunkManager chunkManager, Voxel vref)
     : base("VoxelListener", parent)
 {
     Chunk = vref.Chunk;
     VoxelID = new Point3(vref.GridPosition);
     Chunk.OnVoxelDestroyed += VoxelListener_OnVoxelDestroyed;
     ChunkID = Chunk.ID;
 }
开发者ID:scorvi,项目名称:dwarfcorp,代码行数:8,代码来源:VoxelListener.cs


示例7: CreateCraftItemAct

 public CreateCraftItemAct(Voxel voxel, CreatureAI agent, string itemType)
     : base(agent)
 {
     Agent = agent;
     Voxel = voxel;
     Name = "Create craft item";
     ItemType = itemType;
 }
开发者ID:scorvi,项目名称:dwarfcorp,代码行数:8,代码来源:CreateCraftItemAct.cs


示例8: Tinter

 public Tinter(string name, GameComponent parent, Matrix localTransform, Vector3 boundingBoxExtents, Vector3 boundingBoxPos, bool collisionManager)
     : base(name, parent, localTransform, boundingBoxExtents, boundingBoxPos, collisionManager)
 {
     LightsWithVoxels = true;
     Tint = new Color(255, 255, 0);
     LightingTimer = new Timer(0.2f, true);
     StartTimer = new Timer(0.5f, true);
     TargetTint = Tint;
     TintChangeRate = 1.0f;
     LightsWithVoxels = true;
     VoxelUnder = new Voxel();
 }
开发者ID:scorvi,项目名称:dwarfcorp,代码行数:12,代码来源:Tinter.cs


示例9: GetDistance

        public static float GetDistance(Voxel a, Voxel b, Creature.MoveType action, ChunkManager chunks)
        {
            if(!b.IsEmpty)
            {
                return 100000;
            }
            else
            {
                float score = (a.Position - b.Position).LengthSquared() * ActionCost(action);

                return score;
            }
        }
开发者ID:scorvi,项目名称:dwarfcorp,代码行数:13,代码来源:AStarPlanner.cs


示例10: FindPath

        public static List<Creature.MoveAction> FindPath(CreatureMovement mover, Voxel start, GoalRegion goal, ChunkManager chunks, int maxExpansions)
        {
            List<Creature.MoveAction> p = new List<Creature.MoveAction>();
            bool success = Path(mover, start, goal, chunks, maxExpansions, ref p, false);

            if(success)
            {
                return p;
            }
            else
            {
                return null;
            }
        }
开发者ID:scorvi,项目名称:dwarfcorp,代码行数:14,代码来源:AStarPlanner.cs


示例11: GuardVoxelAct

        public GuardVoxelAct(CreatureAI agent, Voxel voxel)
            : base(agent)
        {
            Voxel = voxel;
            Name = "Guard Voxel " + voxel;

            Tree = new Sequence
                (
                    new GoToVoxelAct(voxel, PlanAct.PlanType.Adjacent, agent),
                    new StopAct(Agent),
                    new WhileLoop(new WanderAct(Agent, 1.0f, 0.5f, 0.1f), new Condition(LoopCondition)),
                    new Condition(ExitCondition)
                );
        }
开发者ID:scorvi,项目名称:dwarfcorp,代码行数:14,代码来源:GuardVoxelAct.cs


示例12: GoToVoxelAct

 public GoToVoxelAct(Voxel voxel, PlanAct.PlanType planType, CreatureAI creature, float radius = 0.0f)
     : base(creature)
 {
     Voxel = voxel;
     Name = "Go to Voxel";
     if(Voxel != null)
     {
         Tree = new Sequence(
                               new SetBlackboardData<Voxel>(Agent, "TargetVoxel", Voxel),
                               new PlanAct(Agent, "PathToVoxel", "TargetVoxel", planType) { Radius = radius},
                               new FollowPathAnimationAct(Agent, "PathToVoxel"),
                               new StopAct(Agent));
     }
 }
开发者ID:scorvi,项目名称:dwarfcorp,代码行数:14,代码来源:GoToVoxelAct.cs


示例13: Tree

        public Tree(Vector3 position, string asset, float treeSize)
            : base("Tree", PlayState.ComponentManager.RootComponent, Matrix.Identity, new Vector3(treeSize * 2, treeSize * 3, treeSize * 2), new Vector3(treeSize * 0.5f, treeSize * 0.25f, treeSize * 0.5f))
        {
            HurtTimer = new Timer(1.0f, false);
            ComponentManager componentManager = PlayState.ComponentManager;
            Matrix matrix = Matrix.Identity;
            matrix.Translation = position;
            LocalTransform = matrix;

            new Mesh(componentManager, "Model", this, Matrix.CreateRotationY((float)(PlayState.Random.NextDouble() * Math.PI)) * Matrix.CreateScale(treeSize, treeSize, treeSize) * Matrix.CreateTranslation(new Vector3(0.7f, 0.0f, 0.7f)), asset, false);

            Health health = new Health(componentManager, "HP", this, 100.0f * treeSize, 0.0f, 100.0f * treeSize);

            new Flammable(componentManager, "Flames", this, health);

            Tags.Add("Vegetation");
            Tags.Add("EmitsWood");

            new MinimapIcon(this, new ImageFrame(TextureManager.GetTexture(ContentPaths.GUI.map_icons), 16, 1, 0));
            Voxel voxelUnder = new Voxel();

            if (PlayState.ChunkManager.ChunkData.GetFirstVoxelUnder(position, ref voxelUnder))
            {
                new VoxelListener(componentManager, this, PlayState.ChunkManager, voxelUnder);
            }

            Inventory inventory = new Inventory("Inventory", this)
            {
                Resources = new ResourceContainer
                {
                    MaxResources = (int)(treeSize * 10)
                }
            };

            inventory.Resources.AddResource(new ResourceAmount()
            {
                NumResources = (int)(treeSize * 10),
                ResourceType = ResourceLibrary.Resources[ResourceLibrary.ResourceType.Wood]
            });

            Particles = new ParticleTrigger("Leaves", componentManager, "LeafEmitter", this,
                Matrix.Identity, new Vector3(treeSize * 2, treeSize * 3, treeSize * 2), new Vector3(treeSize * 0.5f, treeSize * 0.25f, treeSize * 0.5f))
            {
                SoundToPlay = ContentPaths.Audio.vegetation_break
            };

            AddToCollisionManager = true;
            CollisionType = CollisionManager.CollisionType.Static;
        }
开发者ID:scorvi,项目名称:dwarfcorp,代码行数:49,代码来源:Tree.cs


示例14: Bed

        public Bed(Vector3 position)
            : base("Bed", PlayState.ComponentManager.RootComponent, Matrix.CreateTranslation(position), new Vector3(1.5f, 0.5f, 0.75f), new Vector3(-0.5f + 1.5f * 0.5f, -0.5f + 0.25f, -0.5f + 0.75f * 0.5f))
        {
            Texture2D spriteSheet = TextureManager.GetTexture(ContentPaths.Entities.Furniture.bedtex);
            bedModel = new Box(PlayState.ComponentManager, "bedbox", this, Matrix.CreateTranslation(-0.5f, -0.5f, -0.5f) * Matrix.CreateRotationY((float)Math.PI * 0.5f), new Vector3(1.0f, 1.0f, 2.0f), new Vector3(0.5f, 0.5f, 1.0f), PrimitiveLibrary.BoxPrimitives["bed"], spriteSheet);

            Voxel voxelUnder = new Voxel();

            if (PlayState.ChunkManager.ChunkData.GetFirstVoxelUnder(position, ref voxelUnder))
            {
                VoxelListener listener = new VoxelListener(PlayState.ComponentManager, this, PlayState.ChunkManager, voxelUnder);
            }

            Tags.Add("Bed");
            CollisionType = CollisionManager.CollisionType.Static;
        }
开发者ID:scorvi,项目名称:dwarfcorp,代码行数:16,代码来源:Bed.cs


示例15: KillVoxelAct

 public KillVoxelAct(Voxel voxel, CreatureAI creature)
     : base(creature)
 {
     Voxel = voxel;
     Name = "Kill Voxel " + voxel.Position;
     Tree = new Sequence(
         new SetBlackboardData<Voxel>(creature, "DigVoxel", voxel),
         new Sequence(
                       new Wrap(() => IncrementAssignment(creature, "DigVoxel", 1)),
                       new GoToVoxelAct(voxel, PlanAct.PlanType.Adjacent, creature),
                       new Wrap(() => CheckIsDigDesignation(creature, "DigVoxel")),
                       new DigAct(Agent, "DigVoxel"),
                       new ClearBlackboardData(creature, "DigVoxel")
                     )
                     | new Wrap(() => IncrementAssignment(creature, "DigVoxel", -1)) & false);
 }
开发者ID:scorvi,项目名称:dwarfcorp,代码行数:16,代码来源:KillVoxelAct.cs


示例16: Run

        public override IEnumerable<Status> Run()
        {
            Body target = Creature.AI.Blackboard.GetData<Body>(EntityName);
            if (target == null)
            {
                yield return Status.Fail;
            }
            else
            {
                Voxel voxel = new Voxel();

                if(!Creature.Chunks.ChunkData.GetFirstVoxelUnder(target.BoundingBox.Center(), ref voxel, true))
                {
                    yield return Status.Fail;
                }
                else
                {
                    Agent.Blackboard.SetData(VoxelOutName, voxel);
                    yield return Status.Success;
                }
            }
        }
开发者ID:scorvi,项目名称:dwarfcorp,代码行数:22,代码来源:SetTargetVoxelFromEntityAct.cs


示例17: Forge

        public Forge(Vector3 position)
            : base("Forge", PlayState.ComponentManager.RootComponent, Matrix.CreateTranslation(position), new Vector3(1.0f, 1.0f, 1.0f), Vector3.Zero)
        {
            SpriteSheet spriteSheet = new SpriteSheet(ContentPaths.Entities.Furniture.interior_furniture);

            List<Point> frames = new List<Point>
            {
                new Point(1, 3),
                new Point(3, 3),
                new Point(2, 3),
                new Point(3, 3)
            };
            Animation lampAnimation = new Animation(GameState.Game.GraphicsDevice, new SpriteSheet(ContentPaths.Entities.Furniture.interior_furniture), "Forge", 32, 32, frames, true, Color.White, 3.0f, 1f, 1.0f, false);

            Sprite sprite = new Sprite(PlayState.ComponentManager, "sprite", this, Matrix.Identity, spriteSheet, false)
            {
                LightsWithVoxels = false
            };
            sprite.AddAnimation(lampAnimation);

            lampAnimation.Play();
            Tags.Add("Forge");

            Voxel voxelUnder = new Voxel();

            if (PlayState.ChunkManager.ChunkData.GetFirstVoxelUnder(position, ref voxelUnder))
            {
                new VoxelListener(PlayState.ComponentManager, this, PlayState.ChunkManager, voxelUnder);
            }

            new LightEmitter("light", this, Matrix.Identity, new Vector3(0.1f, 0.1f, 0.1f), Vector3.Zero, 50, 4)
            {
                HasMoved = true
            };
            CollisionType = CollisionManager.CollisionType.Static;
        }
开发者ID:scorvi,项目名称:dwarfcorp,代码行数:36,代码来源:Forge.cs


示例18: HandleTransfers

        public void HandleTransfers(DwarfTime time)
        {
            Voxel atPos = new Voxel();
            while(Transfers.Count > 0)
            {
                Transfer transfer;

                if(!Transfers.TryDequeue(out transfer))
                {
                    break;
                }

                if(transfer.cellFrom.Type == LiquidType.Lava && transfer.cellTo.Type == LiquidType.Water || (transfer.cellFrom.Type == LiquidType.Water && transfer.cellTo.Type == LiquidType.Lava))
                {
                    bool success = Chunks.ChunkData.GetVoxel(transfer.worldLocation, ref atPos);

                    if(success)
                    {
                        Voxel v = atPos;

                        VoxelLibrary.PlaceType(VoxelLibrary.GetVoxelType("Stone"), v);
                        VoxelChunk chunk = Chunks.ChunkData.ChunkMap[v.ChunkID];
                        chunk.Data.Water[v.Index].Type = LiquidType.None;
                        chunk.Data.Water[v.Index].WaterLevel = 0;
                        chunk.ShouldRebuild = true;
                        chunk.ShouldRecalculateLighting = true;
                    }
                }
            }
        }
开发者ID:scorvi,项目名称:dwarfcorp,代码行数:30,代码来源:WaterManager.cs


示例19: GetNeighborsEuclidean

 public List<Voxel> GetNeighborsEuclidean(Voxel v)
 {
     Vector3 gridCoord = v.GridPosition;
     return GetNeighborsEuclidean((int) gridCoord.X, (int) gridCoord.Y, (int) gridCoord.Z);
 }
开发者ID:maroussil,项目名称:dwarfcorp,代码行数:5,代码来源:VoxelChunk.cs


示例20: BearTrap

        public BearTrap(Vector3 pos)
            : base("BearTrap", PlayState.ComponentManager.RootComponent, Matrix.CreateTranslation(pos),
            new Vector3(1.0f, 1.0f, 1.0f), Vector3.Zero, true)
        {
            Allies = PlayState.PlayerFaction;
            Sensor = new Sensor("Sensor", this, Matrix.Identity, new Vector3(0.5f, 0.5f, 0.5f), Vector3.Zero)
            {
                FireTimer = new Timer(0.5f, false)
            };
            Sensor.OnSensed += Sensor_OnSensed;
            DeathTimer = new Timer(0.6f, true);
            DeathParticles = new ParticleTrigger("puff", PlayState.ComponentManager, "DeathParticles", this,
                Matrix.Identity, new Vector3(0.5f, 0.5f, 0.5f), Vector3.Zero)
            {
                SoundToPlay = ""
            };

            DamageAmount = 200;
            Voxel voxUnder = new Voxel();
            PlayState.ChunkManager.ChunkData.GetFirstVoxelUnder(pos, ref voxUnder);
            VoxListener = new VoxelListener(PlayState.ComponentManager, this, PlayState.ChunkManager, voxUnder);
            Sprite = new Sprite(PlayState.ComponentManager, "Sprite", this, Matrix.Identity, new SpriteSheet(ContentPaths.Entities.DwarfObjects.beartrap), false);
            Sprite.AddAnimation(new Animation(0, ContentPaths.Entities.DwarfObjects.beartrap, 32, 32,  0) {Name = IdleAnimation});
            Sprite.AddAnimation(new Animation(1, ContentPaths.Entities.DwarfObjects.beartrap, 32, 32,  0, 1, 2, 3) {Name = TriggerAnimation, Speeds =  new List<float>() {6.6f}, Loops = true});
        }
开发者ID:maroussil,项目名称:dwarfcorp,代码行数:25,代码来源:BearTrap.cs



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


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
C# Core.UndoRedoRecorder类代码示例发布时间:2022-05-24
下一篇:
C# DwarfCorp.DwarfTime类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

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

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

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