adding a mood block (image+sound+light)
This commit is contained in:
		@@ -10,6 +10,7 @@
 | 
			
		||||
        "base": "file:../base",
 | 
			
		||||
        "core": "file:../core",
 | 
			
		||||
        "music": "file:../music",
 | 
			
		||||
        "mood": "file:../mood",
 | 
			
		||||
        "color-sensor": "file:../color-sensor",
 | 
			
		||||
        "touch-sensor": "file:../touch-sensor",
 | 
			
		||||
        "ultrasonic-sensor": "file:../ultrasonic-sensor",
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								libs/mood/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								libs/mood/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
# mood
 | 
			
		||||
 | 
			
		||||
A package to put the EV3 in various moods.
 | 
			
		||||
							
								
								
									
										16
									
								
								libs/mood/_locales/mood-jsdoc-strings.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								libs/mood/_locales/mood-jsdoc-strings.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
{
 | 
			
		||||
  "brick.Mood": "A mood",
 | 
			
		||||
  "brick.Mood.show": "Shows the mood on the EV3",
 | 
			
		||||
  "brick.angry": "An angry mood",
 | 
			
		||||
  "brick.awake": "A awake mood",
 | 
			
		||||
  "brick.dizzy": "A dizzy mood",
 | 
			
		||||
  "brick.knockedOut": "A knocked out mood",
 | 
			
		||||
  "brick.love": "In love mood",
 | 
			
		||||
  "brick.middleLeft": "Looking around left",
 | 
			
		||||
  "brick.middleRight": "Looking around right",
 | 
			
		||||
  "brick.neutral": "In a neutral mood",
 | 
			
		||||
  "brick.sad": "A sad mood",
 | 
			
		||||
  "brick.sleeping": "A sleeping mood",
 | 
			
		||||
  "brick.tired": "A tired mood",
 | 
			
		||||
  "brick.winking": "In laughing mood"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										6
									
								
								libs/mood/_locales/mood-strings.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								libs/mood/_locales/mood-strings.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "brick.Mood.show|block": "show mood %mood=mood_image_picker",
 | 
			
		||||
  "brick|block": "brick",
 | 
			
		||||
  "{id:category}Brick": "Brick",
 | 
			
		||||
  "{id:group}Screen": "Screen"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										115
									
								
								libs/mood/mood.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										115
									
								
								libs/mood/mood.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,115 @@
 | 
			
		||||
namespace brick {
 | 
			
		||||
    /**
 | 
			
		||||
     * A mood
 | 
			
		||||
     */
 | 
			
		||||
    //% fixedInstances
 | 
			
		||||
    export class Mood {
 | 
			
		||||
        image: Image;
 | 
			
		||||
        sound: Sound;
 | 
			
		||||
        light: BrickLight;
 | 
			
		||||
 | 
			
		||||
        constructor(image: Image, sound: Sound, light: BrickLight) {
 | 
			
		||||
            this.image = image;
 | 
			
		||||
            this.sound = sound;
 | 
			
		||||
            this.light = light;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /**
 | 
			
		||||
         * Shows the mood on the EV3
 | 
			
		||||
         */
 | 
			
		||||
        //% weight=90
 | 
			
		||||
        //% blockId=moodShow block="show mood %mood=mood_image_picker"
 | 
			
		||||
        //% weight=101 group="Screen" blockGap=8
 | 
			
		||||
        show() {
 | 
			
		||||
            brick.setLight(this.light);
 | 
			
		||||
            brick.showImage(this.image);
 | 
			
		||||
            if (this.sound)
 | 
			
		||||
                music.playSoundEffect(this.sound);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * An image
 | 
			
		||||
     * @param image the image
 | 
			
		||||
     */
 | 
			
		||||
    //% blockId=mood_image_picker block="%image" shim=TD_ID
 | 
			
		||||
    //% image.fieldEditor="images"
 | 
			
		||||
    //% image.fieldOptions.columns=4
 | 
			
		||||
    //% image.fieldOptions.width=400
 | 
			
		||||
    //% group="Screen" weight=0 blockHidden=1
 | 
			
		||||
    export function __moodImagePicker(mood: Mood): Mood {
 | 
			
		||||
        return mood;
 | 
			
		||||
    }    
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * A sleeping mood
 | 
			
		||||
     */
 | 
			
		||||
    //% fixedInstance jres=images.eyesSleeping
 | 
			
		||||
    export const sleeping = new Mood(images.eyesSleeping, sounds.expressionsSnoring, BrickLight.OrangePulse);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * A awake mood
 | 
			
		||||
     */
 | 
			
		||||
    //% fixedInstance jres=images.eyesAwake
 | 
			
		||||
    export const awake = new Mood(images.eyesAwake, sounds.informationActivate, BrickLight.Orange);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * A tired mood
 | 
			
		||||
     */
 | 
			
		||||
    //% fixedInstance jres=images.eyesTiredMiddle
 | 
			
		||||
    export const tired = new Mood(images.eyesTiredMiddle, sounds.expressionsSneezing, BrickLight.OrangeFlash);
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     * An angry mood
 | 
			
		||||
     */
 | 
			
		||||
    //% fixedInstance jres=images.eyesAngry
 | 
			
		||||
    export const angry = new Mood(images.eyesAngry, sounds.animalsDogGrowl, BrickLight.RedPulse);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * A sad mood
 | 
			
		||||
     */
 | 
			
		||||
    //% fixedInstance jres=images.eyesTear
 | 
			
		||||
    export const sad = new Mood(images.eyesTear, sounds.animalsDogWhine, BrickLight.Red);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * A dizzy mood
 | 
			
		||||
     */
 | 
			
		||||
    //% fixedInstance jres=images.eyesDizzy
 | 
			
		||||
    export const dizzy = new Mood(images.eyesDizzy, sounds.expressionsUhOh, BrickLight.OrangeFlash);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * A knocked out mood
 | 
			
		||||
     */
 | 
			
		||||
    //% fixedInstance jres=images.eyesKnockedOut
 | 
			
		||||
    export const knockedOut = new Mood(images.eyesKnockedOut, sounds.informationError, BrickLight.RedFlash);
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     * Looking around left
 | 
			
		||||
     */
 | 
			
		||||
    //% fixedInstance jres=images.eyesMiddleLeft
 | 
			
		||||
    export const middleLeft = new Mood(images.eyesMiddleLeft, sounds.informationAnalyze, BrickLight.Off);    
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Looking around right
 | 
			
		||||
     */
 | 
			
		||||
    //% fixedInstance jres=images.eyesMiddleRight
 | 
			
		||||
    export const middleRight = new Mood(images.eyesMiddleRight, sounds.informationAnalyze, BrickLight.Off);    
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * In love mood
 | 
			
		||||
     */
 | 
			
		||||
    //% fixedInstance jres=images.eyesLove
 | 
			
		||||
    export const love = new Mood(images.eyesLove, sounds.expressionsMagicWand, BrickLight.GreenPulse);    
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * In laughing mood
 | 
			
		||||
     */
 | 
			
		||||
    //% fixedInstance jres=images.eyesWinking
 | 
			
		||||
    export const winking = new Mood(images.eyesWinking, sounds.expressionsLaughing1, BrickLight.GreenFlash);    
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * In a neutral mood
 | 
			
		||||
     */
 | 
			
		||||
    //% fixedInstance jres=images.eyesNeutral
 | 
			
		||||
    export const neutral = new Mood(images.eyesNeutral, undefined, BrickLight.Green);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										14
									
								
								libs/mood/pxt.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								libs/mood/pxt.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
{
 | 
			
		||||
    "name": "mood",
 | 
			
		||||
    "description": "The EV3 mood library",
 | 
			
		||||
    "files": [
 | 
			
		||||
        "README.md",
 | 
			
		||||
        "mood.ts"
 | 
			
		||||
    ],
 | 
			
		||||
    "testFiles": [
 | 
			
		||||
    ],
 | 
			
		||||
    "public": true,
 | 
			
		||||
    "dependencies": {
 | 
			
		||||
        "core": "file:../core"
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -16,6 +16,7 @@
 | 
			
		||||
        "libs/infrared-sensor",
 | 
			
		||||
        "libs/gyro-sensor",
 | 
			
		||||
        "libs/chassis",
 | 
			
		||||
        "libs/mood",
 | 
			
		||||
        "libs/ev3",
 | 
			
		||||
        "libs/storage",
 | 
			
		||||
        "libs/datalog",
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user