1 package cz.cuni.amis.pogamut.ut2004.utils;
2
3 import javax.vecmath.Point3d;
4 import javax.vecmath.Vector3d;
5
6 import cz.cuni.amis.pogamut.base3d.worldview.object.Velocity;
7 import cz.cuni.amis.pogamut.unreal.communication.messages.UnrealId;
8 import cz.cuni.amis.pogamut.ut2004.communication.messages.gbcommands.Jump;
9
10
11
12
13
14
15 public class UnrealUtils {
16
17 public static final int iNT_NONE = Integer.MAX_VALUE;
18
19 public static final long lONG_NONE = Long.MAX_VALUE;
20
21 public static final float fLOAT_NONE = Float.MAX_VALUE;
22
23 public static final double dOUBLE_NONE = Double.MAX_VALUE;
24
25 public static final Integer INT_NONE = Integer.MAX_VALUE;
26
27 public static final Long LONG_NONE = Long.MAX_VALUE;
28
29 public static final Float FLOAT_NONE = Float.MAX_VALUE;
30
31 public static final Double DOUBLE_NONE = Double.MAX_VALUE;
32
33 public static final String STRING_NONE = "@@NONE@@";
34
35 public static final Point3d POINT3D_NONE = new Point3d(Double.MAX_VALUE, Double.MAX_VALUE, Double.MAX_VALUE);
36
37 public static final Vector3d VECTOR3D_NONE = new Vector3d(Double.MAX_VALUE, Double.MAX_VALUE, Double.MAX_VALUE);
38
39
40
41
42 public static final double CHARACTER_COLLISION_RADIUS = 25;
43
44
45
46 public static final double CHARACTER_COLLISION_HEIGHT = 44;
47
48
49
50 public static final double CHARACTER_HEIGHT_STANDING = 96;
51
52
53
54 public static final double CHARACTER_HEIGHT_CROUCHING = 64;
55
56
57
58
59
60 public static Velocity CHARACTER_RUN_SPEED;
61
62
63
64
65
66 public static Velocity CHARACTER_WALK_SPEED;
67
68
69
70
71 public static final double BOT_CENTER_OF_GRAVITY_HEIGHT = 50;
72
73
74
75
76 public static final double NAV_POINT_HEIGHT = 10;
77
78 public static final double FULL_ANGLE_IN_UNREAL_DEGREES = 65536;
79
80 public static final double ONE_DEGREE_IN_UNREAL_DEGREES = ((double)FULL_ANGLE_IN_UNREAL_DEGREES) / ((double)360);
81
82 public static final double ONE_RAD_IN_UNREAL_DEGREES = ((double)FULL_ANGLE_IN_UNREAL_DEGREES) / ((double)2*Math.PI);
83
84 public static final double ONE_UNREAL_DEGREE_IN_DEGREES = ((double)360) / ((double)FULL_ANGLE_IN_UNREAL_DEGREES);
85
86 public static final double ONE_UNREAD_DEGREE_IN_RAD = ((double)2*Math.PI) / ((double)FULL_ANGLE_IN_UNREAL_DEGREES);
87
88
89
90
91 public static final double UT_ANGLE_TO_RAD = 2*Math.PI / ((double)FULL_ANGLE_IN_UNREAL_DEGREES);
92
93
94
95
96 public static final double DEG_TO_UT_ANGLE = ((double)FULL_ANGLE_IN_UNREAL_DEGREES) / ((double)360);
97
98
99
100
101 public static final double UT_ANGLE_TO_DEG = FULL_ANGLE_IN_UNREAL_DEGREES * 360;
102
103
104
105
106 public static final double RAD_TO_UT_ANGLE = ((double)FULL_ANGLE_IN_UNREAL_DEGREES) / (2 * Math.PI);
107
108
109
110
111
112 public static final double UT2004_TIME_SPEED = 1.1;
113
114
115
116
117
118
119 public static final int FULL_JUMP_FORCE = 340;
120
121
122
123
124
125
126
127
128 public static final int FULL_DOUBLEJUMP_FORCE = 755;
129
130
131
132
133
134
135
136
137 public static final double FULL_DOUBLEJUMP_DELAY = 0.39;
138
139
140
141
142
143 public static final double MAX_VELOCITY = 439.5;
144
145
146
147
148
149
150 public static int degreeToUnrealDegrees(double degrees) {
151 return (int)Math.round((degrees * (double)ONE_DEGREE_IN_UNREAL_DEGREES));
152 }
153
154
155
156
157
158
159 public static double unrealDegreeToDegree(int unrealDegrees) {
160 return ((double)unrealDegrees) * ((double)ONE_UNREAL_DEGREE_IN_DEGREES);
161 }
162
163
164
165
166
167
168 public static double unrealDegreeToRad(double unrealDegrees) {
169 return ((double)unrealDegrees) * ((double)ONE_UNREAD_DEGREE_IN_RAD);
170 }
171
172
173
174
175
176
177 public static boolean isBotId(UnrealId id) {
178 return id.getStringId().contains("RemoteBot");
179 }
180
181 }