Merge branch 'master' of https://github.com/sugarcubes/SugarCubes into alexgreen
[SugarCubes.git] / SugarCubes.pde
1 /**
2 * +-+-+-+-+-+ +-+-+-+-+-+
3 * / /| |\ \
4 * / / + + \ \
5 * +-+-+-+-+-+ | +-+-+-+-+ | +-+-+-+-+-+
6 * | | + / \ + | |
7 * + THE + / / \ \ + CUBES +
8 * | |/ +-+-+-+-+-+-+-+ \| |
9 * +-+-+-+-+-+ | | +-+-+-+-+-+
10 * + +
11 * | SUGAR |
12 * + +
13 * | |
14 * +-+-+-+-+-+-+-+
15 *
16 * Welcome to the Sugar Cubes! This Processing sketch is a fun place to build
17 * animations, effects, and interactions for the platform. Most of the icky
18 * code guts are embedded in the GLucose library extension. If you're an
19 * artist, you shouldn't need to worry about any of that.
20 *
21 * Below, you will find definitions of the Patterns, Effects, and Interactions.
22 * If you're an artist, create a new tab in the Processing environment with
23 * your name. Implement your classes there, and add them to the list below.
24 */
25
26 LXPattern[] patterns(GLucose glucose) {
27 return new LXPattern[] {
28
29 // Slee
30 new Cathedrals(glucose),
31 new MidiMusic(glucose),
32 new Pulley(glucose),
33 new Swarm(glucose),
34 new ViolinWave(glucose),
35 new BouncyBalls(glucose),
36 new SpaceTime(glucose),
37 new ShiftingPlane(glucose),
38 new AskewPlanes(glucose),
39 new Blinders(glucose),
40 new CrossSections(glucose),
41 new Psychedelia(glucose),
42
43 new Traktor(glucose).setEligible(false),
44 new BassPod(glucose).setEligible(false),
45 new CubeEQ(glucose).setEligible(false),
46 new PianoKeyPattern(glucose).setEligible(false),
47
48 // DanH
49 new Noise(glucose),
50 new Play (glucose),
51 new Pong (glucose),
52 new Worms(glucose),
53
54 // Alex G
55
56
57 // Shaheen
58 new HelixPattern(glucose).setEligible(false),
59
60 // Toby
61 new GlitchPlasma(glucose),
62 new FireEffect(glucose).setEligible(false),
63 new StripBounce(glucose),
64 new SoundRain(glucose).setEligible(false),
65 new SoundSpikes(glucose).setEligible(false),
66 new FaceSync(glucose),
67
68 // Jack
69 new Swim(glucose),
70 new Balance(glucose),
71
72 // Tim
73 new TimPlanes(glucose),
74 new TimPinwheels(glucose),
75 new TimRaindrops(glucose),
76 new TimCubes(glucose),
77 // new TimTrace(glucose),
78 new TimSpheres(glucose),
79
80 // Ben
81 // new Sandbox(glucose),
82 new TowerParams(glucose),
83 new DriveableCrossSections(glucose),
84 new GranimTestPattern2(glucose),
85
86 //JR
87 new Gimbal(glucose),
88
89 // Sam
90 new JazzRainbow(glucose),
91
92 // Arjun
93 new TelevisionStatic(glucose),
94 new AbstractPainting(glucose),
95 new Spirality(glucose),
96
97 // Basic test patterns for reference, not art
98 new TestCubePattern(glucose),
99 new TestTowerPattern(glucose),
100 new TestProjectionPattern(glucose),
101 new TestStripPattern(glucose),
102 new TestBassMapping(glucose),
103 new TestFloorMapping(glucose),
104 new TestSpeakerMapping(glucose),
105 // new TestHuePattern(glucose),
106 // new TestXPattern(glucose),
107 // new TestYPattern(glucose),
108 // new TestZPattern(glucose),
109
110 };
111 }
112
113 LXTransition[] transitions(GLucose glucose) {
114 return new LXTransition[] {
115 new DissolveTransition(lx),
116 new AddTransition(glucose),
117 new MultiplyTransition(glucose),
118 new OverlayTransition(glucose),
119 new DodgeTransition(glucose),
120 new SwipeTransition(glucose),
121 new FadeTransition(lx),
122 // new SubtractTransition(glucose), // similar to multiply - dh
123 // new BurnTransition(glucose), // similar to multiply - dh
124 // new ScreenTransition(glucose), // same as add -dh
125 // new SoftLightTransition(glucose), // same as overlay -dh
126 };
127 }
128
129 // Handles to globally triggerable effects
130 class Effects {
131 FlashEffect flash = new FlashEffect(lx);
132 BoomEffect boom = new BoomEffect(glucose);
133 BlurEffect blur = new BlurEffect(glucose);
134 QuantizeEffect quantize = new QuantizeEffect(glucose);
135 ColorFuckerEffect colorFucker = new ColorFuckerEffect(glucose);
136
137 Effects() {
138 blur.enable();
139 quantize.enable();
140 colorFucker.enable();
141 }
142 }
143