Advertisement
Guest User

Untitled

a guest
Apr 24th, 2014
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.02 KB | None | 0 0
  1. import java.nio.FloatBuffer;
  2.  
  3. import org.lwjgl.BufferUtils;
  4. import org.lwjgl.LWJGLException;
  5. import org.lwjgl.input.Keyboard;
  6. import org.lwjgl.opengl.Display;
  7. import org.lwjgl.opengl.DisplayMode;
  8. import org.lwjgl.opengl.GL11;
  9. import org.lwjgl.opengl.GL15;
  10. import org.lwjgl.util.glu.GLU;
  11.  
  12. public class BasicRenderer {
  13. private boolean isWireMesh = true;
  14. private boolean moveUp = false;
  15. private boolean moveDown = false;
  16. private boolean moveRight = false;
  17. private boolean moveLeft = false;
  18. private boolean moveSpace = false;
  19. private boolean moveShift = false;
  20. private boolean movementFlag = false;
  21. private int VBOVertexHandle;
  22. private int VBOColorHandle;
  23. private float PX = 0;
  24. private float PY = 0;
  25. private float PZ = 0;
  26. Block Block = new Block();
  27. Chunk Chunk = new Chunk();
  28. mouseUpdates mouse = new mouseUpdates();
  29.  
  30. public static void main(String[] args) throws LWJGLException
  31. {
  32. BasicRenderer r = new BasicRenderer();
  33. r.Start();
  34. }
  35.  
  36. public void Start(){
  37. try{
  38. createWindow();
  39. InitGL();
  40. Run();
  41. }catch(Exception e) {
  42. e.printStackTrace();
  43. }
  44. }
  45.  
  46. DisplayMode displayMode;
  47.  
  48. private void createWindow() throws Exception {
  49. Display.setFullscreen(false);
  50. DisplayMode d[] = Display.getAvailableDisplayModes();
  51. for (int i = 0; i < d.length; i++) {
  52. if (d[i].getWidth() == 640
  53. && d[i].getHeight() == 480
  54. && d[i].getBitsPerPixel() == 32) {
  55. displayMode = d[i];
  56. break;
  57. }
  58. }
  59. Display.setDisplayMode(displayMode);
  60. Display.setTitle("BluePrint Maker");
  61. Display.create();
  62. }
  63.  
  64. private void InitGL() {
  65. GL11.glEnable(GL11.GL_TEXTURE_2D);
  66. GL11.glShadeModel(GL11.GL_SMOOTH);
  67. GL11.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
  68. GL11.glClearDepth(1.0);
  69. GL11.glEnable(GL11.GL_DEPTH_TEST);
  70. GL11.glDepthFunc(GL11.GL_LEQUAL);
  71. GL11.glEnableClientState(GL11.GL_VERTEX_ARRAY);
  72.  
  73. GL11.glEnableClientState(GL11.GL_COLOR_ARRAY);
  74.  
  75. GL11.glMatrixMode(GL11.GL_PROJECTION);
  76. GL11.glLoadIdentity();
  77.  
  78. GLU.gluPerspective(45.0f, (float) displayMode.getWidth()
  79. / (float) displayMode.getHeight(), 0.1f, 100.0f);
  80. GL11.glMatrixMode(GL11.GL_MODELVIEW);
  81.  
  82. GL11.glHint(GL11.GL_PERSPECTIVE_CORRECTION_HINT, GL11.GL_NICEST);
  83. }
  84.  
  85. private void Run(){
  86. float rotateYaw = 1;
  87.  
  88. while(!Display.isCloseRequested()){
  89. try{
  90. Render();
  91. Display.update();
  92. Display.sync(60);
  93.  
  94. ProcessInput();
  95. GL11.glClear(GL11.GL_COLOR_BUFFER_BIT
  96. | GL11.GL_DEPTH_BUFFER_BIT);
  97. GL11.glLoadIdentity();
  98.  
  99. GL11.glTranslatef(-30f + PX, -40f + PY, -160f+PZ);
  100.  
  101. GL11.glRotatef(45f, 0.4f, 1.0f, 0.1f);
  102. GL11.glRotatef(45f, 0f, 1.0f, 0f);
  103.  
  104. rotateYaw += 1;
  105.  
  106. GL11.glRotatef(rotateYaw, 1f, 1.0f, 1f);
  107. DrawVBO();
  108. CreateVBO();
  109. }catch(Exception e){
  110.  
  111. }
  112. }
  113. Display.destroy();
  114. }
  115.  
  116. private void ProcessInput(){
  117. Keyboard.enableRepeatEvents(true);
  118. while(Keyboard.next()){
  119.  
  120. //If key escape is down we shut the application down
  121. if(Keyboard.isKeyDown(Keyboard.KEY_ESCAPE)){
  122. System.exit(0);
  123. }
  124.  
  125. //If key up was pressed move up
  126. else if(Keyboard.getEventKey() == Keyboard.KEY_UP) {
  127. if(Keyboard.getEventKeyState()){
  128. if(Keyboard.isRepeatEvent())
  129. {
  130. System.out.println("KEY DOWN!");
  131. moveUp = true;
  132. movementFlag = true;
  133. }
  134. }
  135. else{
  136. System.out.println("KEY RELEASED!");
  137. moveUp = false;
  138. movementFlag = false;
  139. }
  140. }
  141. //If key down was pressed move down
  142. else if(Keyboard.getEventKey() == Keyboard.KEY_DOWN) {
  143. if(Keyboard.getEventKeyState()){
  144. if(Keyboard.isRepeatEvent())
  145. {
  146. System.out.println("KEY DOWN!");
  147. moveDown = true;
  148. movementFlag = true;
  149. }
  150. }
  151. else{
  152. System.out.println("KEY RELEASED!");
  153. moveDown = false;
  154. movementFlag = false;
  155. }
  156. }
  157. else if(Keyboard.getEventKey() == Keyboard.KEY_RIGHT){
  158. if(Keyboard.getEventKeyState()){
  159. if(Keyboard.isRepeatEvent())
  160. {
  161. System.out.println("KEY DOWN!");
  162. moveRight = true;
  163. movementFlag = true;
  164. }
  165. }
  166. else{
  167. System.out.println("KEY RELEASED!");
  168. moveRight = false;
  169. movementFlag = false;
  170. }
  171. }
  172. else if(Keyboard.getEventKey() == Keyboard.KEY_LEFT)
  173. if(Keyboard.getEventKeyState()){
  174. if(Keyboard.isRepeatEvent())
  175. {
  176. System.out.println("KEY DOWN!");
  177. moveLeft = true;
  178. movementFlag = true;
  179. }
  180. }
  181. else{
  182. System.out.println("KEY RELEASED!");
  183. moveLeft = false;
  184. movementFlag = false;
  185. }
  186. }
  187. if(Keyboard.getEventKey() == Keyboard.KEY_SPACE) {
  188. if(Keyboard.getEventKeyState()){
  189. if(Keyboard.isRepeatEvent())
  190. {
  191. System.out.println("KEY DOWN!");
  192. moveSpace = true;
  193. movementFlag = true;
  194. }
  195. }
  196. else{
  197. System.out.println("KEY RELEASED!");
  198. moveSpace = false;
  199. movementFlag = false;
  200. }
  201. }
  202. else if(Keyboard.getEventKey() == Keyboard.KEY_LSHIFT) {
  203. if(Keyboard.getEventKeyState()){
  204. if(Keyboard.isRepeatEvent())
  205. {
  206. System.out.println("KEY DOWN!");
  207. moveShift = true;
  208. movementFlag = true;
  209. }
  210. }
  211. else{
  212. System.out.println("KEY RELEASED!");
  213. moveShift = false;
  214. movementFlag = false;
  215. }
  216. }
  217.  
  218. if(movementFlag == true && moveUp == true){
  219. PZ = PZ + 5;
  220. }
  221. if(movementFlag == true && moveDown == true){
  222. PZ = PZ - 5;
  223. }
  224. if(movementFlag == true && moveRight == true){
  225. PX = PX + 5;
  226. }
  227. if(movementFlag == true && moveLeft == true){
  228. PX = PX - 5;
  229. }
  230. if(movementFlag == true && moveSpace == true){
  231. PY = PY + 5;
  232. }
  233. if(movementFlag == true && moveShift == true){
  234. PY = PY - 5;
  235. }
  236. }
  237.  
  238. private void DrawVBO() {
  239. GL11.glPushMatrix();
  240. GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, VBOVertexHandle);
  241. GL11.glVertexPointer(3, GL11.GL_FLOAT, 0, 0L);
  242. GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, VBOColorHandle);
  243. GL11.glColorPointer(3, GL11.GL_FLOAT, 0, 0L);
  244. GL11.glDrawArrays(GL11.GL_QUADS, 0, 24);
  245. GL11.glPopMatrix();
  246. }
  247.  
  248. private void CreateVBO() {
  249. VBOColorHandle = GL15.glGenBuffers();
  250. VBOVertexHandle = GL15.glGenBuffers();
  251. FloatBuffer VertexPositionData = BufferUtils.createFloatBuffer(24 * 3);
  252. VertexPositionData.put(new float[] {
  253. 1.0f, 1.0f, -1.0f,
  254. -1.0f, 1.0f, -1.0f,
  255. -1.0f, 1.0f, 1.0f,
  256. 1.0f, 1.0f, 1.0f,
  257.  
  258. 1.0f, -1.0f, 1.0f,
  259. -1.0f, -1.0f, 1.0f,
  260. -1.0f, -1.0f, -1.0f,
  261. 1.0f, -1.0f, -1.0f,
  262.  
  263. 1.0f, 1.0f, 1.0f,
  264. -1.0f, 1.0f, 1.0f,
  265. -1.0f, -1.0f, 1.0f,
  266. 1.0f, -1.0f, 1.0f,
  267.  
  268. 1.0f, -1.0f, -1.0f,
  269. -1.0f, -1.0f, -1.0f,
  270. -1.0f, 1.0f, -1.0f,
  271. 1.0f, 1.0f, -1.0f,
  272.  
  273. -1.0f, 1.0f, 1.0f,
  274. -1.0f, 1.0f, -1.0f,
  275. -1.0f, -1.0f, -1.0f,
  276. -1.0f, -1.0f, 1.0f,
  277.  
  278. 1.0f, 1.0f, -1.0f,
  279. 1.0f, 1.0f, 1.0f,
  280. 1.0f, -1.0f, 1.0f,
  281. 1.0f, -1.0f, -1.0f
  282. });
  283. VertexPositionData.flip();
  284. FloatBuffer VertexColorData = BufferUtils.createFloatBuffer(24 * 3);
  285. VertexColorData.put(new float[] { 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1,1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1,1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1,1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1,1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1,1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, });
  286. VertexColorData.flip();
  287.  
  288. GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, VBOVertexHandle);
  289. GL15.glBufferData(GL15.GL_ARRAY_BUFFER, VertexPositionData,
  290. GL15.GL_STATIC_DRAW);
  291. GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
  292. GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, VBOColorHandle);
  293. GL15.glBufferData(GL15.GL_ARRAY_BUFFER, VertexColorData,
  294. GL15.GL_STATIC_DRAW);
  295. GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
  296. }
  297.  
  298. private void Render(){
  299. CreateVBO();
  300. DrawVBO();
  301. GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
  302. GL11.glLoadIdentity();
  303.  
  304. GL11.glTranslatef(-3f, 0.0f, -20f);
  305. GL11.glRotatef(45f, 0.4f, 1.0f, 0.1f);
  306. GL11.glColor3f(255.0f, 255.0f, 255.0f);
  307.  
  308. Block.blockType = "Default";
  309. for(int x = 0; x<3;x++){
  310. for(int y = 0; y<3;y++){
  311. for(int z = 0; z<3;z++){
  312. RenderCube();
  313. GL11.glTranslatef(0f, 0.0f, 2f);
  314. }
  315. GL11.glTranslatef(0f, 2f, -6f);
  316. }
  317. GL11.glTranslatef(2f, -6f, 0);
  318. }
  319. }
  320.  
  321. private void SetWireMesh(){
  322. GL11.glBegin(GL11.GL_LINE_LOOP);
  323. }
  324.  
  325. private void SetHole(){
  326. GL11.glBegin(GL11.GL_QUADS );
  327. }
  328.  
  329. public void RenderCube() {
  330. if(isWireMesh == true){
  331. SetWireMesh();
  332. }
  333. else{
  334. SetHole();
  335. }
  336. if(Block.blockType == "Default"){
  337. GL11.glColor3f(255.0f, 255.0f, 255.0f);
  338. GL11.glVertex3f(1.0f, 1.0f, -1.0f);
  339. GL11.glVertex3f(-1.0f, 1.0f, -1.0f);
  340. GL11.glVertex3f(-1.0f, 1.0f, 1.0f);
  341. GL11.glVertex3f(1.0f, 1.0f, 1.0f);
  342. GL11.glColor3f(255.0f, 255.5f, 255.0f);
  343. GL11.glVertex3f(1.0f, -1.0f, 1.0f);
  344. GL11.glVertex3f(-1.0f, -1.0f, 1.0f);
  345. GL11.glVertex3f(-1.0f, -1.0f, -1.0f);
  346. GL11.glVertex3f(1.0f, -1.0f, -1.0f);
  347. GL11.glColor3f(255.0f, 255.0f, 255.0f);
  348. GL11.glVertex3f(1.0f, 1.0f, 1.0f);
  349. GL11.glVertex3f(-1.0f, 1.0f, 1.0f);
  350. GL11.glVertex3f(-1.0f, -1.0f, 1.0f);
  351. GL11.glVertex3f(1.0f, -1.0f, 1.0f);
  352. GL11.glColor3f(255.0f, 255.0f, 255.0f);
  353. GL11.glVertex3f(1.0f, -1.0f, -1.0f);
  354. GL11.glVertex3f(-1.0f, -1.0f, -1.0f);
  355. GL11.glVertex3f(-1.0f, 1.0f, -1.0f);
  356. GL11.glVertex3f(1.0f, 1.0f, -1.0f);
  357. GL11.glColor3f(255.0f, 255.0f, 255.0f);
  358. GL11.glVertex3f(-1.0f, 1.0f, 1.0f);
  359. GL11.glVertex3f(-1.0f, 1.0f, -1.0f);
  360. GL11.glVertex3f(-1.0f, -1.0f, -1.0f);
  361. GL11.glVertex3f(-1.0f, -1.0f, 1.0f);
  362. GL11.glColor3f(255.0f, 255.0f, 255.0f);
  363. GL11.glVertex3f(1.0f, 1.0f, -1.0f);
  364. GL11.glVertex3f(1.0f, 1.0f, 1.0f);
  365. GL11.glVertex3f(1.0f, -1.0f, 1.0f);
  366. GL11.glVertex3f(1.0f, -1.0f, -1.0f);
  367. GL11.glEnd();
  368. }
  369. if(Block.blockType == "UserPlaced"){
  370. GL11.glColor3f(-1.0f, 1.0f, 1.0f);
  371. GL11.glVertex3f(-1.0f, 1.0f, 1.0f);
  372. GL11.glVertex3f(-1.0f, 1.0f, 1.0f);
  373. GL11.glVertex3f(-1.0f, 1.0f, 1.0f);
  374. GL11.glVertex3f(1.0f, 1.0f, 1.0f);
  375. GL11.glColor3f(1.0f, 0.5f, 0.0f);
  376. GL11.glVertex3f(1.0f, -1.0f, 1.0f);
  377. GL11.glVertex3f(-1.0f, -1.0f, 1.0f);
  378. GL11.glVertex3f(-1.0f, -1.0f, -1.0f);
  379. GL11.glVertex3f(1.0f, -1.0f, -1.0f);
  380. GL11.glColor3f(1.0f, 0.0f, 0.0f);
  381. GL11.glVertex3f(1.0f, 1.0f, 1.0f);
  382. GL11.glVertex3f(-1.0f, 1.0f, 1.0f);
  383. GL11.glVertex3f(-1.0f, -1.0f, 1.0f);
  384. GL11.glVertex3f(1.0f, -1.0f, 1.0f);
  385. GL11.glColor3f(1.0f, 1.0f, 0.0f);
  386. GL11.glVertex3f(1.0f, -1.0f, -1.0f);
  387. GL11.glVertex3f(-1.0f, -1.0f, -1.0f);
  388. GL11.glVertex3f(-1.0f, 1.0f, -1.0f);
  389. GL11.glVertex3f(1.0f, 1.0f, -1.0f);
  390. GL11.glColor3f(0.0f, 0.0f, 1.0f);
  391. GL11.glVertex3f(-1.0f, 1.0f, 1.0f);
  392. GL11.glVertex3f(-1.0f, 1.0f, -1.0f);
  393. GL11.glVertex3f(-1.0f, -1.0f, -1.0f);
  394. GL11.glVertex3f(-1.0f, -1.0f, 1.0f);
  395. GL11.glColor3f(1.0f, 0.0f, 1.0f);
  396. GL11.glVertex3f(1.0f, 1.0f, -1.0f);
  397. GL11.glVertex3f(1.0f, 1.0f, 1.0f);
  398. GL11.glVertex3f(1.0f, -1.0f, 1.0f);
  399. GL11.glVertex3f(1.0f, -1.0f, -1.0f);
  400. GL11.glEnd();
  401. }
  402. }
  403.  
  404. import org.lwjgl.opengl.GL11;
  405. import org.lwjgl.opengl.GL15;
  406. import org.lwjgl.util.glu.GLU;
  407. import org.lwjgl.BufferUtils;
  408. import org.lwjgl.LWJGLException;
  409.  
  410. public class mouseUpdates{
  411.  
  412. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement