Skip to content

Commit ccdada3

Browse files
committed
Initial commit of the scrambleserver!
1 parent 50a7d87 commit ccdada3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+4262
-0
lines changed

servers/scrambleserver/.classpath

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<classpath>
3+
<classpathentry excluding="lib/|images/|media/|Source/|Archive/" kind="src" path=""/>
4+
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
5+
<classpathentry kind="lib" path="lib/jopt-simple-3.2.jar"/>
6+
<classpathentry kind="lib" path="lib/gson-1.4.jar"/>
7+
<classpathentry combineaccessrules="false" kind="src" path="/JCubeExplorer"/>
8+
<classpathentry kind="output" path=""/>
9+
</classpath>

servers/scrambleserver/.project

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<projectDescription>
3+
<name>ScrambleServer</name>
4+
<comment></comment>
5+
<projects>
6+
</projects>
7+
<buildSpec>
8+
<buildCommand>
9+
<name>org.eclipse.jdt.core.javabuilder</name>
10+
<arguments>
11+
</arguments>
12+
</buildCommand>
13+
</buildSpec>
14+
<natures>
15+
<nature>org.eclipse.jdt.core.javanature</nature>
16+
</natures>
17+
</projectDescription>

servers/scrambleserver/com/eekboom/utils/Strings.java

Lines changed: 353 additions & 0 deletions
Large diffs are not rendered by default.

servers/scrambleserver/jstest/Archive/mootools-1.2.4-core-yc.js

Lines changed: 357 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
setBG1:function(val){
2+
var v = Math.round(val * 2.55), grey = v+','+v+','+v, shape = 'radial';
3+
4+
if (Browser.Engine.gecko && window.hasOwnProperty("onhashchange"))
5+
this.e.crShade.setStyle('background-image','-moz-'+shape+'-gradient(center center, circle closest-side, rgb('+grey+') '+(100-(this.val||1))+'%, rgba('+grey+',0)100%)');//rgb('+grey+'),
6+
else if (Browser.Engine.trident && shape == 'linear')
7+
this.e.crShade.setStyle(
8+
Browser.Engine.version < 4 ? 'filter':'-ms-filter',
9+
'progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr="#FF'+000000+'", EndColorStr="#00'+000000+'")'
10+
);
11+
else if (Browser.Engine.webkit)
12+
this.e.crShade.setStyle('background','-webkit-gradient('+shape+', center center, 0, center center, '+70.5+', from(rgb('+grey+')), to(rgba('+grey+',0))');
13+
else this.e.crBox.setStyle('background-color', 'rgb('+grey+')');
14+
},
15+
16+
function Firefox36(){
17+
var FF36;
18+
// Any of the below will return true if browser is 3.6, false for 3.5
19+
FF36 = !!new Element('div').setStyle('background','-moz-linear-gradient(red, blue)').getStyle('background');
20+
21+
FF36 = window.hasOwnProperty('onhashchange');
22+
FF36 = Hash.has(window, 'onhashchange');
23+
}
24+
25+
/*
26+
Notes:
27+
#1:
28+
Zero degrees on the sphere is assumed to be at the the 12:00 position.
29+
This differs from classic trig, which assumes zero to be at 3:00.
30+
To switch to classic, make the following changes:
31+
In updateBox:
32+
h = Math.atan2(y,x) * 180 / Math.PI,
33+
In setBox:
34+
left :this.radius + radius * Math.cos(angle) ,
35+
top :this.radius + radius * Math.sin(angle)
36+
37+
#2:
38+
Full support in Firefox 3.6, and webkit.
39+
Support for linear in trident.
40+
Fallback hsg support for Opera, Trident/radial, FF 3.5, other browsers.
41+
Regarding IE support:
42+
a. Overview of filters:
43+
http://msdn.microsoft.com/en-us/library/ms532853%28VS.85%29.aspx
44+
http://www.ssi-developer.net/css/visual-filters.shtml
45+
b. The gradient filter does not support a start [or end] point, and cannot do radial.
46+
http://msdn.microsoft.com/en-us/library/ms532997%28VS.85%29.aspx
47+
c. The light filter may well be able to do a controlled radial gradient, though I failed to create one.
48+
It allows for any numbers of points, cones or ambiences.
49+
http://msdn.microsoft.com/en-us/library/ms533011%28VS.85%29.aspx
50+
http://www.javascriptkit.com/filters/light.shtml
51+
d. The alpha linear filter supports start [and end] points.
52+
[It also allows for angle gradients. The gradient is applied to the whole element, not just the background.]
53+
The radial filter does not support start points [though it does support endpoints]
54+
http://msdn.microsoft.com/en-us/library/ms532967%28VS.85%29.aspx
55+
http://www.javascriptkit.com/filters/alpha.shtml
56+
e. [Other useful filters are Composite, which allows for elements to be combined. and BasicImage: Rotation, opacity, greyscale, mirror, xray, etc.
57+
*/
58+
59+
shading: function(){
60+
var bgs = "background-image: -moz-radial-gradient(rgba(255,255,255,1), rgba(255,255,255,0)),\
61+
-webkit-gradient(radial, center center, 0, center center, 70.5, from(green), to(yellow))";
62+
},
Lines changed: 229 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,229 @@
1+
/*
2+
---
3+
4+
script: Color.js
5+
6+
description: Class for creating and manipulating colors in JavaScript. Supports HSB -> RGB Conversions and vice versa.
7+
8+
license: MIT-style license
9+
10+
authors:
11+
- Sam Goody
12+
- Valerio Proietti
13+
14+
requires:
15+
- core:1.2.4/Array
16+
- core:1.2.4/String
17+
- core:1.2.4/Number
18+
- core:1.2.4/Hash
19+
- core:1.2.4/Function
20+
- core:1.2.4/$util
21+
22+
provides: [Color]
23+
24+
...
25+
*/
26+
27+
var Color = new Native({
28+
29+
initialize: function(color, type){
30+
if (arguments.length >= 3){
31+
type = 'rgb'; color = Array.slice(arguments, 0, 3);
32+
} else if (typeof color == 'string'){
33+
if (color.match(/rgb/)) color = color.rgbToHex().hexToRgb(true);
34+
else if (color.match(/hsb/)) color = color.hsbToRgb();
35+
else color = color.hexToRgb(true);
36+
}
37+
type = type || 'rgb';
38+
switch (type){
39+
case 'hsb':
40+
var old = color;
41+
color = color.hsbToRgb();
42+
color.hsb = old;
43+
break;
44+
case 'hex': color = color.hexToRgb(true); break;
45+
}
46+
color.rgb = color.slice(0, 3);
47+
color.hsb = color.hsb || color.rgbToHsb();
48+
color.hex = color.rgbToHex();
49+
return $extend(color, this);
50+
}
51+
52+
});
53+
54+
Color.implement({
55+
56+
mix: function(){
57+
var colors = Array.slice(arguments);
58+
var alpha = ($type(colors.getLast()) == 'number') ? colors.pop() : 50;
59+
var rgb = this.slice();
60+
colors.each(function(color){
61+
color = new Color(color);
62+
for (var i = 0; i < 3; i++) rgb[i] = Math.round((rgb[i] / 100 * (100 - alpha)) + (color[i] / 100 * alpha));
63+
});
64+
return new Color(rgb, 'rgb');
65+
},
66+
67+
invert: function(){
68+
return new Color(this.map(function(value){
69+
return 255 - value;
70+
}));
71+
},
72+
73+
setHue: function(value){
74+
return new Color([value, this.hsb[1], this.hsb[2]], 'hsb');
75+
},
76+
77+
setSaturation: function(percent){
78+
return new Color([this.hsb[0], percent, this.hsb[2]], 'hsb');
79+
},
80+
81+
setBrightness: function(percent){
82+
return new Color([this.hsb[0], this.hsb[1], percent], 'hsb');
83+
}
84+
85+
});
86+
87+
var $RGB = function(r, g, b){
88+
return new Color([r, g, b], 'rgb');
89+
};
90+
91+
var $HSB = function(h, s, b){
92+
return new Color([h, s, b], 'hsb');
93+
};
94+
95+
var $HEX = function(hex){
96+
return new Color(hex, 'hex');
97+
};
98+
99+
Array.implement({
100+
101+
rgbToHsb: function(){
102+
var red = this[0],
103+
green = this[1],
104+
blue = this[2],
105+
hue = 0;
106+
var max = Math.max(red, green, blue),
107+
min = Math.min(red, green, blue);
108+
var delta = max - min;
109+
var brightness = max / 255,
110+
saturation = (max != 0) ? delta / max : 0;
111+
if(saturation != 0) {
112+
var rr = (max - red) / delta;
113+
var gr = (max - green) / delta;
114+
var br = (max - blue) / delta;
115+
if (red == max) hue = br - gr;
116+
else if (green == max) hue = 2 + rr - br;
117+
else hue = 4 + gr - rr;
118+
hue /= 6;
119+
if (hue < 0) hue++;
120+
}
121+
return [Math.round(hue * 360), Math.round(saturation * 100), Math.round(brightness * 100)];
122+
},
123+
124+
hsbToRgb: function(){
125+
var br = Math.round(this[2] / 100 * 255);
126+
if (this[1] == 0){
127+
return [br, br, br];
128+
} else {
129+
var hue = this[0] % 360;
130+
var f = hue % 60;
131+
var p = Math.round((this[2] * (100 - this[1])) / 10000 * 255);
132+
var q = Math.round((this[2] * (6000 - this[1] * f)) / 600000 * 255);
133+
var t = Math.round((this[2] * (6000 - this[1] * (60 - f))) / 600000 * 255);
134+
switch (Math.floor(hue / 60)){
135+
case 0: return [br, t, p];
136+
case 1: return [q, br, p];
137+
case 2: return [p, br, t];
138+
case 3: return [p, q, br];
139+
case 4: return [t, p, br];
140+
case 5: return [br, p, q];
141+
}
142+
}
143+
return false;
144+
},
145+
146+
fromRgb: function(space,decimal){
147+
var v,
148+
hsl = 0,
149+
rgb = $A(this).sort(function(a,b){
150+
return res = a - b
151+
}),
152+
min = rgb[0],
153+
max = rgb[2];
154+
155+
switch((space||'').toLowerCase().slice(-1)){
156+
default :
157+
v = max / 2.55;
158+
span = v; break;
159+
case 'g':
160+
v = min / (min - max + 255) * 100;
161+
span = 100; break;
162+
case 'l':
163+
v = (+max + +min) / 5.1;
164+
span = v * 2;
165+
if (v > 50){
166+
span = 200 - span;
167+
hsl = 100 - span;
168+
}
169+
}
170+
171+
var s = 100 * (min / 2.55 - v) / (hsl - v);
172+
var d = (100 * (rgb[1] / 2.55 - v) / s + v - hsl) / span;
173+
for(var ind = '', i = 0; i < 3; i++) ind += rgb.indexOf(this[i]);
174+
var h = '210,120,021,012,102,201,110,020,011,002,101,000'.indexOf(ind)/4%6;
175+
h += h%2 ? 1-d : d;
176+
return [h*60,s,v].map(function(i){ return decimal ? i||0 : Math.round(i||0) });
177+
},
178+
179+
toRgb: function(space,decimal){
180+
var val = this[2] * 1, hsl = 0;
181+
switch((space||'v').slice(-1).toLowerCase()){
182+
default : span = val; break;
183+
case 'g': span = 100; break;
184+
case 'l': span = val * 2;
185+
if (val > 50){
186+
span = 200 - span;
187+
hsl = 100 - span;
188+
}
189+
}
190+
var hue = this[0]%360/60, rad = Math.floor(hue), odd = rad%2;
191+
var rgb = [], map = [0, (odd ? 1+rad-hue : hue-rad), 1];
192+
map.each(function(density,i){
193+
var index = Math.floor(hue / 2 + 5 + i * (odd||-1))%3;
194+
var color = this[1] / 100 * (density * span - val + hsl) + val;
195+
rgb[index] = decimal ? color * 2.55 : Math.round(color * 2.55);
196+
//rgb[index] = Math.round(color * 2.55);
197+
}, this);
198+
return rgb;
199+
}
200+
});
201+
202+
String.implement({
203+
204+
rgbToHsb: function(){
205+
var rgb = this.match(/\d{1,3}/g);
206+
return (rgb) ? rgb.rgbToHsb() : null;
207+
},
208+
209+
hsbToRgb: function(){
210+
var hsb = this.match(/\d{1,3}/g);
211+
return (hsb) ? hsb.hsbToRgb() : null;
212+
},
213+
214+
fromRgb: function(space){
215+
var rgb = this.match(/\d{1,3}/g);
216+
return (rgb) ? rgb.fromRgb(space) : null;
217+
},
218+
219+
toRgb: function(space){
220+
var hsb = this.match(/\d{1,3}/g);
221+
return (hsb) ? hsb.toRgb(space) : null;
222+
}
223+
224+
});
225+
/*
226+
ToDo:
227+
6,163,0 - infinity
228+
168,4,4 - 360 / 0
229+
*/

0 commit comments

Comments
 (0)