Changeset 917


Ignore:
Timestamp:
02/03/2011 11:33:48 AM (10 years ago)
Author:
dave
Message:

fixed message reading, displaying actions

Location:
scenarios/GerminationX
Files:
12 edited

Legend:

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

    r909 r917  
    2626import truffle.SpriteEntity; 
    2727import truffle.SkeletonEntity; 
     28 
     29// todo: remove this 
     30import flash.display.Graphics; 
     31import flash.display.Shape; 
     32 
    2833  
    2934//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    8186        tf.height=40; 
    8287        tf.background = true; 
    83         //tf.autoSize = true; 
    8488        //tf.backgroundColor = 0x8dd788; 
    8589        tf.border = true; 
     
    151155    public var Name:String; 
    152156    var Debug:flash.text.TextField; 
    153          
     157        var BG:Graphics; 
     158 
    154159        public function new(world:World, name:String, pos) 
    155160        { 
     
    165170        tf.y=Pos.y-25; 
    166171        tf.height=150; 
    167         tf.width=100; 
    168         tf.background = true; 
     172        tf.width=140; 
     173        tf.background = false; 
    169174        tf.autoSize = flash.text.TextFieldAutoSize.LEFT; 
    170175        //tf.backgroundColor = 0x8dd788; 
     
    176181        t.color= 0x000000;            
    177182        tf.setTextFormat(t); 
     183 
     184        var figures:Shape = new Shape(); 
     185        BG = figures.graphics; 
     186        BG.beginFill(0xffffff,0.5); 
     187        BG.drawRect(tf.x,tf.y,tf.width,tf.height); 
     188        BG.endFill(); 
     189        cast(c,truffle.flash.FlashWorld).addChild(figures); 
     190 
    178191        c.addChild(tf); 
    179192        Debug=tf; 
     
    195208 
    196209        var text=Name+"\nMood:"+ee[0].content[0]+"\n"; 
    197  
     210        text+="Emotions:\n"; 
    198211        for (i in 1...ee.length) 
    199212        { 
    200213            text+=ee[i].attrs.type+" "+ee[i].attrs.direction+"\n"; 
    201             text+=ee[i].attrs.cause+"\n"; 
     214            //text+=ee[i].attrs.cause+"\n"; 
     215        } 
     216 
     217        text+="Actions:\n"; 
     218        var acs = cast(e.actions,Array<Dynamic>); 
     219        for (i in 0...acs.length) 
     220        { 
     221            text+=acs[i]+"\n"; 
    202222        } 
    203223 
     
    210230        Debug.setTextFormat(t); 
    211231 
     232        BG.clear(); 
     233        BG.beginFill(0xffffff,0.5); 
     234        BG.drawRect(Debug.x,Debug.y,Debug.width,Debug.height); 
     235        BG.endFill(); 
    212236 
    213237        //trace(text); 
  • scenarios/GerminationX/oak/data/characters/minds/roles/CanopySpirit/CanopySpirit.xml

    r905 r917  
    3636        <Relation target="canopy-fruit-b" like="2" respect="1"/> 
    3737        <Relation target="canopy-fruit-c" like="3" respect="1"/> 
    38         <Relation target="canopy-ill-a" like="-1" respect="1"/> 
    39         <Relation target="canopy-ill-b" like="-2" respect="1"/> 
    40         <Relation target="canopy-ill-c" like="-3" respect="1"/> 
     38        <Relation target="canopy-ill-a" like="-4" respect="1"/> 
     39        <Relation target="canopy-ill-b" like="-6" respect="1"/> 
     40        <Relation target="canopy-ill-c" like="-8" respect="1"/> 
    4141        </InterpersonalRelations> 
    4242         
     
    4444 
    4545                <!-- General emotional reactions used in more than one episode --> 
    46         <!-- 
     46         
    4747                <EmotionalReaction desirability="6" desirabilityForOther="1" praiseworthiness="5">  
    4848                        <Event subject="*" action="flower"/> 
     
    5252                        <Event subject="*" action="drop-leaves"/> 
    5353                </EmotionalReaction> 
    54                 --> 
     54                 
    5555        </EventReactions> 
    5656         
     
    6161                        <Preconditions> 
    6262            </Preconditions> 
    63                         <ElicitingEmotion type="Love" minIntensity="2"> 
     63                        <ElicitingEmotion type="Love" minIntensity="4"> 
    6464                                <CauseEvent/> 
    6565                        </ElicitingEmotion> 
     
    6969                        <Preconditions> 
    7070            </Preconditions> 
    71                         <ElicitingEmotion type="Hate" minIntensity="2"> 
     71                        <ElicitingEmotion type="Hate" minIntensity="3"> 
    7272                                <CauseEvent/> 
    7373                        </ElicitingEmotion> 
  • scenarios/GerminationX/oak/data/characters/minds/roles/CoverSpirit/CoverSpirit.xml

    r905 r917  
    4444 
    4545                <!-- General emotional reactions used in more than one episode --> 
    46 <!--            <EmotionalReaction desirability="6" desirabilityForOther="1" praiseworthiness="5">  
     46                <EmotionalReaction desirability="6" desirabilityForOther="1" praiseworthiness="5">  
    4747                        <Event subject="*" action="flower"/> 
    4848                </EmotionalReaction> 
     
    5151                        <Event subject="*" action="drop-leaves"/> 
    5252                </EmotionalReaction> 
    53         -->      
     53         
    5454        </EventReactions> 
    5555         
     
    5959                        <Preconditions> 
    6060            </Preconditions> 
    61                         <ElicitingEmotion type="Love" minIntensity="2"> 
     61                        <ElicitingEmotion type="Love" minIntensity="4"> 
    6262                                <CauseEvent/> 
    6363                        </ElicitingEmotion> 
     
    6767                        <Preconditions> 
    6868            </Preconditions> 
    69                         <ElicitingEmotion type="Hate" minIntensity="2"> 
     69                        <ElicitingEmotion type="Hate" minIntensity="4"> 
    7070                                <CauseEvent/> 
    7171                        </ElicitingEmotion> 
  • scenarios/GerminationX/oak/data/characters/minds/roles/VerticalSpirit/VerticalSpirit.xml

    r905 r917  
    4242         
    4343        <EventReactions> 
    44 <!-- 
    4544                 
    4645                <EmotionalReaction desirability="6" desirabilityForOther="1" praiseworthiness="5">  
     
    5150                        <Event subject="*" action="drop-leaves"/> 
    5251                </EmotionalReaction> 
    53         -->      
     52 
    5453        </EventReactions> 
    5554         
     
    6160                        <Preconditions> 
    6261            </Preconditions> 
    63                         <ElicitingEmotion type="Love" minIntensity="2"> 
     62                        <ElicitingEmotion type="Love" minIntensity="4"> 
    6463                                <CauseEvent/> 
    6564                        </ElicitingEmotion> 
     
    6968                        <Preconditions> 
    7069            </Preconditions> 
    71                         <ElicitingEmotion type="Hate" minIntensity="2"> 
     70                        <ElicitingEmotion type="Hate" minIntensity="4"> 
    7271                                <CauseEvent/> 
    7372                        </ElicitingEmotion> 
  • scenarios/GerminationX/oak/src/oak/core.clj

    r905 r917  
    4444(defn tick [] 
    4545  (Thread/sleep 1000) 
    46   (println ".") 
     46  ;(println ".") 
    4747  ;(game-world-print (deref my-game-world)) 
    48   (let [time (.getTime (java.util.Date.))] 
     48  (let [time (/ (.getTime (java.util.Date.)) 1000.0)] 
    4949    (dosync (ref-set fatima-world 
    5050                     (world-run 
    5151                      (game-world-sync->fatima 
    5252                       (deref fatima-world) 
    53                        (deref my-game-world))))) 
     53                       (deref my-game-world) 
     54                       time) time))) 
    5455    (dosync (ref-set my-game-world 
    5556                     (game-world-update 
     
    9697                            (fn [a] 
    9798                              {:name (remote-agent-name a) 
    98                                :emotions (remote-agent-emotions a)}) 
     99                               :emotions (remote-agent-emotions a) 
     100                               :actions (remote-agent-done a)}) 
    99101                            (world-agents (deref fatima-world))) 
    100102                           :indent 2)) 
  • scenarios/GerminationX/oak/src/oak/forms.clj

    r905 r917  
    2020(defn discard [l n] 
    2121  (cond 
    22    (empty? l) l 
    23    (= 0 n) l 
     22   (empty? l) '() 
     23   (= 0 n) '() 
    2424   :else (cons (first l) (discard (rest l) (- n 1))))) 
    2525 
  • scenarios/GerminationX/oak/src/oak/game_world.clj

    r905 r917  
    117117          game-world)) 
    118118 
    119 (defn game-world-sync->fatima [fatima-world game-world] 
     119(defn game-world-sync->fatima [fatima-world game-world time] 
    120120  (let [tile (game-world-get-tile game-world (make-vec2 0 0))]  
    121121    (reduce 
     
    132132        (do 
    133133          (world-add-object fw 
    134                             {"name" (str (:layer entity) "-" (:state entity) "-" (str (:id entity))) 
     134                            {"name" (str (:layer entity) "-" (:state entity)) 
    135135                             "owner" (:layer entity) 
    136136                             "position" (str (:x (:pos entity)) "," (:y (:pos entity))) 
    137137                             "tile" "0,0" 
    138                              "type" "object"})) 
     138                             "type" "object" 
     139                             "time" time})) 
    139140        :else fw)) 
    140141     fatima-world 
  • scenarios/GerminationX/oak/src/oak/io.clj

    r905 r917  
    8383    (.readObject inp))) 
    8484 
    85 (comment (def buf (ByteBuffer/allocateDirect 4096)) 
     85(def buf (ByteBuffer/allocateDirect 409600)) 
    8686 
    8787(defn read-msg [sc] 
    8888  (.clear buf) 
    89   (let [r (.readLine sc buf)] 
     89  (let [r (.read sc buf)] 
    9090    (if (> r 0) 
    9191      (do 
     
    9494          (.get buf bytearr) 
    9595          (new String bytearr))) 
    96       false)))) 
     96      false))) 
    9797 
    98 (defn read-msg [reader] 
     98(comment defn read-msg [reader] 
     99  (defn _ [] 
     100    (println "inner reader") 
     101    (let [s (.readLine reader)] 
     102      (println (str "[" s "]")) 
     103      (if (not s) 
     104        "" 
     105        (str s "\n" (_))))) 
     106  (println "read-msg in") 
     107  (_) 
     108  (println "read-msg out")) 
     109 
     110(comment defn read-msg [reader] 
    99111  (let [r (.readLine reader)] 
    100     ;(println "<----------------- " r) 
     112     ;(println "<----------------- " r) 
    101113    r)) 
    102114 
  • scenarios/GerminationX/oak/src/oak/remote_agent.clj

    r898 r917  
    5959                (InputStreamReader. 
    6060                 (.getInputStream (.socket socket)))) 
    61         toks (.split (read-msg reader) " ")] 
     61        toks (.split (read-msg socket) " ")] 
    6262    (send-msg socket "OK") 
    6363    (struct 
  • scenarios/GerminationX/oak/src/oak/spirit.clj

    r905 r917  
    3535   
    3636(defn spirit-update [spirit remote-agent] 
    37   (println (:name spirit)) 
    38   (println (map 
     37  (comment println (:name spirit)) 
     38  (comment println (remote-agent-done remote-agent)) 
     39  (comment println (map 
    3940            (fn [emotion] 
    4041              (if (= (:tag emotion) :Mood) 
  • scenarios/GerminationX/oak/src/oak/world.clj

    r905 r917  
    1515(ns oak.world 
    1616  (:use 
     17   oak.forms 
    1718   oak.remote-agent 
    1819   oak.io) 
     
    130131  (reduce 
    131132   (fn [r obj] 
    132      (if (and (not r) (= pos (get obj "position"))) 
     133     (if (and (not r) (= pos (get obj "position")) (= name (get obj "name"))) 
    133134       obj r)) 
    134135   false 
     
    140141      (println (str "adding " (get object "name") " " (get object "position"))) 
    141142      (world-broadcast-all world (str "ENTITY-ADDED " (get object "name"))) 
     143      (println (str (count (world-objects world)) "objects stored")) 
    142144      (merge world {:objects (cons object (world-objects world))})) 
    143145    world)) 
     
    181183          (properties-changed world agent (.getEffects gstep))))))) 
    182184     
    183  
    184185(defn world-process-agent [world agent msg] 
    185 ;  (println (str "world-process-agent got " msg)) 
     186  ;(println (str "world-process-agent for " (remote-agent-name agent) " got " msg)) 
    186187  (let [toks (.split msg " ") 
    187188        type (nth toks 0)] 
     
    192193     (= type "look-at") 
    193194     (do 
     195       ;(println (str (remote-agent-name agent) " -----------> LOOKING AT: " (nth toks 1))) 
    194196       (send-msg (remote-agent-socket agent) 
    195197                 (str "LOOK-AT " (nth toks 1) " " 
    196198                      (hash-map-to-string 
    197199                       (world-get-properties world (nth toks 1))))) 
    198        agent) 
     200       (merge agent {:done (max-cons (str (world-time world) ": " msg) 
     201                                     (remote-agent-done agent) 4)})) 
    199202     (= type "say") 
    200203     (do (println "say") 
     
    219222     :else 
    220223     (do 
    221        (println "action") 
    222        (println msg) 
     224       ;(println "action") 
     225       ;(println msg) 
    223226       (update-action-effects 
    224227        world agent 
     
    235238        (apply str (concat "ACTION-FINISHED " (remote-agent-name agent) " " 
    236239                           (map (fn [s] (str s " ")) toks)))) 
    237        (merge agent {:done (cons (str (world-time world) ": " msg) 
    238                                  (remote-agent-done agent))}))))) 
     240       (merge agent {:done (max-cons (str (world-time world) ": " msg) 
     241                                     (remote-agent-done agent) 4)}))))) 
    239242 
    240243(defn world-check-for-new-agents [world] 
     
    257260 
    258261(defn world-update-agent [world agent] 
    259   (let [msgs (read-msg (remote-agent-reader agent))] 
     262  (let [msgs (read-msg (remote-agent-socket agent))] 
    260263    (if msgs 
    261264      (reduce 
     
    276279                    (world-update-agent world agent)) 
    277280                  (world-agents world)))})) 
    278   
    279 (defn world-run [world] 
     281 
     282(def object-max-age 100) 
     283 
     284(defn world-remove-old-objects [world time] 
     285  (merge world 
     286         {:objects 
     287          (doall 
     288           (filter 
     289            (fn [obj] 
     290              (< (- time (get obj "time")) object-max-age)) 
     291            (world-objects world)))})) 
     292 
     293(defn world-run [world time] 
    280294  (world-update-agents 
    281    (world-check-for-new-agents 
    282     (merge world {:time (+ (world-time world) 1)})))) 
    283                                 
    284 (defn world-crank [world] 
    285   (Thread/sleep 1000) 
    286   (println (map (fn [a] (remote-agent-said a)) (world-agents world))) 
    287   (println (map (fn [a] (remote-agent-done a)) (world-agents world))) 
    288   ;(println (world-agents world)) 
    289   (recur (world-run world))) 
    290  
    291 (defn thing [] 
    292   "<h1>ewewew!</h1>") 
     295   (world-remove-old-objects 
     296    (world-check-for-new-agents 
     297     (merge world {:time (+ (world-time world) 1)})) 
     298    time))) 
     299 
Note: See TracChangeset for help on using the changeset viewer.