Changeset 820


Ignore:
Timestamp:
01/13/2011 02:19:33 PM (10 years ago)
Author:
dave
Message:

added seeds and picking

Location:
scenarios/GerminationX/fungi/src
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • scenarios/GerminationX/fungi/src/Fungi.hx

    r814 r820  
    6060        public var Age:Int; 
    6161    var Scale:Float; 
    62  
    63         public function new(world:World, owner:String, pos, bitmap, maxsize, scale) 
    64         { 
    65                 super(world,pos,bitmap,false); 
     62    var PlantType:String; 
     63 
     64        public function new(world:World, owner:String, pos, type, maxsize, scale) 
     65        { 
     66                super(world,pos,Resources.Get(type),false); 
     67        PlantType=type; 
    6668                Owner=owner; 
    6769        PlantScale=0; 
     
    8890        } 
    8991         
    90         public override function Update(frame:Int, world:truffle.interfaces.World) 
     92        public override function Update(frame:Int, world:World) 
    9193        { 
    9294                super.Update(frame,world); 
     
    98100        else 
    99101        { 
     102            Fruit(world); 
    100103            NeedsUpdate=false; 
    101104        } 
    102105        } 
     106 
     107    public function Fruit(world:World) 
     108    { 
     109        var f=new Sprite(Spr.Pos.Add(new Vec2(0,-Spr.Height/2)), 
     110                         Resources.Get("seed")); 
     111        world.AddSprite(f); 
     112        f.MouseDown([this,world],function(c)  
     113        { 
     114            var w = cast(c[1],FungiWorld); 
     115            w.Seeds.Add(new Seed(c[0].PlantType,f)); 
     116        }); 
     117    } 
    103118} 
    104119 
     
    218233} 
    219234*/ 
     235 
     236//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     237 
     238class Seed 
     239{ 
     240    public var Type:String; 
     241    public var Spr:Sprite; 
     242 
     243    public function new(t:String,s:Sprite) 
     244    { 
     245        Type=t; 
     246        Spr=s; 
     247    } 
     248} 
     249 
     250class SeedStore 
     251{ 
     252    var Seeds:Array<Seed>; 
     253    var Size:Int; 
     254 
     255    public function new(size:Int) 
     256    { 
     257        Seeds = new Array<Seed>(); 
     258        Size = size; 
     259    } 
     260 
     261    public function Add(s:Seed) 
     262    { 
     263        if (Seeds.length<Size) 
     264        { 
     265            Seeds.push(s); 
     266            s.Spr.SetPos(new Vec2(20+Seeds.length*10,30)); 
     267            s.Spr.Update(0,null); 
     268        } 
     269    } 
     270 
     271    public function Remove(world:World) : String 
     272    { 
     273        if (Seeds.length>0) 
     274        { 
     275            var s = Seeds.pop(); 
     276            world.RemoveSprite(s.Spr); 
     277            return s.Type; 
     278        } 
     279        else 
     280        { 
     281            return ""; 
     282        } 
     283    } 
     284} 
    220285 
    221286//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    237302    var Cursor:Sprite; 
    238303    var CursorLogicalPos:Vec3; 
     304    public var Seeds:SeedStore; 
    239305 
    240306        public function new(w:Int, h:Int)  
     
    248314        Objs = []; 
    249315        Ghosts = []; 
     316        Seeds = new SeedStore(1); 
    250317                WorldPos = new Vec3(0,0,0); 
    251318                MyRndGen = new RndGen(); 
     
    255322        Cursor=new Sprite(new Vec2(0,0), Resources.Get("cursor"), true); 
    256323        AddSprite(Cursor); 
    257          
     324 
    258325/*        var arrow=new Sprite(new Vec2(0,0), Resources.Get("test")); 
    259326        arrow.MouseDown(this,function(c) { c.UpdateWorld(c.WorldPos.Add(new Vec3(1,0,0))); }); 
     
    285352                    c.CursorLogicalPos = ob.LogicalPos; 
    286353                }); 
     354 
     355                ob.Spr.MouseDown(this,function(c) 
     356                { 
     357                    var type=c.Seeds.Remove(cast(c,truffle.World)); 
     358                    if (type!="") 
     359                    { 
     360                        c.AddServerPlant(c.CursorLogicalPos.Add(new Vec3(0,0,1)),type); 
     361                    } 
     362                }); 
    287363                                Objs.push(ob); 
    288364                        } 
    289365                } 
    290366 
    291         MouseDown(this, function(c) 
    292         { 
    293             c.AddServerPlant(c.CursorLogicalPos.Add(new Vec3(0,0,1)), 
    294             c.MyRndGen.Choose([ 
    295                 "plant-001",  
    296                 "plant-002",  
    297                 "plant-003",  
    298                 "plant-004",  
    299                 "plant-005",  
    300                 "plant-006",  
    301                 "plant-007",  
    302                 "plant-008"])); 
     367 
     368/*        MouseDown(this, function(c) 
     369        { 
     370            var type=c.Seeds.Remove(cast(c,truffle.World)); 
     371            if (type!="") 
     372            { 
     373                c.AddServerPlant(c.CursorLogicalPos.Add(new Vec3(0,0,1)),type); 
     374            } 
    303375        }); 
    304  
     376*/ 
    305377        WorldClient.Call("spirit-sprites",UpdateSpiritSprites); 
    306  
     378        
    307379                UpdateWorld(new Vec3(0,0,0)); 
    308380                 
     
    320392        Update(0); 
    321393        SortScene(); 
     394 
     395 
     396        for (i in 0...10) 
     397        { 
     398            AddServerPlant(new Vec3(MyRndGen.RndInt()%10, 
     399                                    MyRndGen.RndInt()%10,1), 
     400            MyRndGen.Choose( 
     401                [ 
     402                    "plant-001", 
     403                    "plant-002", 
     404                    "plant-003", 
     405                    "plant-004", 
     406                    "plant-005", 
     407                    "plant-006", 
     408                    "plant-007", 
     409                    "plant-008" 
     410                ])); 
     411       } 
     412 
    322413        } 
    323414         
     
    378469        } 
    379470         
    380         public function PlantTex(i) 
    381         { 
    382                 var l = ["flowers","canopy","climber","lollypop"]; 
    383         return Resources.Get(l[i]); 
    384         } 
    385          
    386471        public function OnServerPlantsCallback(ServerPlants:Array<ServerPlant>) 
    387472        { 
    388473                for (splant in ServerPlants) 
    389474                { 
    390                         var plant = new Plant(this,splant.owner,new Vec3(splant.x,splant.y,1),PlantTex(splant.type),splant.size,false); 
     475                        var plant = new Plant(this,splant.owner,new Vec3(splant.x,splant.y,1),splant.type,splant.size,false); 
    391476                        Plants.push(plant); 
    392477                } 
     
    413498        public function AddServerPlant(pos:Vec3,type) 
    414499        {         
    415         //trace(type); 
    416500        if (MyName!=null && SpaceClear(pos) && GetCube(pos).LogicalPos.z>-1) 
    417501        { 
     
    419503             
    420504                    // call by reference :Sx 
    421                     var plant = new Plant(this,MyName,pos,Resources.Get(type),size,true); 
    422  
     505                    var plant = new Plant(this,MyName,pos,type,size,true); 
    423506                    Plants.push(plant); 
    424507                    //WorldClient.AddPlant(cast(WorldPos.x,Int), cast(WorldPos.y,Int),  
     
    432515        super.Handle(e); 
    433516        Update(0); 
    434         //SortScene(); 
    435517        } 
    436518 
     
    452534    { 
    453535        super.Update(time); 
    454 /*        if (time>TickTime) 
     536        if (time>TickTime) 
    455537        { 
    456538            WorldClient.Call("agent-info",UpdateGhosts); 
     
    467549        } 
    468550         
    469         Cursor.Update(time,this,null);*/ 
     551        //Cursor.Update(time,null); 
    470552    } 
    471553 
     
    478560    public function new()  
    479561        { 
    480         Log.setColor(0xFFFFFF); 
     562//        Log.setColor(0xFFFFFF); 
    481563        super(new FungiWorld(10,10)); 
    482564    } 
  • scenarios/GerminationX/fungi/src/Resources.hx

    r814 r820  
    6363class Plant008Tex extends BitmapData { public function new() { super(0,0); } } 
    6464 
     65class SeedTex extends BitmapData { public function new() { super(0,0); } } 
     66 
    6567class Resources 
    6668{ 
     
    110112        case "plant-007": tex.data = new Plant007Tex(); 
    111113        case "plant-008": tex.data = new Plant008Tex(); 
     114 
     115        case "seed": tex.data = new SeedTex(); 
    112116        } 
    113117 
  • scenarios/GerminationX/fungi/src/ServerPlant.hx

    r814 r820  
    2222        public var y:Int; 
    2323        public var owner:String; 
    24         public var type:Int; 
     24        public var type:String; 
    2525    public var size:Int; 
    2626} 
  • scenarios/GerminationX/fungi/src/truffle/Entity.hx

    r814 r820  
    4242        } 
    4343                 
    44         public function Update(frame:Int, world:truffle.interfaces.World) 
     44        public function Update(frame:Int, world:World) 
    4545        { 
    4646        Pos = Pos2PixelPos(LogicalPos); 
  • scenarios/GerminationX/fungi/src/truffle/SkeletonEntity.hx

    r814 r820  
    127127    } 
    128128 
    129         override public function Update(frame:Int, world:truffle.interfaces.World) 
     129        override public function Update(frame:Int, world:World) 
    130130        { 
    131131        super.Update(frame,world); 
  • scenarios/GerminationX/fungi/src/truffle/SpriteEntity.hx

    r814 r820  
    2828        } 
    2929                 
    30         override public function Update(frame:Int, world:truffle.interfaces.World) 
     30        override public function Update(frame:Int, world:World) 
    3131        { 
    3232        super.Update(frame,world); 
  • scenarios/GerminationX/fungi/src/truffle/flash/FlashWorld.hx

    r814 r820  
    2222import truffle.interfaces.Sprite; 
    2323import truffle.Entity; 
     24import truffle.Truffle; 
    2425 
    2526class FlashWorld implements World, extends MovieClip  
     
    9091            if (e.NeedsUpdate) 
    9192            { 
    92                 e.Update(time,cast(this,truffle.interfaces.World)); 
     93                e.Update(time,cast(this,truffle.World)); 
    9394            } 
    9495        } 
Note: See TracChangeset for help on using the changeset viewer.