From 9dc6f69f701e42b30adf7d1b01488f425eaec265 Mon Sep 17 00:00:00 2001 From: OnyxDarkKnight Date: Sun, 12 Apr 2015 16:32:33 +0300 Subject: Changes, idk... --- eclipse/.metadata/.log | 2299 ++++++++++++++++++++ eclipse/.metadata/.mylyn/.tasks.xml.zip | Bin 250 -> 250 bytes eclipse/.metadata/.mylyn/tasks.xml.zip | Bin 250 -> 250 bytes .../.history/0/00f44bf8f2cf0014170de422db399e8d | 65 - .../.history/0/60ca70f3b9d000141b65e2fc7f94332d | 232 -- .../.history/0/805d1a320cde00141043c3025ec60dfc | 186 ++ .../.history/0/90d037febbd000141b65e2fc7f94332d | 236 -- .../.history/0/c03acc5982d000141a1fb02abca5ff55 | 67 - .../.history/1/f0fa8fa8cfdf00141dc6c962aec96210 | 102 + .../.history/10/202fc46ed0df00141dc6c962aec96210 | 87 + .../.history/10/803b287d0cde00141043c3025ec60dfc | 66 + .../.history/10/d02d52592dde00141043c3025ec60dfc | 106 + .../.history/12/50aa0d289bd000141b65e2fc7f94332d | 0 .../.history/12/e0e3109acfdf00141dc6c962aec96210 | 102 + .../.history/13/908f5c3bb4d000141b65e2fc7f94332d | 195 -- .../.history/13/a08d42f22dde00141043c3025ec60dfc | 107 + .../.history/15/607a0b0a28de00141043c3025ec60dfc | 465 ++++ .../.history/15/70a157f022cf00141c41f52413db5e31 | 459 ---- .../.history/15/a002d0b6cedf00141dc6c962aec96210 | 87 + .../.history/15/a058ee18bcd000141b65e2fc7f94332d | 114 - .../.history/15/b0d74dd670cf00141de78e4a85bb2469 | 41 - .../.history/17/3014ba2224cf00141c41f52413db5e31 | 25 - .../.history/17/f0ded3dbcedf00141dc6c962aec96210 | 185 ++ .../.history/18/70793b297ecf00141de78e4a85bb2469 | 81 - .../.history/18/f0b8342df3cf0014170de422db399e8d | 64 - .../.history/19/40b7127a9cd000141b65e2fc7f94332d | 52 - .../.history/1a/70a655ecbdd000141b65e2fc7f94332d | 237 -- .../.history/1b/208e063bf5cf0014170de422db399e8d | 69 - .../.history/1b/807d1568bed000141b65e2fc7f94332d | 239 -- .../.history/1b/f07260f599d000141b65e2fc7f94332d | 78 - .../.history/1c/501314b626de00141043c3025ec60dfc | 105 + .../.history/1c/d012a06acedf00141dc6c962aec96210 | 87 + .../.history/1d/10a8250bf2cf0014170de422db399e8d | 64 - .../.history/1d/304ae31aa0ce00141801ff0972626827 | 71 - .../.history/1e/00b1e982a0ce00141801ff0972626827 | 25 - .../.history/1e/e0daccca6fcf00141de78e4a85bb2469 | 43 - .../.history/1f/20cffe1816cf00141c41f52413db5e31 | 30 - .../.history/1f/4094f8e609de00141043c3025ec60dfc | 184 ++ .../.history/2/003d2b0505de00141043c3025ec60dfc | 279 +++ .../.history/2/20405a71ccdf00141dc6c962aec96210 | 96 + .../.history/2/4002026028de00141043c3025ec60dfc | 465 ++++ .../.history/2/609f909029de00141043c3025ec60dfc | 122 ++ .../.history/2/804b704ea7ce00141801ff0972626827 | 113 - .../.history/2/a0d5c9a72bde00141043c3025ec60dfc | 121 ++ .../.history/2/e064279b24cf00141c41f52413db5e31 | 36 - .../.history/20/5081dc2706de00141043c3025ec60dfc | 123 ++ .../.history/20/709a7da620cf00141c41f52413db5e31 | 459 ---- .../.history/20/80c96a3f6fcf00141de78e4a85bb2469 | 39 - .../.history/20/906f9d59f3cf0014170de422db399e8d | 64 - .../.history/21/30a1626704de00141043c3025ec60dfc | 278 +++ .../.history/21/801465eccbdf00141dc6c962aec96210 | 98 + .../.history/21/90210400bbd000141b65e2fc7f94332d | 112 - .../.history/22/400e338dbcd000141b65e2fc7f94332d | 238 -- .../.history/22/50c220fcb9d000141b65e2fc7f94332d | 232 -- .../.history/22/c083e9b42bde00141043c3025ec60dfc | 122 ++ .../.history/23/00c5f4c902de00141043c3025ec60dfc | 131 ++ .../.history/23/408dbb6524cf00141c41f52413db5e31 | 36 - .../.history/23/7059c98a6edd001412dce27813e7be4a | 108 + .../.history/24/e06abfb6f6cf0014170de422db399e8d | 66 - .../.history/25/10ad6571bed000141b65e2fc7f94332d | 240 -- .../.history/25/6035720f6fcf00141de78e4a85bb2469 | 36 - .../.history/25/60b18a49bdd000141b65e2fc7f94332d | 125 -- .../.history/25/60f0dd6d12cf00141c41f52413db5e31 | 453 ---- .../.history/25/f08a3fedf1cf0014170de422db399e8d | 63 - .../.history/26/40b2f4a3b8d000141b65e2fc7f94332d | 197 -- .../.history/26/801b0ce922cf00141c41f52413db5e31 | 460 ---- .../.history/26/905604776fcf00141de78e4a85bb2469 | 39 - .../.history/27/10f40556bbd000141b65e2fc7f94332d | 112 - .../.history/27/60dda1c0bcd000141b65e2fc7f94332d | 245 --- .../.history/27/a01e32b5bbd000141b65e2fc7f94332d | 114 - .../.history/28/30de043304de00141043c3025ec60dfc | 278 +++ .../.history/28/40247e5d2dde00141043c3025ec60dfc | 106 + .../.history/28/5054a9ea70cf00141de78e4a85bb2469 | 41 - .../.history/28/9027920627de00141043c3025ec60dfc | 105 + .../.history/28/90616b3e85d000141a1fb02abca5ff55 | 79 - .../.history/28/b0c118102dde00141043c3025ec60dfc | 105 + .../.history/29/6015a33bd1df00141dc6c962aec96210 | 122 ++ .../.history/29/b02c9da3a5ce00141801ff0972626827 | 104 - .../.history/29/c011836acadf00141dc6c962aec96210 | 94 + .../.history/2b/2069bbfabdd000141b65e2fc7f94332d | 237 -- .../.history/2b/a09c5791f6cf0014170de422db399e8d | 65 - .../.history/2c/0075f9bc9fd000141b65e2fc7f94332d | 78 - .../.history/2c/702e06909bd000141b65e2fc7f94332d | 44 - .../.history/2c/809d0e09cddf00141dc6c962aec96210 | 85 + .../.history/2c/b0ae616ecedf00141dc6c962aec96210 | 87 + .../.history/2c/b0fd61c916cf00141c41f52413db5e31 | 115 - .../.history/2d/50f61c022bde00141043c3025ec60dfc | 466 ++++ .../.history/2d/90ac8e2b9fce00141801ff0972626827 | 68 - .../.history/2f/3016ca8fa3d000141b65e2fc7f94332d | 68 - .../.history/2f/90f98826b0d000141b65e2fc7f94332d | 247 --- .../.history/3/20e2ed160cde00141043c3025ec60dfc | 186 ++ .../.history/3/902846c39fd000141b65e2fc7f94332d | 74 - .../.history/30/1096a2fac8df00141dc6c962aec96210 | 93 + .../.history/31/201793702dde00141043c3025ec60dfc | 106 + .../.history/31/4099cacb16cf00141c41f52413db5e31 | 459 ---- .../.history/31/7026f2daf4cf0014170de422db399e8d | 62 - .../.history/31/90e1eeeff3cf0014170de422db399e8d | 62 - .../.history/31/f02810b507de00141043c3025ec60dfc | 183 ++ .../.history/32/009ecb1ebbd000141b65e2fc7f94332d | 112 - .../.history/32/609ee512cfdf00141dc6c962aec96210 | 109 + .../.history/33/808ebec629de00141043c3025ec60dfc | 466 ++++ .../.history/34/10340d2ef2cf0014170de422db399e8d | 64 - .../.history/34/10925bf3cadf00141dc6c962aec96210 | 96 + .../.history/35/00ec9292a7ce00141801ff0972626827 | 116 - .../.history/35/c0e606a470cf00141de78e4a85bb2469 | 41 - .../.history/36/9032f899b7d000141b65e2fc7f94332d | 197 -- .../.history/36/a0809e1223cf00141c41f52413db5e31 | 460 ---- .../.history/37/10568ea1b7d000141b65e2fc7f94332d | 197 -- .../.history/37/4027a5e129de00141043c3025ec60dfc | 105 + .../.history/37/f0613fc4cfdf00141dc6c962aec96210 | 102 + .../.history/38/a0c4fa6984d000141a1fb02abca5ff55 | 69 - .../.history/38/f0c649af08de00141043c3025ec60dfc | 184 ++ .../.history/39/60be6d7a67dd001412dce27813e7be4a | 123 ++ .../.history/3a/002a7b0fb7d000141b65e2fc7f94332d | 197 -- .../.history/3a/10dc7459bbd000141b65e2fc7f94332d | 114 - .../.history/3a/6000f6390ade00141043c3025ec60dfc | 185 ++ .../.history/3a/606c08157ecf00141de78e4a85bb2469 | 81 - .../.history/3a/7064faac7dcf00141de78e4a85bb2469 | 186 -- .../.history/3a/900cd0d2ccdf00141dc6c962aec96210 | 79 + .../.history/3b/10890341bbd000141b65e2fc7f94332d | 112 - .../.history/3b/3024e21485d000141a1fb02abca5ff55 | 79 - .../.history/3b/503ff62fb6d000141b65e2fc7f94332d | 197 -- .../.history/3b/a06f5eb026de00141043c3025ec60dfc | 105 + .../.history/3c/20d6830327de00141043c3025ec60dfc | 105 + .../.history/3c/60160ac99ad000141b65e2fc7f94332d | 74 - .../.history/3c/90a539afbbd000141b65e2fc7f94332d | 114 - .../.history/3d/0091dffeb5d000141b65e2fc7f94332d | 197 -- .../.history/3d/30f66b0413cf00141c41f52413db5e31 | 57 - .../.history/3d/801c40ebcbdf00141dc6c962aec96210 | 97 + .../.history/3e/309bbd4008de00141043c3025ec60dfc | 183 ++ .../.history/3e/5019b6d220cf00141c41f52413db5e31 | 32 - .../.history/3e/7005297f22cf00141c41f52413db5e31 | 460 ---- .../.history/3e/808884ea13cf00141c41f52413db5e31 | 28 - .../.history/3f/50b62efab9d000141b65e2fc7f94332d | 232 -- .../.history/3f/6048b993bcd000141b65e2fc7f94332d | 243 --- .../.history/3f/c022d38cf2cf0014170de422db399e8d | 64 - .../.history/3f/e0ed63d312cf00141c41f52413db5e31 | 261 --- .../.history/4/003ee58eafd000141b65e2fc7f94332d | 247 --- .../.history/4/c02871fbb6d000141b65e2fc7f94332d | 197 -- .../.history/40/003a974204de00141043c3025ec60dfc | 278 +++ .../.history/40/b0889c1bbcd000141b65e2fc7f94332d | 115 - .../.history/41/c080ae01bcd000141b65e2fc7f94332d | 236 -- .../.history/42/20200c94b8d000141b65e2fc7f94332d | 197 -- .../.history/43/70f7cff5b6d000141b65e2fc7f94332d | 197 -- .../.history/44/007d9fbe0ade00141043c3025ec60dfc | 186 ++ .../.history/44/c04764282ede00141043c3025ec60dfc | 109 + .../.history/44/d0a17b8f13cf00141c41f52413db5e31 | 24 - .../.history/45/90a975eca4ce00141801ff0972626827 | 103 - .../.history/45/f045d0fb2ede00141043c3025ec60dfc | 108 + .../.history/46/7051d7cf22cf00141c41f52413db5e31 | 460 ---- .../.history/48/20293dcd23cf00141c41f52413db5e31 | 99 - .../.history/48/e03e86c12ede00141043c3025ec60dfc | 46 + .../.history/48/f0362027f4cf0014170de422db399e8d | 62 - .../.history/49/2066f1c9bbd000141b65e2fc7f94332d | 115 - .../.history/49/707c7127bed000141b65e2fc7f94332d | 178 -- .../.history/4a/4009975e82d000141a1fb02abca5ff55 | 67 - .../.history/4a/6016724bbad000141b65e2fc7f94332d | 78 - .../.history/4a/9089738c21cf00141c41f52413db5e31 | 36 - .../.history/4a/a015113e04de00141043c3025ec60dfc | 278 +++ .../.history/4b/20a0a61c84d000141a1fb02abca5ff55 | 13 - .../.history/4b/20bea20c21cf00141c41f52413db5e31 | 36 - .../.history/4b/405c7f377ecf00141de78e4a85bb2469 | 13 - .../.history/4b/90de45a1bbd000141b65e2fc7f94332d | 114 - .../.history/4b/a055ddd2bbd000141b65e2fc7f94332d | 115 - .../.history/4b/b07b909e26de00141043c3025ec60dfc | 105 + .../.history/4b/d0c27ea5f6cf0014170de422db399e8d | 66 - .../.history/4c/1031dd2dbbd000141b65e2fc7f94332d | 112 - .../.history/4c/70c9f176f2cf0014170de422db399e8d | 64 - .../.history/4d/f08f115612cf00141c41f52413db5e31 | 24 - .../.history/4e/b0576841f2cf0014170de422db399e8d | 64 - .../.history/4f/007bc83ab6d000141b65e2fc7f94332d | 197 -- .../.history/4f/402d4daebcd000141b65e2fc7f94332d | 246 --- .../.history/4f/e0d9514683d000141a1fb02abca5ff55 | 79 - .../.history/5/f00c439cb7d000141b65e2fc7f94332d | 197 -- .../.history/50/10b548dabad000141b65e2fc7f94332d | 112 - .../.history/50/70986997b7d000141b65e2fc7f94332d | 197 -- .../.history/52/c0326ecba5ce00141801ff0972626827 | 448 ---- .../.history/52/e06a0851bdd000141b65e2fc7f94332d | 125 -- .../.history/53/90cafa5d14cf00141c41f52413db5e31 | 35 - .../.history/53/e0ac941eccdf00141dc6c962aec96210 | 96 + .../.history/54/8048f9edb6d000141b65e2fc7f94332d | 197 -- .../.history/54/a09b425fbbd000141b65e2fc7f94332d | 114 - .../.history/55/509f12b8cfdf00141dc6c962aec96210 | 102 + .../.history/55/70eb2ca3ccdf00141dc6c962aec96210 | 96 + .../.history/56/90504c0bbbd000141b65e2fc7f94332d | 112 - .../.history/56/a0087dd116cf00141c41f52413db5e31 | 116 - .../.history/57/20ddfa7621cf00141c41f52413db5e31 | 36 - .../.history/57/90a153b367dd001412dce27813e7be4a | 123 ++ .../.history/57/a04f0c50a4ce00141801ff0972626827 | 435 ---- .../.history/57/b095661a2ede00141043c3025ec60dfc | 109 + .../.history/57/e0aa469384d000141a1fb02abca5ff55 | 79 - .../.history/58/d07c98730ade00141043c3025ec60dfc | 185 ++ .../.history/59/1044992a23cf00141c41f52413db5e31 | 459 ---- .../.history/59/1048515cbbd000141b65e2fc7f94332d | 114 - .../.history/59/b085ddbd9ad000141b65e2fc7f94332d | 74 - .../.history/59/c078df6404de00141043c3025ec60dfc | 278 +++ .../.history/59/c07baaa5bcd000141b65e2fc7f94332d | 245 --- .../.history/59/e0e84e2dbdd000141b65e2fc7f94332d | 115 - .../.history/5b/40a922fbcddf00141dc6c962aec96210 | 87 + .../.history/5b/5029f1a804de00141043c3025ec60dfc | 278 +++ .../.history/5b/80f31216bbd000141b65e2fc7f94332d | 112 - .../.history/5b/b0474f9184d000141a1fb02abca5ff55 | 79 - .../.history/5b/b0a71b6116cf00141c41f52413db5e31 | 30 - .../.history/5c/10e245fff3cf0014170de422db399e8d | 62 - .../.history/5c/407a4588cadf00141dc6c962aec96210 | 96 + .../.history/5c/d08f32069cd000141b65e2fc7f94332d | 44 - .../.history/5c/f0e98566a7ce00141801ff0972626827 | 116 - .../.history/5d/00fa2de0a6ce00141801ff0972626827 | 106 - .../.history/5e/f0abea277dcf00141de78e4a85bb2469 | 187 -- .../.history/5f/30d8062da0ce00141801ff0972626827 | 71 - .../.history/5f/30e8b2dea5ce00141801ff0972626827 | 102 - .../.history/5f/30f9e59108de00141043c3025ec60dfc | 184 ++ .../.history/5f/50b15c9812cf00141c41f52413db5e31 | 102 - .../.history/5f/60bc25dabdd000141b65e2fc7f94332d | 236 -- .../.history/6/40b159950ade00141043c3025ec60dfc | 186 ++ .../.history/6/d0a52e0212cf00141c41f52413db5e31 | 446 ---- .../.history/60/601a6034bcd000141b65e2fc7f94332d | 197 -- .../.history/60/c0d85da8b8d000141b65e2fc7f94332d | 197 -- .../.history/61/8023076d28de00141043c3025ec60dfc | 465 ++++ .../.history/61/d0d1c7060cde00141043c3025ec60dfc | 186 ++ .../.history/62/2069867dbbd000141b65e2fc7f94332d | 114 - .../.history/62/30a210a5bbd000141b65e2fc7f94332d | 114 - .../.history/62/507f105a2ede00141043c3025ec60dfc | 109 + .../.history/62/c01a61492ede00141043c3025ec60dfc | 109 + .../.history/62/f0beebb39ad000141b65e2fc7f94332d | 74 - .../.history/63/204cfa240ade00141043c3025ec60dfc | 185 ++ .../.history/63/60dd45d1a5ce00141801ff0972626827 | 448 ---- .../.history/63/a0890abe02de00141043c3025ec60dfc | 272 +++ .../.history/63/d03963b82ede00141043c3025ec60dfc | 108 + .../.history/63/e00f48f3bdd000141b65e2fc7f94332d | 237 -- .../.history/63/e0b3878d7dcf00141de78e4a85bb2469 | 223 -- .../.history/64/009346bd26de00141043c3025ec60dfc | 105 + .../.history/64/50a406e982d000141a1fb02abca5ff55 | 67 - .../.history/64/905e928db7d000141b65e2fc7f94332d | 197 -- .../.history/64/c06ac17c09de00141043c3025ec60dfc | 184 ++ .../.history/65/603844c615cf00141c41f52413db5e31 | 460 ---- .../.history/65/80ef4046bbd000141b65e2fc7f94332d | 112 - .../.history/65/90070fc8cfdf00141dc6c962aec96210 | 102 + .../.history/65/9039e7ea21cf00141c41f52413db5e31 | 459 ---- .../.history/66/30591b0b27de00141043c3025ec60dfc | 105 + .../.history/66/702cdaf0ccdf00141dc6c962aec96210 | 82 + .../.history/66/80f33350c9df00141dc6c962aec96210 | 93 + .../.history/66/b0813d41f3cf0014170de422db399e8d | 64 - .../.history/67/e0b3c0d50bde00141043c3025ec60dfc | 185 ++ .../.history/68/00b782eca6ce00141801ff0972626827 | 112 - .../.history/68/9054945503de00141043c3025ec60dfc | 94 + .../.history/68/f05ddeeb99d000141b65e2fc7f94332d | 79 - .../.history/69/30a1d335b4d000141b65e2fc7f94332d | 195 -- .../.history/69/4034bfb970cf00141de78e4a85bb2469 | 462 ---- .../.history/69/80c87259cadf00141dc6c962aec96210 | 84 + .../.history/69/f0fb303b0bde00141043c3025ec60dfc | 185 ++ .../.history/6a/00f1323d0cde00141043c3025ec60dfc | 186 ++ .../.history/6b/b02224c467dd001412dce27813e7be4a | 123 ++ .../.history/6b/c0058039a3ce00141801ff0972626827 | 438 ---- .../.history/6d/102be67fbbd000141b65e2fc7f94332d | 114 - .../.history/6d/20760f8dbbd000141b65e2fc7f94332d | 114 - .../.history/6e/a046bebfcfdf00141dc6c962aec96210 | 102 + .../.history/6e/d012947f9fce00141801ff0972626827 | 187 -- .../.history/6e/f0a4797968dd001412dce27813e7be4a | 123 ++ .../.history/6f/b08cd803bcd000141b65e2fc7f94332d | 236 -- .../.history/6f/f0b063e3a3ce00141801ff0972626827 | 435 ---- .../.history/7/105eef10f4cf0014170de422db399e8d | 62 - .../.history/7/80707ccf26de00141043c3025ec60dfc | 105 + .../.history/7/90e15befbdd000141b65e2fc7f94332d | 237 -- .../.history/7/d09c58ed23cf00141c41f52413db5e31 | 99 - .../.history/70/408fefd316cf00141c41f52413db5e31 | 116 - .../.history/70/5022fbd5b9d000141b65e2fc7f94332d | 232 -- .../.history/70/e09f38179cd000141b65e2fc7f94332d | 48 - .../.history/71/60317a00bad000141b65e2fc7f94332d | 232 -- .../.history/72/00e8ece9b6d000141b65e2fc7f94332d | 197 -- .../.history/72/a00659a981d000141a1fb02abca5ff55 | 66 - .../.history/72/b01f1983b4d000141b65e2fc7f94332d | 195 -- .../.history/74/10c2166623cf00141c41f52413db5e31 | 461 ---- .../.history/74/20dad64f2ede00141043c3025ec60dfc | 109 + .../.history/74/60d7e68b6edd001412dce27813e7be4a | 46 + .../.history/74/80e1a2afcbdf00141dc6c962aec96210 | 97 + .../.history/75/20c0a81e70cf00141de78e4a85bb2469 | 43 - .../.history/75/d03da29126de00141043c3025ec60dfc | 105 + .../.history/76/b0ea8d2c7ccf00141de78e4a85bb2469 | 78 - .../.history/78/9098c35323cf00141c41f52413db5e31 | 461 ---- .../.history/78/f0abd173d0df00141dc6c962aec96210 | 87 + .../.history/79/f099510ebed000141b65e2fc7f94332d | 125 -- .../.history/7a/9000a4bccadf00141dc6c962aec96210 | 94 + .../.history/7a/9031349f2dde00141043c3025ec60dfc | 106 + .../.history/7a/f0dc16e6bad000141b65e2fc7f94332d | 112 - .../.history/7b/d08754d5a5ce00141801ff0972626827 | 448 ---- .../.history/7c/b0bc2130cbdf00141dc6c962aec96210 | 97 + .../.history/7c/f0f277a80ade00141043c3025ec60dfc | 186 ++ .../.history/7d/408bce2c7ecf00141de78e4a85bb2469 | 13 - .../.history/7d/80a2ccf2b6d000141b65e2fc7f94332d | 197 -- .../.history/7d/c00b3a4e14cf00141c41f52413db5e31 | 113 - .../.history/7e/0063cb09a4ce00141801ff0972626827 | 435 ---- .../.history/7e/30c7389426de00141043c3025ec60dfc | 105 + .../.history/7e/50b82d4b23cf00141c41f52413db5e31 | 461 ---- .../.history/7e/6040154608de00141043c3025ec60dfc | 184 ++ .../.history/7e/90811e76bbd000141b65e2fc7f94332d | 114 - .../.history/7e/d016443bbad000141b65e2fc7f94332d | 232 -- .../.history/7e/e0cadf43f3cf0014170de422db399e8d | 64 - .../.history/7f/00b736a77dcf00141de78e4a85bb2469 | 82 - .../.history/7f/c0c31c6bf2cf0014170de422db399e8d | 64 - .../.history/7f/e05bccf47ecf00141de78e4a85bb2469 | 78 - .../.history/8/60685a7322cf00141c41f52413db5e31 | 463 ---- .../.history/8/b04fbcf8bbd000141b65e2fc7f94332d | 236 -- .../.history/80/406867c2a5ce00141801ff0972626827 | 448 ---- .../.history/80/d0f4feb20ade00141043c3025ec60dfc | 186 ++ .../.history/80/e0c8a1d614cf00141c41f52413db5e31 | 460 ---- .../.history/80/e0f236a626de00141043c3025ec60dfc | 105 + .../.history/82/a027f35412cf00141c41f52413db5e31 | 447 ---- .../.history/83/50fcae8bd0df00141dc6c962aec96210 | 87 + .../.history/83/a05c8663b7d000141b65e2fc7f94332d | 197 -- .../.history/84/00a3c9260cde00141043c3025ec60dfc | 186 ++ .../.history/84/1025655c2bde00141043c3025ec60dfc | 466 ++++ .../.history/84/80aeb7fb26de00141043c3025ec60dfc | 105 + .../.history/84/c023ecaca5ce00141801ff0972626827 | 448 ---- .../.history/85/20a25d63bbd000141b65e2fc7f94332d | 114 - .../.history/85/20ce4e77a0ce00141801ff0972626827 | 0 .../.history/85/8013b6e1bdd000141b65e2fc7f94332d | 237 -- .../.history/85/902f5c8116cf00141c41f52413db5e31 | 32 - .../.history/86/407ff7ab81d000141a1fb02abca5ff55 | 67 - .../.history/87/0090d02f23cf00141c41f52413db5e31 | 460 ---- .../.history/87/108b25f9b6d000141b65e2fc7f94332d | 197 -- .../.history/88/902740e1bad000141b65e2fc7f94332d | 112 - .../.history/88/d084e8b4f2cf0014170de422db399e8d | 64 - .../.history/89/1013dbafccdf00141dc6c962aec96210 | 96 + .../.history/89/1058a217f5cf0014170de422db399e8d | 69 - .../.history/8a/20753b7905de00141043c3025ec60dfc | 23 + .../.history/8a/708b72abbbd000141b65e2fc7f94332d | 114 - .../.history/8c/109be73121cf00141c41f52413db5e31 | 36 - .../.history/8d/20884d44b4d000141b65e2fc7f94332d | 195 -- .../.history/8d/d01b82df0bde00141043c3025ec60dfc | 186 ++ .../.history/8d/f0467f9a2bde00141043c3025ec60dfc | 466 ++++ .../.history/8e/30bf1d4c2dde00141043c3025ec60dfc | 105 + .../.history/8f/602f81f1b9d000141b65e2fc7f94332d | 232 -- .../.history/8f/907dbd0a2ede00141043c3025ec60dfc | 109 + .../.history/9/704de242b6d000141b65e2fc7f94332d | 197 -- .../.history/90/902c91fbf5cf0014170de422db399e8d | 69 - .../.history/90/90e4273eb4d000141b65e2fc7f94332d | 195 -- .../.history/90/b0804ec7bbd000141b65e2fc7f94332d | 114 - .../.history/91/00916edebad000141b65e2fc7f94332d | 112 - .../.history/91/7094473ba5ce00141801ff0972626827 | 436 ---- .../.history/91/a05f8b8d6edd001412dce27813e7be4a | 121 ++ .../.history/92/0012daebb6d000141b65e2fc7f94332d | 197 -- .../.history/92/5027d4627dcf00141de78e4a85bb2469 | 221 -- .../.history/93/309bb5e59bd000141b65e2fc7f94332d | 44 - .../.history/93/5050fcc811cf00141c41f52413db5e31 | 30 - .../.history/94/101de9f4bad000141b65e2fc7f94332d | 112 - .../.history/94/808d7bfff2cf0014170de422db399e8d | 64 - .../.history/95/503f48a829de00141043c3025ec60dfc | 465 ++++ .../.history/96/20fefcf5f6cf0014170de422db399e8d | 66 - .../.history/96/3071082c4ae0001413f1950b5bdb0d24 | 190 ++ .../.history/97/30e2d9ce70cf00141de78e4a85bb2469 | 41 - .../.history/97/50e131a6a5ce00141801ff0972626827 | 447 ---- .../.history/98/30d2e29d08de00141043c3025ec60dfc | 184 ++ .../.history/99/904b914b0ade00141043c3025ec60dfc | 185 ++ .../.history/9a/e0a4fd13b7d000141b65e2fc7f94332d | 197 -- .../.history/9a/f09f6139c8df00141dc6c962aec96210 | 92 + .../.history/9b/b08e70da15cf00141c41f52413db5e31 | 460 ---- .../.history/9c/40075a7e83d000141a1fb02abca5ff55 | 76 - .../.history/9c/a07e323e82d000141a1fb02abca5ff55 | 67 - .../.history/9d/e0dd554e24cf00141c41f52413db5e31 | 460 ---- .../.history/9e/009246eabcd000141b65e2fc7f94332d | 244 --- .../.history/9e/9043b9010cde00141043c3025ec60dfc | 186 ++ .../.history/9f/106b3f3e7ecf00141de78e4a85bb2469 | 81 - .../.history/9f/20478b38b4d000141b65e2fc7f94332d | 195 -- .../.history/9f/20c9f6e114cf00141c41f52413db5e31 | 459 ---- .../.history/9f/60cd21f40bde00141043c3025ec60dfc | 186 ++ .../.history/a0/00a993b822cf00141c41f52413db5e31 | 460 ---- .../.history/a1/10a3c349bad000141b65e2fc7f94332d | 78 - .../.history/a1/50356899bcd000141b65e2fc7f94332d | 244 --- .../.history/a1/d03d8f064ae0001413f1950b5bdb0d24 | 190 ++ .../.history/a2/0094abb608de00141043c3025ec60dfc | 184 ++ .../.history/a2/f0aba030bdd000141b65e2fc7f94332d | 125 -- .../.history/a3/70560814bbd000141b65e2fc7f94332d | 112 - .../.history/a3/900b847d70cf00141de78e4a85bb2469 | 23 - .../.history/a3/b0489a1082d000141a1fb02abca5ff55 | 67 - .../.history/a4/200ef2fd26de00141043c3025ec60dfc | 105 + .../.history/a4/30f1557c29de00141043c3025ec60dfc | 121 ++ .../.history/a4/80a5a26aa4ce00141801ff0972626827 | 435 ---- .../.history/a4/b0b5ffe4bcd000141b65e2fc7f94332d | 246 --- .../.history/a5/609c1e85a3d000141b65e2fc7f94332d | 68 - .../.history/a6/101bc69d0bde00141043c3025ec60dfc | 185 ++ .../.history/a6/908c46b1bbd000141b65e2fc7f94332d | 114 - .../.history/a7/b0f1fd2f02de00141043c3025ec60dfc | 272 +++ .../.history/a7/e0de3db82bde00141043c3025ec60dfc | 123 ++ .../.history/a8/104e81bcbbd000141b65e2fc7f94332d | 114 - .../.history/a8/5091d7a47dcf00141de78e4a85bb2469 | 223 -- .../.history/a8/90919bf50ade00141043c3025ec60dfc | 185 ++ .../.history/a8/b0e9a94b82d000141a1fb02abca5ff55 | 67 - .../.history/a8/e02833072fde00141043c3025ec60dfc | 46 + .../.history/a9/702aada322cf00141c41f52413db5e31 | 460 ---- .../.history/a9/d09fd6372bde00141043c3025ec60dfc | 466 ++++ .../.history/a9/d0cb2f4b7ecf00141de78e4a85bb2469 | 87 - .../.history/aa/00c84d88bed000141b65e2fc7f94332d | 241 -- .../.history/aa/30b09a9679cf00141de78e4a85bb2469 | 99 - .../.history/ab/20e316d367dd001412dce27813e7be4a | 123 ++ .../.history/ab/6017c8e9b5d000141b65e2fc7f94332d | 197 -- .../.history/ab/b01141212bde00141043c3025ec60dfc | 466 ++++ .../.history/ac/50346c7da0ce00141801ff0972626827 | 12 - .../.history/ac/70b9cd197acf00141de78e4a85bb2469 | 104 - .../.history/ad/400a697183d000141a1fb02abca5ff55 | 76 - .../.history/af/901e9340bcd000141b65e2fc7f94332d | 197 -- .../.history/af/d0ba0cecf2cf0014170de422db399e8d | 64 - .../.history/af/d0ca0d9da5ce00141801ff0972626827 | 102 - .../.history/b/b04e0c6083d000141a1fb02abca5ff55 | 80 - .../.history/b/f079b2e06fcf00141de78e4a85bb2469 | 43 - .../.history/b0/e03fd2740bde00141043c3025ec60dfc | 185 ++ .../.history/b0/e0ae27cf28de00141043c3025ec60dfc | 465 ++++ .../.history/b1/00caa6936edd001412dce27813e7be4a | 465 ++++ .../.history/b2/805eed72bed000141b65e2fc7f94332d | 240 -- .../.history/b3/e08d6da9c8df00141dc6c962aec96210 | 734 +++++++ .../.history/b4/5075577ed0df00141dc6c962aec96210 | 87 + .../.history/b5/00a0532bbbd000141b65e2fc7f94332d | 112 - .../.history/b6/106fae7312cf00141c41f52413db5e31 | 94 - .../.history/b6/306a41c76fcf00141de78e4a85bb2469 | 43 - .../.history/b6/40a9d3b7c9df00141dc6c962aec96210 | 93 + .../.history/b6/606b4ad414cf00141c41f52413db5e31 | 458 ---- .../.history/b7/506e1ce570cf00141de78e4a85bb2469 | 463 ---- .../.history/b7/b04a00579cd000141b65e2fc7f94332d | 48 - .../.history/b7/b0804930bcd000141b65e2fc7f94332d | 197 -- .../.history/b7/e0125a0b06de00141043c3025ec60dfc | 465 ++++ .../.history/b7/f0e12b0e9cd000141b65e2fc7f94332d | 48 - .../.history/b8/10f70a8cbed000141b65e2fc7f94332d | 241 -- .../.history/b8/60aefdf029de00141043c3025ec60dfc | 105 + .../.history/b8/80c3ddc026de00141043c3025ec60dfc | 105 + .../.history/b8/e03e7349a6ce00141801ff0972626827 | 104 - .../.history/b8/e0b1d7d7b6d000141b65e2fc7f94332d | 197 -- .../.history/b9/307c0486d0df00141dc6c962aec96210 | 87 + .../.history/b9/309ab103b0d000141b65e2fc7f94332d | 246 --- .../.history/b9/a0900f1428de00141043c3025ec60dfc | 464 ++++ .../.history/b9/c0efc084a5ce00141801ff0972626827 | 103 - .../.history/b9/d024d91417cf00141c41f52413db5e31 | 32 - .../.history/ba/20f3e540b4d000141b65e2fc7f94332d | 195 -- .../.history/ba/30275f77cadf00141dc6c962aec96210 | 95 + .../.history/ba/c00c84b926de00141043c3025ec60dfc | 105 + .../.history/bb/8033e6be23cf00141c41f52413db5e31 | 99 - .../.history/bc/4013300e27de00141043c3025ec60dfc | 105 + .../.history/bc/60c1a1249fce00141801ff0972626827 | 71 - .../.history/bc/f0b55b69bad000141b65e2fc7f94332d | 197 -- .../.history/be/a080bd0705de00141043c3025ec60dfc | 132 ++ .../.history/be/e0c402be67dd001412dce27813e7be4a | 123 ++ .../.history/c/3035f90c0cde00141043c3025ec60dfc | 186 ++ .../.history/c/70917207bed000141b65e2fc7f94332d | 125 -- .../.history/c0/10212e1abbd000141b65e2fc7f94332d | 112 - .../.history/c0/30ee099203de00141043c3025ec60dfc | 278 +++ .../.history/c0/4032699bb8d000141b65e2fc7f94332d | 197 -- .../.history/c1/d097cbcdc9df00141dc6c962aec96210 | 84 + .../.history/c1/f01d11859ad000141b65e2fc7f94332d | 74 - .../.history/c2/50cdf66ecfdf00141dc6c962aec96210 | 124 ++ .../.history/c2/c09197b00ade00141043c3025ec60dfc | 186 ++ .../.history/c2/f0af8c117acf00141de78e4a85bb2469 | 101 - .../.history/c4/40367889a5ce00141801ff0972626827 | 446 ---- .../.history/c4/b048e39fb8d000141b65e2fc7f94332d | 197 -- .../.history/c4/b0d0b3d167dd001412dce27813e7be4a | 123 ++ .../.history/c4/d08f4aa603de00141043c3025ec60dfc | 278 +++ .../.history/c5/40e0dc622bde00141043c3025ec60dfc | 466 ++++ .../.history/c5/e0326bc32bde00141043c3025ec60dfc | 123 ++ .../.history/c6/7013ae1e85d000141a1fb02abca5ff55 | 79 - .../.history/c6/e0433f2d7dcf00141de78e4a85bb2469 | 221 -- .../.history/c7/10dc615fbed000141b65e2fc7f94332d | 240 -- .../.history/c7/70f09d1c7acf00141de78e4a85bb2469 | 102 - .../.history/c7/802694e3b6d000141b65e2fc7f94332d | 197 -- .../.history/c7/b0ea5e5c03de00141043c3025ec60dfc | 94 + .../.history/c7/d0ba6178bbd000141b65e2fc7f94332d | 114 - .../.history/c8/0088d4467ecf00141de78e4a85bb2469 | 187 -- .../.history/c9/10b07e76a4ce00141801ff0972626827 | 436 ---- .../.history/c9/f0711f27a7ce00141801ff0972626827 | 111 - .../.history/ca/90cc7cc9c8df00141dc6c962aec96210 | 744 +++++++ .../.history/ca/f037376012cf00141c41f52413db5e31 | 88 - .../.history/cb/20c24219cedf00141dc6c962aec96210 | 87 + .../.history/cb/700a357f67dd001412dce27813e7be4a | 123 ++ .../.history/cb/c061a2c326de00141043c3025ec60dfc | 105 + .../.history/cb/c0eb4d77b9d000141b65e2fc7f94332d | 233 -- .../.history/cc/10c08f90b7d000141b65e2fc7f94332d | 197 -- .../.history/cc/600bf435bdd000141b65e2fc7f94332d | 125 -- .../.history/cc/80d5ff84bed000141b65e2fc7f94332d | 241 -- .../.history/cd/b0a79825a3ce00141801ff0972626827 | 435 ---- .../.history/ce/60bee40466dd001412dce27813e7be4a | 122 ++ .../.history/ce/70b3113c6fcf00141de78e4a85bb2469 | 39 - .../.history/ce/802d6c7d12cf00141c41f52413db5e31 | 97 - .../.history/ce/e02d96277ecf00141de78e4a85bb2469 | 187 -- .../.history/d/20ce60e681d000141a1fb02abca5ff55 | 66 - .../.history/d/406be580bed000141b65e2fc7f94332d | 240 -- .../.history/d0/306fef1113cf00141c41f52413db5e31 | 235 -- .../.history/d0/905dc04d2bde00141043c3025ec60dfc | 466 ++++ .../.history/d1/406cb68309de00141043c3025ec60dfc | 184 ++ .../.history/d1/6037b5cdcedf00141dc6c962aec96210 | 87 + .../.history/d2/1003962904de00141043c3025ec60dfc | 278 +++ .../.history/d2/c001ded384d000141a1fb02abca5ff55 | 79 - .../.history/d3/40e36e70b9d000141b65e2fc7f94332d | 233 -- .../.history/d3/8065ef51d1df00141dc6c962aec96210 | 119 + .../.history/d3/80bf6f449bd000141b65e2fc7f94332d | 12 - .../.history/d3/c054e7fab5d000141b65e2fc7f94332d | 197 -- .../.history/d4/60ad6fa0bcd000141b65e2fc7f94332d | 245 --- .../.history/d4/d0970b5004de00141043c3025ec60dfc | 278 +++ .../.history/d4/d0b060aabcd000141b65e2fc7f94332d | 246 --- .../.history/d5/303797fd70cf00141de78e4a85bb2469 | 41 - .../.history/d5/a098cba6bbd000141b65e2fc7f94332d | 114 - .../.history/d6/40cea7b326de00141043c3025ec60dfc | 105 + .../.history/d6/8057ba46b6d000141b65e2fc7f94332d | 197 -- .../.history/d6/f0ef569c3fcf001411138789b9e67617 | 74 - .../.history/d7/40e71d74a5ce00141801ff0972626827 | 446 ---- .../.history/d7/f08bbf16c9df00141dc6c962aec96210 | 94 + .../.history/d8/802536bc07de00141043c3025ec60dfc | 186 ++ .../.history/d9/10f9057570cf00141de78e4a85bb2469 | 23 - .../.history/d9/20879a0e7ccf00141de78e4a85bb2469 | 78 - .../.history/da/30ea349dbbd000141b65e2fc7f94332d | 114 - .../.history/db/50bc8a77d0df00141dc6c962aec96210 | 87 + .../.history/db/80e1e997f2cf0014170de422db399e8d | 64 - .../.history/dc/80c6ef06b6d000141b65e2fc7f94332d | 197 -- .../.history/dd/7040acbf14cf00141c41f52413db5e31 | 453 ---- .../.history/de/007d82c399d000141b65e2fc7f94332d | 74 - .../.history/de/a05f4f052dde00141043c3025ec60dfc | 105 + .../.history/e/1035499a26de00141043c3025ec60dfc | 105 + .../.history/e0/307fa52624cf00141c41f52413db5e31 | 99 - .../.history/e0/4010cd0b71cf00141de78e4a85bb2469 | 41 - .../.history/e2/10498d82cbdf00141dc6c962aec96210 | 97 + .../.history/e3/20ac2f520bde00141043c3025ec60dfc | 185 ++ .../.history/e3/d0e62fdca5ce00141801ff0972626827 | 448 ---- .../.history/e4/0043edd426de00141043c3025ec60dfc | 105 + .../.history/e4/50ed324c0bde00141043c3025ec60dfc | 185 ++ .../.history/e4/a0630cfe22cf00141c41f52413db5e31 | 459 ---- .../.history/e5/c04fd795a3d000141b65e2fc7f94332d | 68 - .../.history/e6/b04cd9362ede00141043c3025ec60dfc | 109 + .../.history/e6/f095e7a126de00141043c3025ec60dfc | 105 + .../.history/e7/50b3265a70cf00141de78e4a85bb2469 | 463 ---- .../.history/e7/600fcefeb6d000141b65e2fc7f94332d | 197 -- .../.history/e8/7006558fa4ce00141801ff0972626827 | 436 ---- .../.history/e8/70d65d9f29de00141043c3025ec60dfc | 122 ++ .../.history/e8/f0038df208de00141043c3025ec60dfc | 184 ++ .../.history/e9/a0901cd92dde00141043c3025ec60dfc | 106 + .../.history/e9/d0507977c8df00141dc6c962aec96210 | 92 + .../.history/ea/d02f62a6b8d000141b65e2fc7f94332d | 197 -- .../.history/eb/104b1fe0b6d000141b65e2fc7f94332d | 197 -- .../.history/eb/20010f43a5ce00141801ff0972626827 | 102 - .../.history/ec/20d3910bbdd000141b65e2fc7f94332d | 242 --- .../.history/ec/509d9ad2cfdf00141dc6c962aec96210 | 102 + .../.history/ec/e0847d256fcf00141de78e4a85bb2469 | 37 - .../.history/ed/508104ffb9d000141b65e2fc7f94332d | 232 -- .../.history/ed/50fc2bb229de00141043c3025ec60dfc | 466 ++++ .../.history/ed/90284a44bbd000141b65e2fc7f94332d | 112 - .../.history/ee/d0e63671bcd000141b65e2fc7f94332d | 238 -- .../.history/ef/90de6b157dcf00141de78e4a85bb2469 | 221 -- .../.history/ef/d0c544f1bdd000141b65e2fc7f94332d | 237 -- .../.history/f/208abec412cf00141c41f52413db5e31 | 57 - .../.history/f0/10a6e789b7d000141b65e2fc7f94332d | 197 -- .../.history/f0/d0a08c8ed0df00141dc6c962aec96210 | 87 + .../.history/f0/f0d537e7bdd000141b65e2fc7f94332d | 237 -- .../.history/f1/70f21455bdd000141b65e2fc7f94332d | 125 -- .../.history/f2/f043f225a4ce00141801ff0972626827 | 435 ---- .../.history/f3/00fc7df4b6d000141b65e2fc7f94332d | 197 -- .../.history/f3/1004bc969bd000141b65e2fc7f94332d | 44 - .../.history/f3/20259783bbd000141b65e2fc7f94332d | 114 - .../.history/f3/20c13d5102de00141043c3025ec60dfc | 272 +++ .../.history/f3/e09bcee7b6d000141b65e2fc7f94332d | 197 -- .../.history/f4/40b7090927de00141043c3025ec60dfc | 105 + .../.history/f5/20a6758b0ade00141043c3025ec60dfc | 185 ++ .../.history/f5/9037e8d8f2cf0014170de422db399e8d | 64 - .../.history/f5/c04a3dbcbcd000141b65e2fc7f94332d | 246 --- .../.history/f7/50e88c160ade00141043c3025ec60dfc | 186 ++ .../.history/f7/80d09401b7d000141b65e2fc7f94332d | 197 -- .../.history/f8/10660ab09ad000141b65e2fc7f94332d | 74 - .../.history/f8/9082ae46b4d000141b65e2fc7f94332d | 195 -- .../.history/f8/b0b6ee38c4df00141dc6c962aec96210 | 190 ++ .../.history/f8/f00bc4107ecf00141de78e4a85bb2469 | 81 - .../.history/f9/10304e6cbcd000141b65e2fc7f94332d | 236 -- .../.history/f9/30327f097dcf00141de78e4a85bb2469 | 222 -- .../.history/f9/80f0e254bed000141b65e2fc7f94332d | 237 -- .../.history/fa/40cc55896edd001412dce27813e7be4a | 43 + .../.history/fa/602b84f79bd000141b65e2fc7f94332d | 44 - .../.history/fb/80bcb0aecfdf00141dc6c962aec96210 | 102 + .../.history/fb/9020325670cf00141de78e4a85bb2469 | 459 ---- .../.history/fb/906294ac70cf00141de78e4a85bb2469 | 42 - .../.history/fb/a00c68532dde00141043c3025ec60dfc | 106 + .../.history/fd/00facaebbad000141b65e2fc7f94332d | 112 - .../.history/fd/a0e56af6bbd000141b65e2fc7f94332d | 235 -- .../.history/fe/60f238f802de00141043c3025ec60dfc | 276 +++ .../.history/ff/40a89923f4cf0014170de422db399e8d | 62 - .../.history/ff/a0f1a1f6afd000141b65e2fc7f94332d | 244 --- .../.markers.snap | Bin 16 -> 0 bytes .../.syncinfo.snap | Bin 16 -> 0 bytes .../.indexes/e4/b9/22/7d/96/13/6a/history.index | Bin 0 -> 99 bytes .../.indexes/e4/b9/22/7d/96/13/history.index | Bin 121 -> 101 bytes .../.indexes/e4/b9/22/7d/96/2/history.index | Bin 218 -> 116 bytes .../.indexes/e4/b9/22/7d/96/29/history.index | Bin 0 -> 1032 bytes .../.indexes/e4/b9/22/7d/96/2e/history.index | Bin 153 -> 108 bytes .../.indexes/e4/b9/22/7d/96/35/history.index | Bin 1478 -> 0 bytes .../.indexes/e4/b9/22/7d/96/3f/history.index | Bin 0 -> 289 bytes .../.indexes/e4/b9/22/7d/96/78/history.index | Bin 0 -> 346 bytes .../.indexes/e4/b9/22/7d/96/7f/history.index | Bin 3481 -> 0 bytes .../.indexes/e4/b9/22/7d/96/8d/history.index | Bin 93 -> 121 bytes .../.indexes/e4/b9/22/7d/96/df/history.index | Bin 1411 -> 0 bytes .../.indexes/e4/b9/22/7d/96/e7/history.index | Bin 1708 -> 2068 bytes .../.indexes/e4/b9/22/7d/96/ef/history.index | Bin 0 -> 443 bytes .../.indexes/e4/b9/22/7d/96/fe/history.index | Bin 1896 -> 1177 bytes .../.indexes/e4/b9/22/7d/96/history.index | Bin 295 -> 140 bytes .../.projects/Minecraft/.markers | Bin 1034 -> 1034 bytes .../.projects/Minecraft/.markers.snap | Bin 16 -> 0 bytes .../.projects/Minecraft/.syncinfo.snap | Bin 16 -> 0 bytes .../Minecraft/org.eclipse.jdt.core/state.dat | Bin 102544 -> 108414 bytes .../.root/.indexes/properties.index | Bin 151 -> 151 bytes .../org.eclipse.core.resources/.root/.markers.snap | Bin 16 -> 0 bytes .../org.eclipse.core.resources/.root/36.tree | Bin 653413 -> 0 bytes .../org.eclipse.core.resources/.root/50.tree | Bin 0 -> 792182 bytes .../.safetable/org.eclipse.core.resources | Bin 1552 -> 1037 bytes .../.plugins/org.eclipse.core.resources/36.snap | Bin 19083 -> 0 bytes .../.settings/org.eclipse.jdt.ui.prefs | 2 +- .../.settings/org.eclipse.ui.ide.prefs | 2 +- .../org.eclipse.debug.ui/dialog_settings.xml | 2 +- .../launchConfigurationHistory.xml | 4 +- .../org.eclipse.e4.workbench/workbench.xmi | 201 +- .../.plugins/org.eclipse.jdt.core/286606776.index | Bin 98109 -> 103876 bytes .../org.eclipse.jdt.core/savedIndexNames.txt | 4 +- .../QualifiedTypeNameHistory.xml | 48 +- .../Minecraft/2015/3/13/refactorings.history | 3 + .../Minecraft/2015/3/13/refactorings.index | 24 + .../org.eclipse.team.ui/syncParticipants.xml | 2 + .../dialog_settings.xml | 38 +- .../org.eclipse.ui.workbench/dialog_settings.xml | 4 +- eclipse/.metadata/version.ini | 2 +- 619 files changed, 36298 insertions(+), 63715 deletions(-) delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/00f44bf8f2cf0014170de422db399e8d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/60ca70f3b9d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/805d1a320cde00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/90d037febbd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/c03acc5982d000141a1fb02abca5ff55 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1/f0fa8fa8cfdf00141dc6c962aec96210 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/202fc46ed0df00141dc6c962aec96210 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/803b287d0cde00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/d02d52592dde00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/12/50aa0d289bd000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/12/e0e3109acfdf00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/13/908f5c3bb4d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/13/a08d42f22dde00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/607a0b0a28de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/70a157f022cf00141c41f52413db5e31 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/a002d0b6cedf00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/a058ee18bcd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/b0d74dd670cf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/17/3014ba2224cf00141c41f52413db5e31 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/17/f0ded3dbcedf00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/18/70793b297ecf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/18/f0b8342df3cf0014170de422db399e8d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/40b7127a9cd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1a/70a655ecbdd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1b/208e063bf5cf0014170de422db399e8d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1b/807d1568bed000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1b/f07260f599d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1c/501314b626de00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1c/d012a06acedf00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/10a8250bf2cf0014170de422db399e8d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/304ae31aa0ce00141801ff0972626827 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1e/00b1e982a0ce00141801ff0972626827 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1e/e0daccca6fcf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/20cffe1816cf00141c41f52413db5e31 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/4094f8e609de00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/003d2b0505de00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/20405a71ccdf00141dc6c962aec96210 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/4002026028de00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/609f909029de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/804b704ea7ce00141801ff0972626827 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/a0d5c9a72bde00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/e064279b24cf00141c41f52413db5e31 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/20/5081dc2706de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/20/709a7da620cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/20/80c96a3f6fcf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/20/906f9d59f3cf0014170de422db399e8d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/21/30a1626704de00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/21/801465eccbdf00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/21/90210400bbd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/22/400e338dbcd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/22/50c220fcb9d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/22/c083e9b42bde00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/00c5f4c902de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/408dbb6524cf00141c41f52413db5e31 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/7059c98a6edd001412dce27813e7be4a delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/24/e06abfb6f6cf0014170de422db399e8d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/10ad6571bed000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/6035720f6fcf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/60b18a49bdd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/60f0dd6d12cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/f08a3fedf1cf0014170de422db399e8d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/26/40b2f4a3b8d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/26/801b0ce922cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/26/905604776fcf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/27/10f40556bbd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/27/60dda1c0bcd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/27/a01e32b5bbd000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/30de043304de00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/40247e5d2dde00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/5054a9ea70cf00141de78e4a85bb2469 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/9027920627de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/90616b3e85d000141a1fb02abca5ff55 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/b0c118102dde00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/6015a33bd1df00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/b02c9da3a5ce00141801ff0972626827 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/c011836acadf00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2b/2069bbfabdd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2b/a09c5791f6cf0014170de422db399e8d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2c/0075f9bc9fd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2c/702e06909bd000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2c/809d0e09cddf00141dc6c962aec96210 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2c/b0ae616ecedf00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2c/b0fd61c916cf00141c41f52413db5e31 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2d/50f61c022bde00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2d/90ac8e2b9fce00141801ff0972626827 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2f/3016ca8fa3d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2f/90f98826b0d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3/20e2ed160cde00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3/902846c39fd000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/30/1096a2fac8df00141dc6c962aec96210 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/31/201793702dde00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/31/4099cacb16cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/31/7026f2daf4cf0014170de422db399e8d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/31/90e1eeeff3cf0014170de422db399e8d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/31/f02810b507de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/009ecb1ebbd000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/609ee512cfdf00141dc6c962aec96210 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/33/808ebec629de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/34/10340d2ef2cf0014170de422db399e8d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/34/10925bf3cadf00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/35/00ec9292a7ce00141801ff0972626827 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/35/c0e606a470cf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/36/9032f899b7d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/36/a0809e1223cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/10568ea1b7d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/4027a5e129de00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/f0613fc4cfdf00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/38/a0c4fa6984d000141a1fb02abca5ff55 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/38/f0c649af08de00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/39/60be6d7a67dd001412dce27813e7be4a delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/002a7b0fb7d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/10dc7459bbd000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/6000f6390ade00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/606c08157ecf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/7064faac7dcf00141de78e4a85bb2469 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/900cd0d2ccdf00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/10890341bbd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/3024e21485d000141a1fb02abca5ff55 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/503ff62fb6d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/a06f5eb026de00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3c/20d6830327de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3c/60160ac99ad000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3c/90a539afbbd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3d/0091dffeb5d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3d/30f66b0413cf00141c41f52413db5e31 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3d/801c40ebcbdf00141dc6c962aec96210 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/309bbd4008de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/5019b6d220cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/7005297f22cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/808884ea13cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/50b62efab9d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/6048b993bcd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/c022d38cf2cf0014170de422db399e8d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/e0ed63d312cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4/003ee58eafd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4/c02871fbb6d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/40/003a974204de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/40/b0889c1bbcd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/41/c080ae01bcd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/42/20200c94b8d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/43/70f7cff5b6d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/44/007d9fbe0ade00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/44/c04764282ede00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/44/d0a17b8f13cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/90a975eca4ce00141801ff0972626827 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/f045d0fb2ede00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/46/7051d7cf22cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/48/20293dcd23cf00141c41f52413db5e31 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/48/e03e86c12ede00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/48/f0362027f4cf0014170de422db399e8d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/2066f1c9bbd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/707c7127bed000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4a/4009975e82d000141a1fb02abca5ff55 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4a/6016724bbad000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4a/9089738c21cf00141c41f52413db5e31 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4a/a015113e04de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/20a0a61c84d000141a1fb02abca5ff55 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/20bea20c21cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/405c7f377ecf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/90de45a1bbd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/a055ddd2bbd000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/b07b909e26de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/d0c27ea5f6cf0014170de422db399e8d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/1031dd2dbbd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/70c9f176f2cf0014170de422db399e8d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4d/f08f115612cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4e/b0576841f2cf0014170de422db399e8d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4f/007bc83ab6d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4f/402d4daebcd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4f/e0d9514683d000141a1fb02abca5ff55 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5/f00c439cb7d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/10b548dabad000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/70986997b7d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/52/c0326ecba5ce00141801ff0972626827 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/52/e06a0851bdd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/53/90cafa5d14cf00141c41f52413db5e31 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/53/e0ac941eccdf00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/8048f9edb6d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/a09b425fbbd000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/55/509f12b8cfdf00141dc6c962aec96210 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/55/70eb2ca3ccdf00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/56/90504c0bbbd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/56/a0087dd116cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/20ddfa7621cf00141c41f52413db5e31 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/90a153b367dd001412dce27813e7be4a delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/a04f0c50a4ce00141801ff0972626827 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/b095661a2ede00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/e0aa469384d000141a1fb02abca5ff55 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/58/d07c98730ade00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/1044992a23cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/1048515cbbd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/b085ddbd9ad000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/c078df6404de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/c07baaa5bcd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/e0e84e2dbdd000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/40a922fbcddf00141dc6c962aec96210 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/5029f1a804de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/80f31216bbd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/b0474f9184d000141a1fb02abca5ff55 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/b0a71b6116cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/10e245fff3cf0014170de422db399e8d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/407a4588cadf00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/d08f32069cd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/f0e98566a7ce00141801ff0972626827 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5d/00fa2de0a6ce00141801ff0972626827 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5e/f0abea277dcf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/30d8062da0ce00141801ff0972626827 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/30e8b2dea5ce00141801ff0972626827 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/30f9e59108de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/50b15c9812cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/60bc25dabdd000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6/40b159950ade00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6/d0a52e0212cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/60/601a6034bcd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/60/c0d85da8b8d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/61/8023076d28de00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/61/d0d1c7060cde00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/2069867dbbd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/30a210a5bbd000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/507f105a2ede00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/c01a61492ede00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/f0beebb39ad000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/204cfa240ade00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/60dd45d1a5ce00141801ff0972626827 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/a0890abe02de00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/d03963b82ede00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/e00f48f3bdd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/e0b3878d7dcf00141de78e4a85bb2469 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/009346bd26de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/50a406e982d000141a1fb02abca5ff55 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/905e928db7d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/c06ac17c09de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/65/603844c615cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/65/80ef4046bbd000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/65/90070fc8cfdf00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/65/9039e7ea21cf00141c41f52413db5e31 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/30591b0b27de00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/702cdaf0ccdf00141dc6c962aec96210 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/80f33350c9df00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/b0813d41f3cf0014170de422db399e8d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/67/e0b3c0d50bde00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/68/00b782eca6ce00141801ff0972626827 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/68/9054945503de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/68/f05ddeeb99d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/30a1d335b4d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/4034bfb970cf00141de78e4a85bb2469 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/80c87259cadf00141dc6c962aec96210 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/f0fb303b0bde00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6a/00f1323d0cde00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6b/b02224c467dd001412dce27813e7be4a delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6b/c0058039a3ce00141801ff0972626827 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6d/102be67fbbd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6d/20760f8dbbd000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6e/a046bebfcfdf00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6e/d012947f9fce00141801ff0972626827 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6e/f0a4797968dd001412dce27813e7be4a delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6f/b08cd803bcd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6f/f0b063e3a3ce00141801ff0972626827 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/105eef10f4cf0014170de422db399e8d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/80707ccf26de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/90e15befbdd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/d09c58ed23cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/408fefd316cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/5022fbd5b9d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/e09f38179cd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/71/60317a00bad000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/72/00e8ece9b6d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/72/a00659a981d000141a1fb02abca5ff55 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/72/b01f1983b4d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/74/10c2166623cf00141c41f52413db5e31 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/74/20dad64f2ede00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/74/60d7e68b6edd001412dce27813e7be4a create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/74/80e1a2afcbdf00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/75/20c0a81e70cf00141de78e4a85bb2469 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/75/d03da29126de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/76/b0ea8d2c7ccf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/78/9098c35323cf00141c41f52413db5e31 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/78/f0abd173d0df00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/79/f099510ebed000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/9000a4bccadf00141dc6c962aec96210 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/9031349f2dde00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/f0dc16e6bad000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7b/d08754d5a5ce00141801ff0972626827 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7c/b0bc2130cbdf00141dc6c962aec96210 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7c/f0f277a80ade00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7d/408bce2c7ecf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7d/80a2ccf2b6d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7d/c00b3a4e14cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/0063cb09a4ce00141801ff0972626827 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/30c7389426de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/50b82d4b23cf00141c41f52413db5e31 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/6040154608de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/90811e76bbd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/d016443bbad000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/e0cadf43f3cf0014170de422db399e8d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7f/00b736a77dcf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7f/c0c31c6bf2cf0014170de422db399e8d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7f/e05bccf47ecf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8/60685a7322cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8/b04fbcf8bbd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/406867c2a5ce00141801ff0972626827 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/d0f4feb20ade00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/e0c8a1d614cf00141c41f52413db5e31 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/e0f236a626de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/82/a027f35412cf00141c41f52413db5e31 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/83/50fcae8bd0df00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/83/a05c8663b7d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/00a3c9260cde00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/1025655c2bde00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/80aeb7fb26de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/c023ecaca5ce00141801ff0972626827 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/85/20a25d63bbd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/85/20ce4e77a0ce00141801ff0972626827 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/85/8013b6e1bdd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/85/902f5c8116cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/86/407ff7ab81d000141a1fb02abca5ff55 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/87/0090d02f23cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/87/108b25f9b6d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/88/902740e1bad000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/88/d084e8b4f2cf0014170de422db399e8d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/1013dbafccdf00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/1058a217f5cf0014170de422db399e8d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8a/20753b7905de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8a/708b72abbbd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8c/109be73121cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/20884d44b4d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/d01b82df0bde00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/f0467f9a2bde00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8e/30bf1d4c2dde00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8f/602f81f1b9d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8f/907dbd0a2ede00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9/704de242b6d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/902c91fbf5cf0014170de422db399e8d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/90e4273eb4d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/b0804ec7bbd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/91/00916edebad000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/91/7094473ba5ce00141801ff0972626827 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/91/a05f8b8d6edd001412dce27813e7be4a delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/92/0012daebb6d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/92/5027d4627dcf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/93/309bb5e59bd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/93/5050fcc811cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/94/101de9f4bad000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/94/808d7bfff2cf0014170de422db399e8d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/95/503f48a829de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/96/20fefcf5f6cf0014170de422db399e8d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/96/3071082c4ae0001413f1950b5bdb0d24 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/97/30e2d9ce70cf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/97/50e131a6a5ce00141801ff0972626827 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/98/30d2e29d08de00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/99/904b914b0ade00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9a/e0a4fd13b7d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9a/f09f6139c8df00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9b/b08e70da15cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9c/40075a7e83d000141a1fb02abca5ff55 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9c/a07e323e82d000141a1fb02abca5ff55 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9d/e0dd554e24cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9e/009246eabcd000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9e/9043b9010cde00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/106b3f3e7ecf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/20478b38b4d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/20c9f6e114cf00141c41f52413db5e31 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/60cd21f40bde00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a0/00a993b822cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a1/10a3c349bad000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a1/50356899bcd000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a1/d03d8f064ae0001413f1950b5bdb0d24 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a2/0094abb608de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a2/f0aba030bdd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/70560814bbd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/900b847d70cf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/b0489a1082d000141a1fb02abca5ff55 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a4/200ef2fd26de00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a4/30f1557c29de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a4/80a5a26aa4ce00141801ff0972626827 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a4/b0b5ffe4bcd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a5/609c1e85a3d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a6/101bc69d0bde00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a6/908c46b1bbd000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a7/b0f1fd2f02de00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a7/e0de3db82bde00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/104e81bcbbd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/5091d7a47dcf00141de78e4a85bb2469 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/90919bf50ade00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/b0e9a94b82d000141a1fb02abca5ff55 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/e02833072fde00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a9/702aada322cf00141c41f52413db5e31 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a9/d09fd6372bde00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a9/d0cb2f4b7ecf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/00c84d88bed000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/30b09a9679cf00141de78e4a85bb2469 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/20e316d367dd001412dce27813e7be4a delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/6017c8e9b5d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/b01141212bde00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/50346c7da0ce00141801ff0972626827 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/70b9cd197acf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ad/400a697183d000141a1fb02abca5ff55 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/af/901e9340bcd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/af/d0ba0cecf2cf0014170de422db399e8d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/af/d0ca0d9da5ce00141801ff0972626827 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b/b04e0c6083d000141a1fb02abca5ff55 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b/f079b2e06fcf00141de78e4a85bb2469 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b0/e03fd2740bde00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b0/e0ae27cf28de00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b1/00caa6936edd001412dce27813e7be4a delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b2/805eed72bed000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b3/e08d6da9c8df00141dc6c962aec96210 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b4/5075577ed0df00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b5/00a0532bbbd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/106fae7312cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/306a41c76fcf00141de78e4a85bb2469 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/40a9d3b7c9df00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/606b4ad414cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/506e1ce570cf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/b04a00579cd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/b0804930bcd000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/e0125a0b06de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/f0e12b0e9cd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/10f70a8cbed000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/60aefdf029de00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/80c3ddc026de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/e03e7349a6ce00141801ff0972626827 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/e0b1d7d7b6d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/307c0486d0df00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/309ab103b0d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/a0900f1428de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/c0efc084a5ce00141801ff0972626827 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/d024d91417cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/20f3e540b4d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/30275f77cadf00141dc6c962aec96210 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/c00c84b926de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bb/8033e6be23cf00141c41f52413db5e31 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bc/4013300e27de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bc/60c1a1249fce00141801ff0972626827 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bc/f0b55b69bad000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/be/a080bd0705de00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/be/e0c402be67dd001412dce27813e7be4a create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c/3035f90c0cde00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c/70917207bed000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c0/10212e1abbd000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c0/30ee099203de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c0/4032699bb8d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/d097cbcdc9df00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/f01d11859ad000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/50cdf66ecfdf00141dc6c962aec96210 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/c09197b00ade00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/f0af8c117acf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c4/40367889a5ce00141801ff0972626827 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c4/b048e39fb8d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c4/b0d0b3d167dd001412dce27813e7be4a create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c4/d08f4aa603de00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c5/40e0dc622bde00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c5/e0326bc32bde00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/7013ae1e85d000141a1fb02abca5ff55 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/e0433f2d7dcf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c7/10dc615fbed000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c7/70f09d1c7acf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c7/802694e3b6d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c7/b0ea5e5c03de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c7/d0ba6178bbd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c8/0088d4467ecf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c9/10b07e76a4ce00141801ff0972626827 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c9/f0711f27a7ce00141801ff0972626827 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ca/90cc7cc9c8df00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ca/f037376012cf00141c41f52413db5e31 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/20c24219cedf00141dc6c962aec96210 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/700a357f67dd001412dce27813e7be4a create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/c061a2c326de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/c0eb4d77b9d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/10c08f90b7d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/600bf435bdd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/80d5ff84bed000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cd/b0a79825a3ce00141801ff0972626827 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ce/60bee40466dd001412dce27813e7be4a delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ce/70b3113c6fcf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ce/802d6c7d12cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ce/e02d96277ecf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d/20ce60e681d000141a1fb02abca5ff55 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d/406be580bed000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d0/306fef1113cf00141c41f52413db5e31 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d0/905dc04d2bde00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d1/406cb68309de00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d1/6037b5cdcedf00141dc6c962aec96210 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d2/1003962904de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d2/c001ded384d000141a1fb02abca5ff55 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/40e36e70b9d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/8065ef51d1df00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/80bf6f449bd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/c054e7fab5d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/60ad6fa0bcd000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/d0970b5004de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/d0b060aabcd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d5/303797fd70cf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d5/a098cba6bbd000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d6/40cea7b326de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d6/8057ba46b6d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d6/f0ef569c3fcf001411138789b9e67617 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/40e71d74a5ce00141801ff0972626827 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/f08bbf16c9df00141dc6c962aec96210 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d8/802536bc07de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d9/10f9057570cf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d9/20879a0e7ccf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/da/30ea349dbbd000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/50bc8a77d0df00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/80e1e997f2cf0014170de422db399e8d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/80c6ef06b6d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dd/7040acbf14cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/de/007d82c399d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/de/a05f4f052dde00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e/1035499a26de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e0/307fa52624cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e0/4010cd0b71cf00141de78e4a85bb2469 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e2/10498d82cbdf00141dc6c962aec96210 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e3/20ac2f520bde00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e3/d0e62fdca5ce00141801ff0972626827 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/0043edd426de00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/50ed324c0bde00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/a0630cfe22cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e5/c04fd795a3d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e6/b04cd9362ede00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e6/f095e7a126de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e7/50b3265a70cf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e7/600fcefeb6d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/7006558fa4ce00141801ff0972626827 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/70d65d9f29de00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/f0038df208de00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e9/a0901cd92dde00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e9/d0507977c8df00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ea/d02f62a6b8d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/eb/104b1fe0b6d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/eb/20010f43a5ce00141801ff0972626827 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ec/20d3910bbdd000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ec/509d9ad2cfdf00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ec/e0847d256fcf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/508104ffb9d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/50fc2bb229de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/90284a44bbd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ee/d0e63671bcd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ef/90de6b157dcf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ef/d0c544f1bdd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f/208abec412cf00141c41f52413db5e31 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/10a6e789b7d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/d0a08c8ed0df00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/f0d537e7bdd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/70f21455bdd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f2/f043f225a4ce00141801ff0972626827 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/00fc7df4b6d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/1004bc969bd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/20259783bbd000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/20c13d5102de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/e09bcee7b6d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f4/40b7090927de00141043c3025ec60dfc create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f5/20a6758b0ade00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f5/9037e8d8f2cf0014170de422db399e8d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f5/c04a3dbcbcd000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f7/50e88c160ade00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f7/80d09401b7d000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/10660ab09ad000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/9082ae46b4d000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/b0b6ee38c4df00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/f00bc4107ecf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f9/10304e6cbcd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f9/30327f097dcf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f9/80f0e254bed000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fa/40cc55896edd001412dce27813e7be4a delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fa/602b84f79bd000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/80bcb0aecfdf00141dc6c962aec96210 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/9020325670cf00141de78e4a85bb2469 delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/906294ac70cf00141de78e4a85bb2469 create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/a00c68532dde00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fd/00facaebbad000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fd/a0e56af6bbd000141b65e2fc7f94332d create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fe/60f238f802de00141043c3025ec60dfc delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ff/40a89923f4cf0014170de422db399e8d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ff/a0f1a1f6afd000141b65e2fc7f94332d delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.jdt.core.external.folders/.markers.snap delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.jdt.core.external.folders/.syncinfo.snap create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/13/6a/history.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/29/history.index delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/35/history.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/3f/history.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/78/history.index delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/7f/history.index delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/df/history.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/ef/history.index delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.markers.snap delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.syncinfo.snap delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.markers.snap delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/36.tree create mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/50.tree delete mode 100644 eclipse/.metadata/.plugins/org.eclipse.core.resources/36.snap create mode 100644 eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/Minecraft/2015/3/13/refactorings.history create mode 100644 eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/Minecraft/2015/3/13/refactorings.index create mode 100644 eclipse/.metadata/.plugins/org.eclipse.team.ui/syncParticipants.xml (limited to 'eclipse/.metadata') diff --git a/eclipse/.metadata/.log b/eclipse/.metadata/.log index 6307fef..cba962e 100644 --- a/eclipse/.metadata/.log +++ b/eclipse/.metadata/.log @@ -3676,3 +3676,2302 @@ org.eclipse.recommenders.utils.Logs$LogTraceException at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) at org.eclipse.equinox.launcher.Main.run(Main.java:1465) at org.eclipse.equinox.launcher.Main.main(Main.java:1438) +!SESSION 2015-03-24 20:24:38.742 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_31 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.java.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product + +!ENTRY org.eclipse.core.resources 2 10035 2015-03-24 20:24:42.600 +!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes. + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-03-24 20:24:44.309 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-03-24 20:25:10.481 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-03-24 20:25:10.556 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Sorin'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. +!SESSION 2015-03-25 11:46:02.468 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_31 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.java.product +Command-line arguments: -data H:\Jewelrycraft\1.7.10\eclipse -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product + +!ENTRY org.eclipse.core.resources 2 10035 2015-03-25 11:46:05.025 +!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes. + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-03-25 11:46:06.119 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-03-25 11:46:23.724 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-03-25 11:46:23.789 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Sorin'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-03-25 13:03:53.440 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.core.resources 4 566 2015-03-25 15:23:40.766 +!MESSAGE Workspace was not properly initialized or has already shutdown. + +!ENTRY org.eclipse.core.jobs 4 1 2015-03-25 15:23:40.778 +!MESSAGE Worker thread ended job: Refreshing workspace(10), but still holds rule: ThreadJob(Refreshing workspace(10),[F/Minecraft/build/tmp/recompSrc/net/minecraft]) +!SESSION 2015-03-25 16:55:27.763 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_31 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.java.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-03-25 16:55:31.175 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-03-25 16:55:42.374 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-03-25 16:55:42.390 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Sorin'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.core.resources 4 566 2015-03-25 16:56:15.391 +!MESSAGE Workspace was not properly initialized or has already shutdown. +!SESSION 2015-03-26 18:18:12.632 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_31 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.java.product +Command-line arguments: -data H:\Jewelrycraft\1.7.10\eclipse -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-03-26 18:18:16.801 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-03-26 18:18:30.049 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-03-26 18:18:30.169 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Sorin'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.jdt.ui 4 10001 2015-03-26 19:31:38.635 +!MESSAGE Internal Error +!STACK 1 +Java Model Exception: Java Model Status [earrings [in BraceletRender [in [Working copy] BraceletRender.java [in darkknight.jewelrycraft.tileentity.renders [in src/main/java [in Minecraft]]]]] does not exist] + at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(JavaElement.java:534) + at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:568) + at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:294) + at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:280) + at org.eclipse.jdt.internal.core.SourceField.getTypeSignature(SourceField.java:135) + at org.eclipse.jdt.internal.ui.javaeditor.JavaElementHyperlinkDeclaredTypeDetector.getTypeSignature(JavaElementHyperlinkDeclaredTypeDetector.java:76) + at org.eclipse.jdt.internal.ui.javaeditor.JavaElementHyperlinkDeclaredTypeDetector.addHyperlinks(JavaElementHyperlinkDeclaredTypeDetector.java:46) + at org.eclipse.jdt.internal.ui.javaeditor.JavaElementHyperlinkDetector.detectHyperlinks(JavaElementHyperlinkDetector.java:114) + at org.eclipse.ui.texteditor.HyperlinkDetectorRegistry$HyperlinkDetectorDelegate.detectHyperlinks(HyperlinkDetectorRegistry.java:80) + at org.eclipse.jface.text.hyperlink.HyperlinkManager.findHyperlinks(HyperlinkManager.java:289) + at org.eclipse.jface.text.hyperlink.HyperlinkManager.findHyperlinks(HyperlinkManager.java:261) + at org.eclipse.jface.text.hyperlink.HyperlinkManager.mouseMove(HyperlinkManager.java:469) + at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:212) + at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) + at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353) + at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061) + at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) +!SUBENTRY 1 org.eclipse.jdt.core 4 969 2015-03-26 19:31:38.638 +!MESSAGE earrings [in BraceletRender [in [Working copy] BraceletRender.java [in darkknight.jewelrycraft.tileentity.renders [in src/main/java [in Minecraft]]]]] does not exist + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-03-26 19:46:16.923 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-03-26 20:22:49.416 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-03-26 20:55:40.681 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-03-26 21:17:11.203 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-03-26 21:32:30.902 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-03-26 22:02:08.670 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-03-26 22:03:19.562 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-03-26 22:27:29.131 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-03-26 22:28:46.789 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-03-26 22:29:58.331 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-03-26 22:37:13.242 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-03-26 22:37:40.492 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-03-26 22:38:32.474 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-03-26 22:38:51.017 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-03-26 22:44:40.759 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-03-27 02:45:12.446 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-03-27 02:47:57.791 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-03-27 02:49:09.630 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.core.resources 4 566 2015-03-27 02:49:27.136 +!MESSAGE Workspace was not properly initialized or has already shutdown. + +!ENTRY org.eclipse.core.resources 4 566 2015-03-27 02:49:27.172 +!MESSAGE Workspace was not properly initialized or has already shutdown. + +!ENTRY org.eclipse.core.jobs 4 1 2015-03-27 02:49:27.193 +!MESSAGE Worker thread ended job: Refreshing workspace(10), but still holds rule: ThreadJob(Refreshing workspace(10),[F/Minecraft/build/tmp/recompCls/net/minecraft/network/login]) +!SESSION 2015-03-27 12:42:38.561 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_31 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.java.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-03-27 12:42:42.848 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-03-27 12:43:02.388 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-03-27 12:43:02.414 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Sorin'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.core.resources 4 566 2015-03-27 16:19:26.262 +!MESSAGE Workspace was not properly initialized or has already shutdown. + +!ENTRY org.eclipse.core.jobs 4 1 2015-03-27 16:19:26.314 +!MESSAGE Worker thread ended job: Refreshing workspace(10), but still holds rule: ThreadJob(Refreshing workspace(10),[F/Minecraft/build/tmp/recompSrc/net/minecraft]) +!SESSION 2015-03-27 22:00:34.944 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_31 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.java.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-03-27 22:00:40.053 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-03-27 22:00:57.283 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-03-27 22:00:57.304 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Sorin'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-03-28 01:45:42.696 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-03-28 01:46:38.820 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) +!SESSION 2015-03-28 13:41:23.892 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_31 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.java.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-03-28 13:41:31.061 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-03-28 13:41:53.164 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-03-28 13:41:53.168 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Sorin'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.core.resources 4 566 2015-03-28 13:42:11.498 +!MESSAGE Workspace was not properly initialized or has already shutdown. + +!ENTRY org.eclipse.core.jobs 4 1 2015-03-28 13:42:11.508 +!MESSAGE Worker thread ended job: Refreshing workspace(10), but still holds rule: ThreadJob(Refreshing workspace(10),[F/Minecraft/build/tmp/recompSrc/net/minecraft]) +!SESSION 2015-03-28 21:14:30.620 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_31 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.java.product +Command-line arguments: -data H:\Jewelrycraft\1.7.10\eclipse -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-03-28 21:14:33.329 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-03-28 21:14:49.280 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-03-28 21:14:49.330 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Sorin'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. +!SESSION 2015-04-07 23:30:18.315 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_31 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.java.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-04-07 23:35:28.297 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-04-07 23:35:52.630 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-04-07 23:35:52.635 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Sorin'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.jdt.debug 4 125 2015-04-07 23:50:51.243 +!MESSAGE Internal error logged from JDI Debug: +!STACK 0 +org.eclipse.jdi.TimeoutException: Timeout occurred while waiting for packet 1741. + at org.eclipse.jdi.internal.connect.PacketReceiveManager.getReply(PacketReceiveManager.java:186) + at org.eclipse.jdi.internal.connect.PacketReceiveManager.getReply(PacketReceiveManager.java:197) + at org.eclipse.jdi.internal.MirrorImpl.requestVM(MirrorImpl.java:191) + at org.eclipse.jdi.internal.MirrorImpl.requestVM(MirrorImpl.java:226) + at org.eclipse.jdi.internal.VirtualMachineImpl.classesBySignature(VirtualMachineImpl.java:638) + at org.eclipse.jdi.internal.VirtualMachineImpl.classesByName(VirtualMachineImpl.java:667) + at org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget.jdiClassesByName(JDIDebugTarget.java:1602) + at org.eclipse.jdt.internal.debug.core.hcr.JavaHotCodeReplaceManager.filterUnloadedTypes(JavaHotCodeReplaceManager.java:349) + at org.eclipse.jdt.internal.debug.core.hcr.JavaHotCodeReplaceManager.doHotCodeReplace(JavaHotCodeReplaceManager.java:460) + at org.eclipse.jdt.internal.debug.core.hcr.JavaHotCodeReplaceManager.access$0(JavaHotCodeReplaceManager.java:443) + at org.eclipse.jdt.internal.debug.core.hcr.JavaHotCodeReplaceManager$1.run(JavaHotCodeReplaceManager.java:315) + at org.eclipse.debug.core.DebugPlugin$AsynchRunner.run(DebugPlugin.java:1106) + at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) + at org.eclipse.debug.core.DebugPlugin$AsynchRunner.async(DebugPlugin.java:1087) + at org.eclipse.debug.core.DebugPlugin$EventDispatchJob.run(DebugPlugin.java:429) + at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) + +!ENTRY org.eclipse.core.resources 4 566 2015-04-08 00:41:25.493 +!MESSAGE Workspace was not properly initialized or has already shutdown. + +!ENTRY org.eclipse.core.jobs 4 1 2015-04-08 00:41:25.587 +!MESSAGE Worker thread ended job: Refreshing workspace(10), but still holds rule: ThreadJob(Refreshing workspace(10),[F/Minecraft/build/tmp/recompSrc/net/minecraftforge]) + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-04-08 17:51:08.738 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) +!SESSION 2015-04-08 18:09:19.591 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_31 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.java.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-04-08 18:09:31.471 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-04-08 18:09:43.534 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-04-08 18:09:43.553 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Sorin'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-04-08 18:24:21.604 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.core.resources 4 566 2015-04-09 00:49:50.082 +!MESSAGE Workspace was not properly initialized or has already shutdown. + +!ENTRY org.eclipse.core.jobs 4 1 2015-04-09 00:49:50.167 +!MESSAGE Worker thread ended job: Refreshing workspace(10), but still holds rule: ThreadJob(Refreshing workspace(10),[F/Minecraft/build/classes/main]) +!SESSION 2015-04-09 22:05:26.919 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_31 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.java.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-04-09 22:05:40.228 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-04-09 22:06:02.208 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-04-09 22:06:02.219 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Sorin'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.core.resources 4 566 2015-04-09 22:08:14.388 +!MESSAGE Workspace was not properly initialized or has already shutdown. + +!ENTRY org.eclipse.core.jobs 4 1 2015-04-09 22:08:14.394 +!MESSAGE Worker thread ended job: Refreshing workspace(10), but still holds rule: ThreadJob(Refreshing workspace(10),[F/Minecraft/eclipse/saves/Test 2]) +!SESSION 2015-04-10 23:56:38.924 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_31 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.java.product +Command-line arguments: -data H:\Jewelrycraft\1.7.10\eclipse -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-04-10 23:56:41.949 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-04-10 23:56:53.051 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-04-10 23:56:53.056 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Sorin'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-04-11 00:23:31.466 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-04-11 00:27:22.302 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-04-11 00:27:56.903 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-04-11 00:33:49.708 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-04-11 00:38:31.917 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-04-11 00:39:01.005 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-04-11 00:48:34.050 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-04-11 00:53:25.619 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-04-11 00:57:38.372 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-04-11 01:02:35.995 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-04-11 01:09:53.905 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-04-11 01:25:02.049 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.recommenders.calls.rcp 2 1 2015-04-11 01:25:41.192 +!MESSAGE Cannot obtain JDT’s lookup environment (debug only). +!STACK 0 +org.eclipse.recommenders.utils.Logs$LogTraceException + at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) + at org.eclipse.recommenders.utils.Logs.log(Logs.java:122) + at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.startSession(CallCompletionSessionProcessor.java:104) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireStartSession(IntelligentCompletionProposalComputer.java:229) + at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:131) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) + at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) + at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) + at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1861) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) + at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) + at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) + at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:378) + at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) + at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) + at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) + at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) + at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) + at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) + at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) + at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) + at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) + at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) + at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) + at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) + at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) + at java.lang.reflect.Method.invoke(Unknown Source) + at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) + at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) + at org.eclipse.equinox.launcher.Main.run(Main.java:1465) + at org.eclipse.equinox.launcher.Main.main(Main.java:1438) + +!ENTRY org.eclipse.core.resources 4 566 2015-04-11 01:32:48.988 +!MESSAGE Workspace was not properly initialized or has already shutdown. + +!ENTRY org.eclipse.core.jobs 4 1 2015-04-11 01:32:49.001 +!MESSAGE Worker thread ended job: Refreshing workspace(10), but still holds rule: ThreadJob(Refreshing workspace(10),[F/Minecraft/build/classes/main]) +!SESSION 2015-04-11 15:51:50.196 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_31 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.java.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-04-11 15:51:53.214 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-04-11 15:52:06.087 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-04-11 15:52:06.171 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Sorin'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.core.jobs 2 2 2015-04-11 16:16:07.785 +!MESSAGE Job found still running after platform shutdown. Jobs should be canceled by the plugin that scheduled them during shutdown: org.eclipse.core.internal.refresh.RefreshJob +!SESSION 2015-04-11 20:03:03.960 ----------------------------------------------- +eclipse.buildId=4.4.1.M20140925-0400 +java.version=1.8.0_31 +java.vendor=Oracle Corporation +BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US +Framework arguments: -product org.eclipse.epp.package.java.product +Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product + +!ENTRY org.eclipse.m2e.logback.configuration 2 0 2015-04-11 20:03:06.896 +!MESSAGE Exception while setting up logging:org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String +!STACK 0 +java.lang.ClassCastException: org.eclipse.osgi.internal.framework.EquinoxConfiguration$1 cannot be cast to java.lang.String + at org.eclipse.m2e.logback.configuration.LogHelper.logJavaProperties(LogHelper.java:26) + at org.eclipse.m2e.logback.configuration.LogPlugin.loadConfiguration(LogPlugin.java:189) + at org.eclipse.m2e.logback.configuration.LogPlugin.configureLogback(LogPlugin.java:144) + at org.eclipse.m2e.logback.configuration.LogPlugin.access$2(LogPlugin.java:107) + at org.eclipse.m2e.logback.configuration.LogPlugin$1.run(LogPlugin.java:62) + at java.util.TimerThread.mainLoop(Unknown Source) + at java.util.TimerThread.run(Unknown Source) + +!ENTRY org.eclipse.egit.ui 2 0 2015-04-11 20:03:23.401 +!MESSAGE Warning: EGit couldn't detect the installation path "gitPrefix" of native Git. Hence EGit can't respect system level +Git settings which might be configured in ${gitPrefix}/etc/gitconfig under the native Git installation directory. +The most important of these settings is core.autocrlf. Git for Windows by default sets this parameter to true in +this system level configuration. The Git installation location can be configured on the +Team > Git > Configuration preference page's 'System Settings' tab. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. + +!ENTRY org.eclipse.egit.ui 2 0 2015-04-11 20:03:23.425 +!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git +user global configuration and to define the default location to store repositories: 'C:\Users\Sorin'. If this is +not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and +EGit might behave differently since they see different configuration options. +This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. diff --git a/eclipse/.metadata/.mylyn/.tasks.xml.zip b/eclipse/.metadata/.mylyn/.tasks.xml.zip index 06ce5a5..05da549 100644 Binary files a/eclipse/.metadata/.mylyn/.tasks.xml.zip and b/eclipse/.metadata/.mylyn/.tasks.xml.zip differ diff --git a/eclipse/.metadata/.mylyn/tasks.xml.zip b/eclipse/.metadata/.mylyn/tasks.xml.zip index b487ae4..829715e 100644 Binary files a/eclipse/.metadata/.mylyn/tasks.xml.zip and b/eclipse/.metadata/.mylyn/tasks.xml.zip differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/00f44bf8f2cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/00f44bf8f2cf0014170de422db399e8d deleted file mode 100644 index c7f47cf..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/00f44bf8f2cf0014170de422db399e8d +++ /dev/null @@ -1,65 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null && chunkposition.chunkPosX != (int)player.posX && chunkposition.chunkPosZ != (int)player.posZ){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D*Math.signum((double)chunkposition.chunkPosX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D*Math.signum((double)chunkposition.chunkPosZ); - Minecraft.getMinecraft().thePlayer.motionY += 0.01D*Math.signum((double)chunkposition.chunkPosY); - System.out.println(chunkposition.chunkPosX + " " + player.chunkCoordX); -// player.addChatMessage(new ChatComponentText("You hear a faint whisper telling you: \"You are getting closer, just " + (int)player.getDistance((double)chunkposition.chunkPosX, (double)chunkposition.chunkPosY, (double)chunkposition.chunkPosZ) + " more blocks to go.\"")); - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); -// if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/60ca70f3b9d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/60ca70f3b9d000141b65e2fc7f94332d deleted file mode 100644 index 639ee7b..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/60ca70f3b9d000141b65e2fc7f94332d +++ /dev/null @@ -1,232 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; -// GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/805d1a320cde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/805d1a320cde00141043c3025ec60dfc new file mode 100644 index 0000000..39190ba --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/805d1a320cde00141043c3025ec60dfc @@ -0,0 +1,186 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + if ((int)f3 != -1){ + int ingotColor = (int)f3; + int red = (ingotColor >> 16) & 0xff; + int green = (ingotColor >> 8) & 0xff; + int blue = ingotColor & 0xff; +// System.out.println(red + " " + green + " " + blue); + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glColorMask(false, true, false, false); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/90d037febbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/90d037febbd000141b65e2fc7f94332d deleted file mode 100644 index 9e5a035..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/90d037febbd000141b65e2fc7f94332d +++ /dev/null @@ -1,236 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/c03acc5982d000141a1fb02abca5ff55 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/c03acc5982d000141a1fb02abca5ff55 deleted file mode 100644 index 9d12634..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/0/c03acc5982d000141a1fb02abca5ff55 +++ /dev/null @@ -1,67 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.settings.GameSettings.Options; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && rand.nextInt(500) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30)*(rand.nextBoolean()?-1:1), player.posY, player.posZ + rand.nextInt(30)*(rand.nextBoolean()?-1:1)); - if (jewelry instanceof ItemRing && pos != -1) Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 2.0F); - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1/f0fa8fa8cfdf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1/f0fa8fa8cfdf00141dc6c962aec96210 new file mode 100644 index 0000000..a057c00 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1/f0fa8fa8cfdf00141dc6c962aec96210 @@ -0,0 +1,102 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); +// if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(30, 8 + (size + 26) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); +// } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 0 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlueHeart")) / 2.0F), 15 + 35*count, resolution.getScaledHeight() - 16, 16777215); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("BlackHeart") > 0){ + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 1 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlackHeart")) / 2.0F), 15 + 35*count, resolution.getScaledHeight() - 16, 16777215); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/202fc46ed0df00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/202fc46ed0df00141dc6c962aec96210 new file mode 100644 index 0000000..89e2fab --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/202fc46ed0df00141dc6c962aec96210 @@ -0,0 +1,87 @@ +package darkknight.jewelrycraft.effects; + +import net.minecraft.block.BlockOre; +import net.minecraft.client.Minecraft; +import net.minecraft.client.settings.GameSettings.Options; +import net.minecraft.entity.monster.EntityEnderman; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.biome.BiomeGenBase; +import cpw.mods.fml.relauncher.ReflectionHelper; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; + +public class EffectEnderEye extends ModifierEffects +{ + private boolean originalVD = false; + private float originalViewDistance; + + public EffectEnderEye() + { + super(new ItemStack(Items.ender_eye)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemEarrings && exists && !player.worldObj.isRemote){ + for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ + EntityEnderman enderman = (EntityEnderman)e; + ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); + Vec3 vec3 = player.getLook(1.0F).normalize(); + Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); + double d0 = vec31.lengthVector(); + vec31 = vec31.normalize(); + double d1 = vec3.dotProduct(vec31); + if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ + // Positive earrings + if (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0) enderman.setTarget(null); + // Negative earrings + if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2 + JewelryNBT.numberOfModifiers(item) / 4)); + } + } + } + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote){ + ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); + if (chunkposition != null){ + Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX) * (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0 ? 1 : -1); + Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ) * (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0 ? 1 : -1); + } + } + // Positive bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 150 - JewelryNBT.numberOfModifiers(item) * 10, 2 - JewelryNBT.numberOfModifiers(item) / 5)); + // Negative bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && rand.nextInt(520 - JewelryNBT.numberOfModifiers(item) * 20) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1), player.posY, player.posZ + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1)); + // Negative ring + if (jewelry instanceof ItemRing && exists) Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 2F - JewelryNBT.numberOfModifiers(item) * 0.1F); + // Positive ring + if (jewelry instanceof ItemRing && exists && rand.nextInt(180 + JewelryNBT.numberOfModifiers(item)*20) == 12){ + for(int i = (int)player.posX - 2; i <= (int)player.posX + 2; i++) + for(int j = (int)player.posY - 2; j <= (int)player.posY + 2; j++) + for(int k = (int)player.posZ - 2; k <= (int)player.posZ + 2; k++) + if (player.worldObj.getBlock(i, j, k) instanceof BlockOre) player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "You sense some " + player.worldObj.getBlock(i, j, k).getLocalizedName() + " around you.")); + } + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100 + JewelryNBT.numberOfModifiers(item)*30, 1)); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/803b287d0cde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/803b287d0cde00141043c3025ec60dfc new file mode 100644 index 0000000..32a7a1d --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/803b287d0cde00141043c3025ec60dfc @@ -0,0 +1,66 @@ +package darkknight.jewelrycraft.item.render; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; +import org.lwjgl.opengl.GL11; + +public class ItemRender implements IItemRenderer +{ + TileEntitySpecialRenderer render; + public TileEntity entity; + ModelBase model; + + /** + * @param render + * @param entity + * @param model + */ + public ItemRender(TileEntitySpecialRenderer render, TileEntity entity, ModelBase model) + { + this.entity = entity; + this.render = render; + this.model = model; + } + + /** + * @param item + * @param type + * @return + */ + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) + { + return true; + } + + /** + * @param type + * @param item + * @param helper + * @return + */ + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) + { + return true; + } + + /** + * @param type + * @param item + * @param data + */ + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object ... data) + { + GL11.glColorMask(false, false, false, false); + if (type == IItemRenderer.ItemRenderType.ENTITY){ + GL11.glRotatef(180f, 0f, 1f, 0f); + GL11.glTranslatef(-0.5f, -0.5f, -0.4f); + } + render.renderTileEntityAt(entity, 0.0D, 0.0D, 0.0D, 0.0F); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/d02d52592dde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/d02d52592dde00141043c3025ec60dfc new file mode 100644 index 0000000..90cb2ed --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/10/d02d52592dde00141043c3025ec60dfc @@ -0,0 +1,106 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() - 50 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ +// for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(5, resolution.getScaledHeight() - 50 + 16 * count, 1 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + tagCache.getFloat("BlackHeart"), 15, resolution.getScaledHeight() - 50 + 16 * count, 16777215); +// if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() - 50 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/12/50aa0d289bd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/12/50aa0d289bd000141b65e2fc7f94332d deleted file mode 100644 index e69de29..0000000 diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/12/e0e3109acfdf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/12/e0e3109acfdf00141dc6c962aec96210 new file mode 100644 index 0000000..1574be4 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/12/e0e3109acfdf00141dc6c962aec96210 @@ -0,0 +1,102 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); +// if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); +// } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 0 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlueHeart")) / 2.0F), 15 + 35*count, resolution.getScaledHeight() - 16, 16777215); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("BlackHeart") > 0){ + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 1 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlackHeart")) / 2.0F), 15 + 35*count, resolution.getScaledHeight() - 16, 16777215); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/13/908f5c3bb4d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/13/908f5c3bb4d000141b65e2fc7f94332d deleted file mode 100644 index 364132f..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/13/908f5c3bb4d000141b65e2fc7f94332d +++ /dev/null @@ -1,195 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 10, y + 20, 145, 150, 35, 30); - name.add(item.getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/13/a08d42f22dde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/13/a08d42f22dde00141043c3025ec60dfc new file mode 100644 index 0000000..f017d1b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/13/a08d42f22dde00141043c3025ec60dfc @@ -0,0 +1,107 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ +// for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(5, resolution.getScaledHeight() - 50 + 16 * count, 0 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlackHeart")) / 2.0F), 15, resolution.getScaledHeight() - 45 + 16 * count, 16777215); +// if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ +// for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(5, resolution.getScaledHeight() - 50 + 16 * count, 1 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlackHeart")) / 2.0F), 15, resolution.getScaledHeight() - 45 + 16 * count, 16777215); +// if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() - 50 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/607a0b0a28de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/607a0b0a28de00141043c3025ec60dfc new file mode 100644 index 0000000..1ff9c0d --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/607a0b0a28de00141043c3025ec60dfc @@ -0,0 +1,465 @@ +package darkknight.jewelrycraft.events; + +import ibxm.Player; +import java.io.EOFException; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Iterator; +import java.util.List; +import java.util.Random; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompressedStreamTools; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.MathHelper; +import net.minecraftforge.client.event.EntityViewRenderEvent; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.event.entity.item.ItemTossEvent; +import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.living.LivingDeathEvent; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingFallEvent; +import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; +import net.minecraftforge.event.world.WorldEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.config.ConfigHandler; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.entities.EntityHalfHeart; +import darkknight.jewelrycraft.entities.EntityHeart; +import darkknight.jewelrycraft.item.ItemBaseJewelry; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemList; +import darkknight.jewelrycraft.network.PacketClearColorCache; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.network.PacketSendCurseStats; +import darkknight.jewelrycraft.network.PacketSendPlayerInfo; +import darkknight.jewelrycraft.util.BlockUtils; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +/** + * Code taken from OpenBlocks + */ +public class EntityEventHandler +{ + /** + * @param event + */ + @SubscribeEvent + public void onEntityJoinWorld(EntityJoinWorldEvent event) + { + if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + final Entity entity = event.entity; + if (!event.world.isRemote && entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); + if (shouldGiveManual){ + ItemStack manual = new ItemStack(ItemList.guide); + if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); + persistTag.setBoolean("givenGuide", true); + } + boolean render = persistTag.getBoolean("fancyRender"); + JewelrycraftMod.fancyRender = render; + for(Curse curse: Curse.getCurseList()) + if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); + persistTag.setBoolean("sendInfo", true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityUpdate(LivingUpdateEvent event) + { + Entity entity = event.entity; + if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ + entity.motionX *= 0D; + entity.motionZ *= 0D; + entity.motionY *= 0D; + entity.rotationPitch = entity.prevRotationPitch; + entity.rotationYaw = entity.prevRotationYaw; + entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); + if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); + entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); + if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ + player.motionX *= 0D; + player.motionZ *= 0D; + player.motionY *= 0D; + player.rotationPitch = entity.prevRotationPitch; + player.rotationYaw = entity.prevRotationYaw; + playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); + if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); + player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); + } + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if(item != null) ((ItemBaseJewelry)item.getItem()).action(item, player); + } + if (!player.worldObj.isRemote){ + if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); + if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); + } + if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); + if (playerInfo.getBoolean("sendInfo")){ + JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); + playerInfo.setBoolean("sendInfo", false); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && playerInfo.getInteger("cursePoints") > 0) curse.action(player.worldObj, player); + } + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityAttacked(LivingAttackEvent event) + { + Entity entity = event.entityLiving; + if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); + if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("negateDamage")){ + playerInfo.setBoolean("negateDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); + } + if (player.getHealth() != player.prevHealth){ + if (playerInfo.getFloat("WhiteHeart") > 0){ + playerInfo.setFloat("WhiteHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getFloat("BlueHeart") > 0){ + float damage = playerInfo.getFloat("BlueHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlueHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlueHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + }else if (playerInfo.getFloat("BlackHeart") > 0){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); + List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); + if (enemies != null && !enemies.isEmpty()){ + Iterator iterator = enemies.iterator(); + while (iterator.hasNext()){ + Entity enemy = (Entity)iterator.next(); + enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); + } + } + float damage = playerInfo.getFloat("BlackHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlackHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlackHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + } + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && playerInfo.getInteger("cursePoints") > 0) curse.attackedAction(player.worldObj, player); + }else if (event.source.getEntity() instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.source.getEntity(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("weakDamage")){ + playerInfo.setBoolean("weakDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && playerInfo.getInteger("cursePoints") > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onPlayerRespawn(PlayerEvent.Clone event) + { + EntityPlayer player = event.entityPlayer; + if (!player.worldObj.isRemote){ + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + } + playerInfo.setBoolean("sendInfo", true); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && playerInfo.getInteger("cursePoints") > 0) curse.respawnAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param player + * @param playerInfo + * @param curse + */ + public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) + { + if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ + int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); + Curse cur = Curse.availableCurses.get(no); + playerInfo.setInteger(cur.getName(), 1); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) + { + Curse cur = Curse.getCurseList().get(curseID); + if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ + playerInfo.setInteger(cur.getName(), grade); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + @SubscribeEvent + public void itemToss(ItemTossEvent event) + { + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, Variables.MODID); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss() && playerInfo.getInteger("cursePoints") > 0){ + EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); + entityitem.motionX = 0; + entityitem.motionZ = 0; + entityitem.motionY = 0.11000000298023224D; + event.player.worldObj.spawnEntityInWorld(entityitem); + List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; + Iterator plrs = players.iterator(); + while (plrs.hasNext()) + ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); + event.setCanceled(true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void playerFileSave(PlayerEvent.SaveToFile event) + { + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityDead(LivingDeathEvent event) + { + final Entity entity = event.entity; + Random rand = new Random(); + String[] types = {"Red", "Blue", "White", "Black"}; + if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ + EntityLiving live = (EntityLiving)entity; + String type = types[rand.nextInt(4)]; + if (rand.nextInt(6) == 0){ + if (type == "White"){ + EntityHeart h = new EntityHalfHeart(live.worldObj); + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + }else{ + for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ + EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; + EntityHeart h = hearts[rand.nextInt(2)]; + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + } + } + } + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ + for(Curse l: Curse.getCurseList()){ + if (playerInfo.getInteger(l.getName()) == 1){ + playerInfo.setInteger(l.getName(), 0); + if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); + }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); + } + if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + playerInfo.setBoolean("sendInfo", true); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldLoad(WorldEvent.Load event) + { + if (!event.world.isRemote){ + new File(JewelrycraftMod.dir + File.separator + Variables.MODID).mkdirs(); + JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + Variables.MODID, "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); + try{ + if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldSave(WorldEvent.Save event) + { + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogColors(EntityViewRenderEvent.FogColors event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + event.red = 0f; + event.green = 0f; + event.blue = 0f; + } + } + if (event.isCancelable()) event.setCanceled(true); + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogDensity(EntityViewRenderEvent.FogDensity event) + {} + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void renderFog(EntityViewRenderEvent.RenderFogEvent event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); + GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); + } + } + if (event.isCancelable()) event.setCanceled(true); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/70a157f022cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/70a157f022cf00141c41f52413db5e31 deleted file mode 100644 index c5e21f2..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/70a157f022cf00141c41f52413db5e31 +++ /dev/null @@ -1,459 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth || player.getHealth() <= 0){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/a002d0b6cedf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/a002d0b6cedf00141dc6c962aec96210 new file mode 100644 index 0000000..8d14eb4 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/a002d0b6cedf00141dc6c962aec96210 @@ -0,0 +1,87 @@ +package darkknight.jewelrycraft.effects; + +import net.minecraft.block.BlockOre; +import net.minecraft.client.Minecraft; +import net.minecraft.client.settings.GameSettings.Options; +import net.minecraft.entity.monster.EntityEnderman; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.biome.BiomeGenBase; +import cpw.mods.fml.relauncher.ReflectionHelper; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; + +public class EffectEnderEye extends ModifierEffects +{ + private boolean originalVD = false; + private float originalViewDistance; + + public EffectEnderEye() + { + super(new ItemStack(Items.ender_eye)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemEarrings && exists && !player.worldObj.isRemote){ + for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ + EntityEnderman enderman = (EntityEnderman)e; + ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); + Vec3 vec3 = player.getLook(1.0F).normalize(); + Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); + double d0 = vec31.lengthVector(); + vec31 = vec31.normalize(); + double d1 = vec3.dotProduct(vec31); + if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ + // Positive earrings + if(rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0) enderman.setTarget(null); + // Negative earrings + if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2 + JewelryNBT.numberOfModifiers(item)/4)); + } + } + } + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote){ + ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); + if (chunkposition != null){ + Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX)*(rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0? 1:-1); + Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ)*(rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0? 1:-1); + } + } + // Positive bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 150 - JewelryNBT.numberOfModifiers(item)*10, 2 - JewelryNBT.numberOfModifiers(item)/5)); + // Negative bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && rand.nextInt(520 - JewelryNBT.numberOfModifiers(item)*20) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1), player.posY, player.posZ + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1)); + if (jewelry instanceof ItemRing && exists && rand.nextInt(200) == 12){ + // Negative ring + Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 2.1F - JewelryNBT.numberOfModifiers(item)*0.1F); + // Positive ring + for(int i = (int)player.posX - 2; i <= (int)player.posX + 2; i++) + for(int j = (int)player.posY - 2; j <= (int)player.posY + 2; j++) + for(int k = (int)player.posZ - 2; k <= (int)player.posZ + 2; k++) + if (player.worldObj.getBlock(i, j, k) instanceof BlockOre) player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "You sense some " + player.worldObj.getBlock(i, j, k).getLocalizedName() + " around you.")); + } + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/a058ee18bcd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/a058ee18bcd000141b65e2fc7f94332d deleted file mode 100644 index afd9dd3..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/a058ee18bcd000141b65e2fc7f94332d +++ /dev/null @@ -1,114 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/b0d74dd670cf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/b0d74dd670cf00141de78e4a85bb2469 deleted file mode 100644 index 776a6e8..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/15/b0d74dd670cf00141de78e4a85bb2469 +++ /dev/null @@ -1,41 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player, Entity target) - { - if (rand.nextInt(5) == 0 && !world.isRemote && !(target instanceof EntityMob) && target instanceof EntityLiving && !(target instanceof EntityHeart) && !(target instanceof EntityHalfHeart) && target.canAttackWithItem()){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.getFloat("BlackHeart") < 20F) playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 1.0F); - if (player.getMaxHealth() >= 3F){ - player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() - 1.0F); - player.setHealth(player.getHealth() - 2.0F); - } - JewelrycraftUtil.addCursePoints(player, 10); - } - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/17/3014ba2224cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/17/3014ba2224cf00141c41f52413db5e31 deleted file mode 100644 index 9a3ac60..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/17/3014ba2224cf00141c41f52413db5e31 +++ /dev/null @@ -1,25 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; - -public class CurseBlind extends Curse -{ - public CurseBlind(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void action(World world, EntityPlayer player) - { -// if (!player.isPotionActive(Potion.blindness) || player.getActivePotionEffect(Potion.blindness).getDuration() < 30) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 60)); - } - - public String getDescription() - { - return "You see the light slowly fading in front of you"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/17/f0ded3dbcedf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/17/f0ded3dbcedf00141dc6c962aec96210 new file mode 100644 index 0000000..fe92fcd --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/17/f0ded3dbcedf00141dc6c962aec96210 @@ -0,0 +1,185 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + if ((int)f3 != -1){ + int ingotColor = (int)f3; + int red = (ingotColor >> 16) & 0xff; + int green = (ingotColor >> 8) & 0xff; + int blue = ingotColor & 0xff; +// System.out.println(red + " " + green + " " + blue); + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/18/70793b297ecf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/18/70793b297ecf00141de78e4a85bb2469 deleted file mode 100644 index 623aca8..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/18/70793b297ecf00141de78e4a85bb2469 +++ /dev/null @@ -1,81 +0,0 @@ -package darkknight.jewelrycraft.client; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.Item; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.MinecraftForgeClient; -import net.minecraftforge.common.MinecraftForge; -import cpw.mods.fml.client.registry.ClientRegistry; -import cpw.mods.fml.client.registry.RenderingRegistry; -import cpw.mods.fml.common.registry.VillagerRegistry; -import darkknight.jewelrycraft.CommonProxy; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.entities.renders.HeartRender; -import darkknight.jewelrycraft.events.PlayerRenderHandler; -import darkknight.jewelrycraft.events.ScreenHandler; -import darkknight.jewelrycraft.model.ModelDisplayer; -import darkknight.jewelrycraft.model.ModelHalfHeart; -import darkknight.jewelrycraft.model.ModelHandPedestal; -import darkknight.jewelrycraft.model.ModelHeart; -import darkknight.jewelrycraft.model.ModelJewlersCraftingBench; -import darkknight.jewelrycraft.model.ModelMolder; -import darkknight.jewelrycraft.model.ModelShadowEye; -import darkknight.jewelrycraft.model.ModelShadowHand; -import darkknight.jewelrycraft.model.ModelSmelter; -import darkknight.jewelrycraft.tileentity.TileEntityDisplayer; -import darkknight.jewelrycraft.tileentity.TileEntityHandPedestal; -import darkknight.jewelrycraft.tileentity.TileEntityJewelrsCraftingTable; -import darkknight.jewelrycraft.tileentity.TileEntityMolder; -import darkknight.jewelrycraft.tileentity.TileEntityShadowEye; -import darkknight.jewelrycraft.tileentity.TileEntityShadowHand; -import darkknight.jewelrycraft.tileentity.TileEntitySmelter; -import darkknight.jewelrycraft.tileentity.renders.ItemRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityDisplayerRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityHandPedestalRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityJewelrsCraftingTableRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityMolderRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityShadowEyeRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityShadowHandRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntitySmelterRender; -import darkknight.jewelrycraft.util.JewelrycraftUtil; - -public class ClientProxy extends CommonProxy -{ - @Override - public void registerRenderers() - { - ResourceLocation pedestalResourceLocation = new ResourceLocation("jewelrycraft", "textures/tileentities/BricksPedestal.png"); - TileEntityHandPedestalRender pedestalRender = new TileEntityHandPedestalRender(new ModelHandPedestal(pedestalResourceLocation), pedestalResourceLocation); - ResourceLocation shadowResourceLocation = new ResourceLocation("jewelrycraft", "textures/tileentities/ShadowHand.png"); - TileEntityShadowHandRender shadowHandRender = new TileEntityShadowHandRender(new ModelShadowHand(shadowResourceLocation), shadowResourceLocation); - - ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySmelter.class, new TileEntitySmelterRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMolder.class, new TileEntityMolderRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityJewelrsCraftingTable.class, new TileEntityJewelrsCraftingTableRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDisplayer.class, new TileEntityDisplayerRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityShadowEye.class, new TileEntityShadowEyeRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHandPedestal.class, pedestalRender); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityShadowHand.class, shadowHandRender); - - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.displayer), new ItemRender(new TileEntityDisplayerRender(), new TileEntityDisplayer(), new ModelDisplayer())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.jewelCraftingTable), new ItemRender(new TileEntityJewelrsCraftingTableRender(), new TileEntityJewelrsCraftingTable(), new ModelJewlersCraftingBench())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.smelter), new ItemRender(new TileEntitySmelterRender(), new TileEntitySmelter(), new ModelSmelter())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.molder), new ItemRender(new TileEntityMolderRender(), new TileEntityMolder(), new ModelMolder())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.shadowEye), new ItemRender(new TileEntityShadowEyeRender(), new TileEntityShadowEye(), new ModelShadowEye())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.handPedestal), new ItemRender(pedestalRender, new TileEntityHandPedestal(), new ModelHandPedestal(pedestalResourceLocation))); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.shadowHand), new ItemRender(shadowHandRender, new TileEntityShadowHand(), new ModelShadowHand(shadowResourceLocation))); - VillagerRegistry.instance().registerVillagerSkin(3000, new ResourceLocation("jewelrycraft", "textures/entities/jeweler.png")); - - RenderingRegistry.registerEntityRenderingHandler(EntityHeart.class, new HeartRender(new ModelHeart(), 0.25F)); - RenderingRegistry.registerEntityRenderingHandler(EntityHalfHeart.class, new HeartRender(new ModelHalfHeart(), 0.25F)); - - TabRegistry.registerTab(new InventoryTabVanilla()); - TabRegistry.registerTab(new TabJewelry()); - MinecraftForge.EVENT_BUS.register(new TabRegistry()); - MinecraftForge.EVENT_BUS.register(new PlayerRenderHandler()); - ResourceLocation jeweleryTexture = new ResourceLocation("jewelrycraft", "textures/gui/curses.png"); - MinecraftForge.EVENT_BUS.register(new ScreenHandler(Minecraft.getMinecraft(), jeweleryTexture)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/18/f0b8342df3cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/18/f0b8342df3cf0014170de422db399e8d deleted file mode 100644 index 3738506..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/18/f0b8342df3cf0014170de422db399e8d +++ /dev/null @@ -1,64 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null && chunkposition.chunkPosX != (int)player.posX && chunkposition.chunkPosZ != (int)player.posZ){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D*Math.signum((double)chunkposition.chunkPosX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D*Math.signum((double)chunkposition.chunkPosZ); - System.out.println(chunkposition.chunkPosX + " " + 0.01D*Math.signum((double)chunkposition.chunkPosX)); -// player.addChatMessage(new ChatComponentText("You hear a faint whisper telling you: \"You are getting closer, just " + (int)player.getDistance((double)chunkposition.chunkPosX, (double)chunkposition.chunkPosY, (double)chunkposition.chunkPosZ) + " more blocks to go.\"")); - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); -// if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/40b7127a9cd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/40b7127a9cd000141b65e2fc7f94332d deleted file mode 100644 index c6a409b..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/19/40b7127a9cd000141b65e2fc7f94332d +++ /dev/null @@ -1,52 +0,0 @@ -package darkknight.jewelrycraft.container; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import darkknight.jewelrycraft.client.GuiGuide; -import darkknight.jewelrycraft.item.ItemList; - -public class GuiTabIntroduction extends GuiTab -{ - public GuiTabIntroduction(int id) - { - super("Introduction", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(ItemList.ring); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - String text = ""; - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - text = "Welcome to Jewelrycraft 2! This mod is about making jewelry that you can modify to your own will. To find out how to create a jewelry, please consult the book and look at the Smelter block. To add modifiers to it you need to perform a ritual. To see how to do that, look at the Cursed Eye"; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - case 2: - text = "block in this giude. Please be aware that even if you can add anything as a modifier and can have multiple modifiers on one jewelry, this mod is still in alpha and does not have that many modifiers implemtnted and currently don't have any different effects depending on the gem used. To see"; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - case 3: - text = "block in this giude. Please be aware that even if you can add anything as a modifier and can have multiple modifiers on one jewelry, this mod is still in alpha and does not have that many modifiers implemtnted and currently don't have any different effects depending on the gem used."; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1a/70a655ecbdd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1a/70a655ecbdd000141b65e2fc7f94332d deleted file mode 100644 index 9288248..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1a/70a655ecbdd000141b65e2fc7f94332d +++ /dev/null @@ -1,237 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.block.BlockShadowEye; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - if(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockShadowEye) GL11.glTranslatef(-0.3F, 0F, 0F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1b/208e063bf5cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1b/208e063bf5cf0014170de422db399e8d deleted file mode 100644 index 9335f52..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1b/208e063bf5cf0014170de422db399e8d +++ /dev/null @@ -1,69 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D*Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D*Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote){ - if (player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky){ - if (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 100, 1)); - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1b/807d1568bed000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1b/807d1568bed000141b65e2fc7f94332d deleted file mode 100644 index 30c7f2a..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1b/807d1568bed000141b65e2fc7f94332d +++ /dev/null @@ -1,239 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.block.BlockShadowEye; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else if (item.isItemEqual(new ItemStack(BlockList.handPedestal))){ - GL11.glTranslatef(0.2F, 0F, 0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ - // GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if (xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - if (Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockShadowEye) GL11.glTranslatef(0F, 0F, 0.025F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1b/f07260f599d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1b/f07260f599d000141b65e2fc7f94332d deleted file mode 100644 index 6bae4bb..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1b/f07260f599d000141b65e2fc7f94332d +++ /dev/null @@ -1,78 +0,0 @@ -package darkknight.jewelrycraft.container; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabModifiers extends GuiTab -{ - int maxPages; - public GuiTabModifiers(int id) - { - super("Modifiers", id); - } - - /** - * @return - */ - @Override - public ItemStack getIcon() - { - return new ItemStack(Items.blaze_powder); - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - String text = ""; - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - text = "Although you can add anything as a modifier, only some objects have an effect. In this tab you can find all of modifiers that have a use and what they do, in the form of a story/riddle/poem. However different jewellery have different effects for the same modifier."; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - maxPages++; - break; - case 2: - text = "The ancient ones talked about a rising fire in your heart. Fret do not, for flames do not burn, but water might sting a turn. Watch your step, do not be cocky, for its protection is a bit sloppy."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), new ItemStack(Items.blaze_powder), text, 40f); - maxPages++; - break; - case 3: - text = "Light and swift as a feather can be good all together. Enemies miss and get confused, this power can be abused. Be aware, against an arrow you can't compare. Fire is your enemy and weakness is the penalty."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), new ItemStack(Items.feather), text, 40f); - maxPages++; - break; - case 4: - text = "Endermen may tolerate you, end portals are near too, you may find ore that is true. But be careful, for the power may make you dizzy, blind you if you're a sissy, worsen your vision if you're unaware and shift positions everywhere."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), new ItemStack(Items.ender_eye), text, 40f); - maxPages++; - break; - } - } - - /** - * @return - */ - @Override - public int getMaxPages() - { - return maxPages; - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1c/501314b626de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1c/501314b626de00141043c3025ec60dfc new file mode 100644 index 0000000..bbcf482 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1c/501314b626de00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(20, 16 + (size + 20) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 20, 7 + (size + 6) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1c/d012a06acedf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1c/d012a06acedf00141dc6c962aec96210 new file mode 100644 index 0000000..f133a3b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1c/d012a06acedf00141dc6c962aec96210 @@ -0,0 +1,87 @@ +package darkknight.jewelrycraft.effects; + +import net.minecraft.block.BlockOre; +import net.minecraft.client.Minecraft; +import net.minecraft.client.settings.GameSettings.Options; +import net.minecraft.entity.monster.EntityEnderman; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.biome.BiomeGenBase; +import cpw.mods.fml.relauncher.ReflectionHelper; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; + +public class EffectEnderEye extends ModifierEffects +{ + private boolean originalVD = false; + private float originalViewDistance; + + public EffectEnderEye() + { + super(new ItemStack(Items.ender_eye)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemEarrings && exists && !player.worldObj.isRemote){ + for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ + EntityEnderman enderman = (EntityEnderman)e; + ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); + Vec3 vec3 = player.getLook(1.0F).normalize(); + Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); + double d0 = vec31.lengthVector(); + vec31 = vec31.normalize(); + double d1 = vec3.dotProduct(vec31); + if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ + // Positive earrings + if(rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0) enderman.setTarget(null); + // Negative earrings + if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2 + JewelryNBT.numberOfModifiers(item)/4)); + } + } + } + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote){ + ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); + if (chunkposition != null){ + Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX)*(rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0? 1:-1); + Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ)*(rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0? 1:-1); + } + } + // Positive bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 150 - JewelryNBT.numberOfModifiers(item)*10, 2 - JewelryNBT.numberOfModifiers(item)/5)); + // Negative bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && rand.nextInt(520 - JewelryNBT.numberOfModifiers(item)*20) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1), player.posY, player.posZ + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1)); + if (jewelry instanceof ItemRing && exists && rand.nextInt(200) == 12){ + // Negative ring + Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 1.0F); + // Positive ring + for(int i = (int)player.posX - 2; i <= (int)player.posX + 2; i++) + for(int j = (int)player.posY - 2; j <= (int)player.posY + 2; j++) + for(int k = (int)player.posZ - 2; k <= (int)player.posZ + 2; k++) + if (player.worldObj.getBlock(i, j, k) instanceof BlockOre) player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "You sense some " + player.worldObj.getBlock(i, j, k).getLocalizedName() + " around you.")); + } + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/10a8250bf2cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/10a8250bf2cf0014170de422db399e8d deleted file mode 100644 index 9d58dae..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/10a8250bf2cf0014170de422db399e8d +++ /dev/null @@ -1,64 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D*Math.signum((double)chunkposition.chunkPosX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D*Math.signum((double)chunkposition.chunkPosZ); - System.out.println((double)chunkposition.chunkPosX + " " + Math.signum((double)chunkposition.chunkPosX)); -// player.addChatMessage(new ChatComponentText("You hear a faint whisper telling you: \"You are getting closer, just " + (int)player.getDistance((double)chunkposition.chunkPosX, (double)chunkposition.chunkPosY, (double)chunkposition.chunkPosZ) + " more blocks to go.\"")); - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); -// if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/304ae31aa0ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/304ae31aa0ce00141801ff0972626827 deleted file mode 100644 index 9e33caf..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1d/304ae31aa0ce00141801ff0972626827 +++ /dev/null @@ -1,71 +0,0 @@ -/** - * - */ -package darkknight.jewelrycraft.network; - -import java.util.Iterator; -import java.util.List; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import io.netty.buffer.ByteBuf; -import cpw.mods.fml.common.network.ByteBufUtils; -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import darkknight.jewelrycraft.events.PlayerRenderHandler; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * @author Sorin - * - */ -public class PacketSendCurseStats implements IMessage, IMessageHandler -{ - public PacketSendCurseStats() - { - - } - - /** - * @param message - * @param ctx - * @return - */ - @Override - public IMessage onMessage(PacketSendCurseStats message, MessageContext ctx) - { - return null; - } - - /** - * @param buf - */ - @Override - public void fromBytes(ByteBuf buf) - { - String temp = ByteBufUtils.readUTF8String(buf); - if (temp != "") - PlayerRenderHandler.infamyCache = temp.split(";"); - else - PlayerRenderHandler.infamyCache = new String[] { }; - } - - /** - * @param buf - */ - @Override - public void toBytes(ByteBuf buf) - { - Iterator players = MinecraftServer.getServer().getConfigurationManager().playerEntityList.iterator(); - String greedPlayers = ""; - while (players.hasNext()) - { - EntityPlayer current = players.next(); - if(PlayerUtils.getModPlayerPersistTag(current, "Jewelrycraft").getInteger(Reference.MODNAME + ":" + "Infamy") > 0) - greedPlayers = greedPlayers + (greedPlayers == "" ? "" : ";") + current.getDisplayName(); - } - ByteBufUtils.writeUTF8String(buf, greedPlayers); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1e/00b1e982a0ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1e/00b1e982a0ce00141801ff0972626827 deleted file mode 100644 index a69ff99..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1e/00b1e982a0ce00141801ff0972626827 +++ /dev/null @@ -1,25 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import cpw.mods.fml.common.event.FMLPreInitializationEvent; -import darkknight.jewelrycraft.lib.Reference; - -public class CurseList -{ - private static Curse rotten, flaming, blind, greed, infamy; - private static boolean isInitialized = false; - - /** - * @param e - */ - public static void preInit(FMLPreInitializationEvent e) - { - if (!isInitialized){ - rotten = new CurseRottenHeart(0, Reference.MODNAME + ":" + "Rotten Heart", 0); - flaming = new CurseFlamingSoul(1, Reference.MODNAME + ":" + "Flaming Soul", 0); - greed = new CurseGreed(2, Reference.MODNAME + ":" + "Greed", 0); - blind = new CurseBlind(3, Reference.MODNAME + ":" + "Blind", 0); - infamy = new CurseBlind(4, Reference.MODNAME + ":" + "Infamy", 0); - isInitialized = true; - } - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1e/e0daccca6fcf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1e/e0daccca6fcf00141de78e4a85bb2469 deleted file mode 100644 index 4063764..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1e/e0daccca6fcf00141de78e4a85bb2469 +++ /dev/null @@ -1,43 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player, Entity target) - { - if (!world.isRemote && !(target instanceof EntityMob) && target instanceof EntityLiving && !(target instanceof EntityHeart) && !(target instanceof EntityHalfHeart) && target.canAttackWithItem()){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (rand.nextInt(2) == 0){ - if(playerInfo.getFloat("BlackHeart") < 20F) playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 1.0F); - if(player.getMaxHealth() >= 3F){ - player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() - 1.0F); - player.setHealth(player.getHealth() - 1.0F); - } - } - JewelrycraftUtil.addCursePoints(player, 10); - } - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/20cffe1816cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/20cffe1816cf00141c41f52413db5e31 deleted file mode 100644 index 4662b74..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/20cffe1816cf00141c41f52413db5e31 +++ /dev/null @@ -1,30 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.getFloat("BlackHeart") < 20f && rand.nextInt(5) == 0) playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 2.0F); - JewelrycraftUtil.addCursePoints(player, 100); - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/4094f8e609de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/4094f8e609de00141043c3025ec60dfc new file mode 100644 index 0000000..ffd2967 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/1f/4094f8e609de00141043c3025ec60dfc @@ -0,0 +1,184 @@ +package darkknight.jewelrycraft.model; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + System.out.println((int)f3); + if ((int)f3 != -1){ + int ingotColor = Math.abs((int)f3); + int red = ingotColor >> 16 & 0xff; + int green = ingotColor >> 8 & 0xff; + int blue = ingotColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/003d2b0505de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/003d2b0505de00141043c3025ec60dfc new file mode 100644 index 0000000..67723ad --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/003d2b0505de00141043c3025ec60dfc @@ -0,0 +1,279 @@ +package darkknight.jewelrycraft.tileentity; + +import java.util.ArrayList; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import darkknight.jewelrycraft.block.BlockHandPedestal; +import darkknight.jewelrycraft.block.BlockList; +import darkknight.jewelrycraft.particles.EntityShadowsFX; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class TileEntityShadowEye extends TileEntity +{ + public int opening, timer, t = 20; + public boolean active; + public ArrayList pedestalItems = new ArrayList(); + ResourceLocation particleTexture = new ResourceLocation(Variables.MODID, "textures/particle/shadows.png"); + public EntityPlayer target; + + public TileEntityShadowEye() + { + opening = 1; + timer = 20; + active = false; + } + + /** + * @param nbt + */ + @Override + public void writeToNBT(NBTTagCompound nbt) + { + super.writeToNBT(nbt); + nbt.setInteger("opening", opening); + nbt.setInteger("timer", timer); + nbt.setBoolean("active", active); + } + + /** + * @param nbt + */ + @Override + public void readFromNBT(NBTTagCompound nbt) + { + super.readFromNBT(nbt); + opening = nbt.getInteger("opening"); + timer = nbt.getInteger("timer"); + active = nbt.getBoolean("active"); + } + + /** + * + */ + @Override + public void updateEntity() + { + super.updateEntity(); + boolean valid = isValidStructure(worldObj, xCoord, yCoord, zCoord, blockMetadata); + if (active) timer--; + if (active && target != null && this.getDistanceFrom(target.posX, target.posY, target.posZ) > 30D){ + active = false; + timer = -1; + t = 20; + } + if (opening == 4 && timer <= 0) active = false; + if (!active && timer <= 0 && opening != 1){ + if (t > 0) t--; + if (t <= 0){ + opening--; + t = 20; + } + } + if (opening == 2 && timer <= 0 && t == 10){ + addData(worldObj, xCoord, yCoord, zCoord); + TileEntityHandPedestal target = (TileEntityHandPedestal)worldObj.getTileEntity(xCoord, yCoord - 3, zCoord); + if (target != null && target.getHeldItemStack() != null) JewelryNBT.addModifiers(target.getHeldItemStack(), pedestalItems); + } + if (active && timer <= 0){ + if (opening < 4){ + opening++; + timer = 20; + } + if (valid && opening == 4) timer = 1000; + else if (!valid){ + active = false; + timer = -1; + } + } + for(Object player: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(10D, 10D, 10D))) + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", false); + } + if (active && opening == 4){ + float din = 6F; + int i = Minecraft.getMinecraft().gameSettings.particleSetting; + for(float x = -din; x <= din; x += 0.2F) + for(float z = -din; z <= din; z += 0.2F) + if (x * x + z * z >= din * din - 1 && x * x + z * z <= din * din + 1) Minecraft.getMinecraft().effectRenderer.addEffect(new EntityShadowsFX(worldObj, xCoord + x + 0.5F, yCoord - 0.5F, zCoord + z + 0.5F, 15F, 0.04F - 0.01F * i, particleTexture)); + for(int l = 0; l <= 2 - i; l++) + worldObj.spawnParticle("depthsuspend", xCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), yCoord - 2F + worldObj.rand.nextFloat(), zCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), 0, 0, 0); + for(Object player: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(10D, 10D, 10D))) + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", true); + } + } + } + + /** + * @param world + * @param x + * @param y + * @param z + * @param metadata + * @return + */ + public boolean isValidStructure(World world, int x, int y, int z, int metadata) + { + if (world.getBlockMetadata(x, y, z) == 0 || world.getBlockMetadata(x, y, z) == 2){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x + 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x + 1, y + 1, z) != 5) return false; + if (world.getBlock(x - 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x - 1, y + 1, z) != 5) return false; + // 2nd Layer + if (world.getBlock(x + 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 2, y, z) != 1) return false; + if (world.getBlock(x + 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 1, y, z) != 4) return false; + if (world.getBlock(x - 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 1, y, z) != 5) return false; + if (world.getBlock(x - 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 2, y, z) != 0) return false; + // 3rd Layer + if (world.getBlock(x + 2, y - 1, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 1, z) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x + 2, y - 2, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 2, z) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x + 2, y - 3, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 3, z) != Blocks.stonebrick) return false; + }else if (world.getBlockMetadata(x, y, z) == 1 || world.getBlockMetadata(x, y, z) == 3){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x, y + 1, z + 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z + 1) != 5) return false; + if (world.getBlock(x, y + 1, z - 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z - 1) != 5) return false; + // 2nd Layer + if (world.getBlock(x, y, z + 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 2) != 3) return false; + if (world.getBlock(x, y, z + 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 1) != 6) return false; + if (world.getBlock(x, y, z - 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 1) != 7) return false; + if (world.getBlock(x, y, z - 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 2) != 2) return false; + // 3rd Layer + if (world.getBlock(x, y - 1, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 1, z - 2) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x, y - 2, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 2, z - 2) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x, y - 3, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 3, z - 2) != Blocks.stonebrick) return false; + } + // 3rd Layer + if (world.getBlock(x - 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x - 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + // 4th Layer + if (world.getBlock(x - 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 2, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z + 4) != Blocks.stonebrick) return false; + // 5th Layer + // Pillars + if (world.getBlock(x - 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 3, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z + 4) != Blocks.stonebrick) return false; + // Pedestals + if (!(world.getBlock(x, y - 3, z) instanceof BlockHandPedestal)) return false; + if (world.getBlock(x - 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z + 2) != 1) return false; + if (world.getBlock(x - 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x - 5, y - 3, z) != 2) return false; + if (world.getBlock(x - 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z - 2) != 3) return false; + if (world.getBlock(x - 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z - 4) != 3) return false; + if (world.getBlock(x, y - 3, z - 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z - 5) != 4) return false; + if (world.getBlock(x + 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z - 4) != 5) return false; + if (world.getBlock(x + 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z - 2) != 5) return false; + if (world.getBlock(x + 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x + 5, y - 3, z) != 6) return false; + if (world.getBlock(x + 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z + 2) != 7) return false; + if (world.getBlock(x + 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z + 4) != 7) return false; + if (world.getBlock(x, y - 3, z + 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z + 5) != 0) return false; + if (world.getBlock(x - 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z + 4) != 1) return false; + return true; + } + + /** + * @param world + * @param x + * @param y + * @param z + */ + public void addData(World world, int x, int y, int z) + { + pedestalItems.clear(); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z - 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z + 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z + 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z + 4)); + } + + /** + * @param pedestal + */ + public void addPedestalInfo(TileEntityHandPedestal pedestal) + { + ItemStack heldItemStack; + if (pedestal != null && (heldItemStack = pedestal.getHeldItemStack()) != null){ + if (pedestalItems.isEmpty()) pedestalItems.add(heldItemStack.copy()); + else{ + boolean hasItem = false; + int index = 0; + for(int ind = 0; ind < pedestalItems.size() && !hasItem; ind++) + if (heldItemStack.getItem().equals(pedestalItems.get(ind).getItem()) && heldItemStack.getItemDamage() == pedestalItems.get(ind).getItemDamage()){ + index = ind; + hasItem = true; + if (heldItemStack.hasTagCompound() && pedestalItems.get(ind).hasTagCompound() && !heldItemStack.getTagCompound().equals(pedestalItems.get(ind).getTagCompound())) hasItem = false; + } + if (!hasItem) pedestalItems.add(heldItemStack.copy()); + else{ + ItemStack object = pedestalItems.get(index).copy(); + object.stackSize++; + pedestalItems.set(index, object); + } + } + pedestal.removeHeldItemStack(); + pedestal.openHand(); + } + else if(pedestal != null && target != null) JewelrycraftUtil.addCursePoints(target, 20); + } + + /** + * @return + */ + @Override + public Packet getDescriptionPacket() + { + NBTTagCompound nbttagcompound = new NBTTagCompound(); + writeToNBT(nbttagcompound); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 1, nbttagcompound); + } + + /** + * @param net + * @param packet + */ + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet) + { + readFromNBT(packet.func_148857_g()); + worldObj.func_147479_m(xCoord, yCoord, zCoord); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/20405a71ccdf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/20405a71ccdf00141dc6c962aec96210 new file mode 100644 index 0000000..a7ef758 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/20405a71ccdf00141dc6c962aec96210 @@ -0,0 +1,96 @@ +package darkknight.jewelrycraft.effects; + +import java.util.Iterator; +import java.util.List; +import net.minecraft.entity.Entity; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class EffectFeather extends ModifierEffects +{ + public EffectFeather() + { + super(new ItemStack(Items.feather)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive earrings + if (jewelry instanceof ItemEarrings && exists){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); + List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); + if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ + Iterator iterator = list.iterator(); + while (iterator.hasNext()){ + EntityArrow arrow = (EntityArrow)iterator.next(); + if ((arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0) && rand.nextInt(2 + JewelryNBT.numberOfModifiers(item)) == 0) arrow.setDead(); + } + } + } + if (jewelry instanceof ItemBracelet && exists){ + // Positive bracelet + if (player.motionY < 0) player.motionY *= (0.6D + (JewelryNBT.numberOfModifiers(item) - 1) * 0.03D); + if (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0) player.fallDistance = 0F; + // Negative bracelet + if (!player.isPotionActive(Potion.moveSlowdown) || player.getActivePotionEffect(Potion.moveSlowdown).getDuration() < 30) player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 80 + JewelryNBT.numberOfModifiers(item) * 10, 1 + JewelryNBT.numberOfModifiers(item) / 4)); + } + } + + @Override + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + NBTTagCompound enemyData = target.getEntityData(); + if (jewelry instanceof ItemRing && exists && enemyData.getInteger("reAttacked") == 0){ + // Negative ring + enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); + target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / (2F + (JewelryNBT.numberOfModifiers(item)-1)*0.1F)); + // Positive ring + if (rand.nextInt(2) == 0){ + enemyData.setInteger("stunTime", 51 - JewelryNBT.numberOfModifiers(item)); + enemyData.setBoolean("stunned", true); + } + playerInfo.setBoolean("weakDamage", true); + } + if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ + player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); + playerInfo.setBoolean("negateDamage", true); + } + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); + // Negative earrings + if (jewelry instanceof ItemEarrings && exists && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/4002026028de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/4002026028de00141043c3025ec60dfc new file mode 100644 index 0000000..1ff9c0d --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/4002026028de00141043c3025ec60dfc @@ -0,0 +1,465 @@ +package darkknight.jewelrycraft.events; + +import ibxm.Player; +import java.io.EOFException; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Iterator; +import java.util.List; +import java.util.Random; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompressedStreamTools; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.MathHelper; +import net.minecraftforge.client.event.EntityViewRenderEvent; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.event.entity.item.ItemTossEvent; +import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.living.LivingDeathEvent; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingFallEvent; +import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; +import net.minecraftforge.event.world.WorldEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.config.ConfigHandler; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.entities.EntityHalfHeart; +import darkknight.jewelrycraft.entities.EntityHeart; +import darkknight.jewelrycraft.item.ItemBaseJewelry; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemList; +import darkknight.jewelrycraft.network.PacketClearColorCache; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.network.PacketSendCurseStats; +import darkknight.jewelrycraft.network.PacketSendPlayerInfo; +import darkknight.jewelrycraft.util.BlockUtils; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +/** + * Code taken from OpenBlocks + */ +public class EntityEventHandler +{ + /** + * @param event + */ + @SubscribeEvent + public void onEntityJoinWorld(EntityJoinWorldEvent event) + { + if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + final Entity entity = event.entity; + if (!event.world.isRemote && entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); + if (shouldGiveManual){ + ItemStack manual = new ItemStack(ItemList.guide); + if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); + persistTag.setBoolean("givenGuide", true); + } + boolean render = persistTag.getBoolean("fancyRender"); + JewelrycraftMod.fancyRender = render; + for(Curse curse: Curse.getCurseList()) + if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); + persistTag.setBoolean("sendInfo", true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityUpdate(LivingUpdateEvent event) + { + Entity entity = event.entity; + if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ + entity.motionX *= 0D; + entity.motionZ *= 0D; + entity.motionY *= 0D; + entity.rotationPitch = entity.prevRotationPitch; + entity.rotationYaw = entity.prevRotationYaw; + entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); + if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); + entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); + if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ + player.motionX *= 0D; + player.motionZ *= 0D; + player.motionY *= 0D; + player.rotationPitch = entity.prevRotationPitch; + player.rotationYaw = entity.prevRotationYaw; + playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); + if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); + player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); + } + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if(item != null) ((ItemBaseJewelry)item.getItem()).action(item, player); + } + if (!player.worldObj.isRemote){ + if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); + if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); + } + if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); + if (playerInfo.getBoolean("sendInfo")){ + JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); + playerInfo.setBoolean("sendInfo", false); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && playerInfo.getInteger("cursePoints") > 0) curse.action(player.worldObj, player); + } + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityAttacked(LivingAttackEvent event) + { + Entity entity = event.entityLiving; + if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); + if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("negateDamage")){ + playerInfo.setBoolean("negateDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); + } + if (player.getHealth() != player.prevHealth){ + if (playerInfo.getFloat("WhiteHeart") > 0){ + playerInfo.setFloat("WhiteHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getFloat("BlueHeart") > 0){ + float damage = playerInfo.getFloat("BlueHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlueHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlueHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + }else if (playerInfo.getFloat("BlackHeart") > 0){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); + List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); + if (enemies != null && !enemies.isEmpty()){ + Iterator iterator = enemies.iterator(); + while (iterator.hasNext()){ + Entity enemy = (Entity)iterator.next(); + enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); + } + } + float damage = playerInfo.getFloat("BlackHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlackHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlackHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + } + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && playerInfo.getInteger("cursePoints") > 0) curse.attackedAction(player.worldObj, player); + }else if (event.source.getEntity() instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.source.getEntity(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("weakDamage")){ + playerInfo.setBoolean("weakDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && playerInfo.getInteger("cursePoints") > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onPlayerRespawn(PlayerEvent.Clone event) + { + EntityPlayer player = event.entityPlayer; + if (!player.worldObj.isRemote){ + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + } + playerInfo.setBoolean("sendInfo", true); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && playerInfo.getInteger("cursePoints") > 0) curse.respawnAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param player + * @param playerInfo + * @param curse + */ + public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) + { + if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ + int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); + Curse cur = Curse.availableCurses.get(no); + playerInfo.setInteger(cur.getName(), 1); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) + { + Curse cur = Curse.getCurseList().get(curseID); + if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ + playerInfo.setInteger(cur.getName(), grade); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + @SubscribeEvent + public void itemToss(ItemTossEvent event) + { + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, Variables.MODID); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss() && playerInfo.getInteger("cursePoints") > 0){ + EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); + entityitem.motionX = 0; + entityitem.motionZ = 0; + entityitem.motionY = 0.11000000298023224D; + event.player.worldObj.spawnEntityInWorld(entityitem); + List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; + Iterator plrs = players.iterator(); + while (plrs.hasNext()) + ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); + event.setCanceled(true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void playerFileSave(PlayerEvent.SaveToFile event) + { + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityDead(LivingDeathEvent event) + { + final Entity entity = event.entity; + Random rand = new Random(); + String[] types = {"Red", "Blue", "White", "Black"}; + if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ + EntityLiving live = (EntityLiving)entity; + String type = types[rand.nextInt(4)]; + if (rand.nextInt(6) == 0){ + if (type == "White"){ + EntityHeart h = new EntityHalfHeart(live.worldObj); + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + }else{ + for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ + EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; + EntityHeart h = hearts[rand.nextInt(2)]; + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + } + } + } + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ + for(Curse l: Curse.getCurseList()){ + if (playerInfo.getInteger(l.getName()) == 1){ + playerInfo.setInteger(l.getName(), 0); + if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); + }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); + } + if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + playerInfo.setBoolean("sendInfo", true); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldLoad(WorldEvent.Load event) + { + if (!event.world.isRemote){ + new File(JewelrycraftMod.dir + File.separator + Variables.MODID).mkdirs(); + JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + Variables.MODID, "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); + try{ + if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldSave(WorldEvent.Save event) + { + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogColors(EntityViewRenderEvent.FogColors event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + event.red = 0f; + event.green = 0f; + event.blue = 0f; + } + } + if (event.isCancelable()) event.setCanceled(true); + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogDensity(EntityViewRenderEvent.FogDensity event) + {} + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void renderFog(EntityViewRenderEvent.RenderFogEvent event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); + GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); + } + } + if (event.isCancelable()) event.setCanceled(true); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/609f909029de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/609f909029de00141043c3025ec60dfc new file mode 100644 index 0000000..7dee848 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/609f909029de00141043c3025ec60dfc @@ -0,0 +1,122 @@ +/** + * + */ +package darkknight.jewelrycraft.commands; + +/** + * @author Sorin + * + */ +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.command.WrongUsageException; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IChatComponent; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.events.EntityEventHandler; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; + +public class JewelrycraftCommands extends CommandBase +{ + private List aliases; + + public JewelrycraftCommands() + { + this.aliases = new ArrayList(); + this.aliases.add("jw"); + this.aliases.add("jewelry"); + } + + @Override + public String getCommandName() + { + return "jewelrycraft"; + } + + @Override + public String getCommandUsage(ICommandSender var1) + { + String use = "/jewelrycraft [points] | "; + use += "/jewelrycraft |"; + use += "/jewelrycraft "; + return use; + } + + @Override + public List getCommandAliases() + { + return aliases; + } + + @Override + public void processCommand(ICommandSender commandSender, String[] astring) + { + if (astring.length == 0 || astring[0].equals("help")) throw new WrongUsageException(getCommandUsage(commandSender)); + if (astring[0].equals("getCursePoints")){ + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + commandSender.addChatMessage(new ChatComponentTranslation(Integer.toString(JewelrycraftUtil.getCursePoints(entityplayermp)))); + }else if (astring[0].equals("addCursePoints")){ + int points = CommandBase.parseIntWithMin(commandSender, astring[2], 0); + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + JewelrycraftUtil.addCursePoints(entityplayermp, points); + }else if (astring[0].equals("setCursePoints")){ + int points = CommandBase.parseIntWithMin(commandSender, astring[2], 0); + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + JewelrycraftUtil.addCursePoints(entityplayermp, points - JewelrycraftUtil.getCursePoints(entityplayermp)); + }else if (astring[0].equals("addModifier")){ + ItemStack item = new ItemStack(CommandBase.getItemByText(commandSender, astring[1])); + EntityPlayerMP entityplayermp = getPlayer(commandSender, commandSender.getCommandSenderName()); + ArrayList modifier = new ArrayList(); + modifier.add(item); + JewelryNBT.addModifiers(entityplayermp.getCurrentEquippedItem(), modifier); + }else if (astring[0].equals("addCurse")){ + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + int curse = Integer.valueOf(astring[2]); + int grade = Integer.valueOf(astring[3]); + System.out.println("add curse " + curse + " " + grade); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(entityplayermp, "Jewelrycraft"); + if(curse < Curse.getCurseList().size() && grade <= 2) + { + EntityEventHandler.addCurse(entityplayermp, playerInfo, curse, grade); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + else if(curse >= Curse.getCurseList().size()) entityplayermp.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Curse ID exceedes the maximum value of " + (Curse.getCurseList().size() - 1))); + else entityplayermp.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Curse grade exceedes the maximum value of 2")); + + } + } + + @Override + public List addTabCompletionOptions(ICommandSender icommandsender, String[] astring) + { + final List MATCHES = new LinkedList(); + final String ARG_LC = astring[astring.length - 1].toLowerCase(); + if (astring.length == 1){ + if ("addCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addCursePoints"); + if ("getCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("getCursePoints"); + if ("setCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("setCursePoints"); + if ("addModifier".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addModifier"); + if ("addCurse".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addCurse"); + }else if (astring.length == 2){ + if (!astring[0].equals("addModifier")){ + for(String un: MinecraftServer.getServer().getAllUsernames()) + if (un.toLowerCase().startsWith(ARG_LC)) MATCHES.add(un); + }else if (!astring[0].equals("addCurse")) return getListOfStringsFromIterableMatchingLastWord(astring, Item.itemRegistry.getKeys()); + } + return MATCHES.isEmpty() ? null : MATCHES; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/804b704ea7ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/804b704ea7ce00141801ff0972626827 deleted file mode 100644 index 8ea597b..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/804b704ea7ce00141801ff0972626827 +++ /dev/null @@ -1,113 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import java.util.Iterator; -import java.util.List; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class EffectFeather extends ModifierEffects -{ - public EffectFeather() - { - super(new ItemStack(Items.feather)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - // Positive earrings - if (jewelry instanceof ItemEarrings && pos != -1){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); - List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); - if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ - Iterator iterator = list.iterator(); - while (iterator.hasNext()){ - EntityArrow arrow = (EntityArrow)iterator.next(); - if (rand.nextInt(3) == 0 && (arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0)) arrow.setDead(); - } - } - } - // Positive bracelet - if (jewelry instanceof ItemBracelet && pos != -1){ - if (player.motionY < 0) player.motionY *= 0.6D; - player.setAIMoveSpeed(player.getAIMoveSpeed() / 2); - player.fallDistance = 0F; - } - } - - @Override - public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - NBTTagCompound enemyData = target.getEntityData(); - if (jewelry instanceof ItemRing && pos != -1){ - if (target instanceof EntityPlayer){ - NBTTagCompound enemyInfo = PlayerUtils.getModPlayerPersistTag((EntityPlayer)target, "Jewelrycraft"); - if (enemyInfo.getInteger("reAttacked") == 0){ - enemyInfo.setInteger("reAttacked", enemyInfo.getInteger("reAttacked") + 1); - target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); - if (rand.nextInt(2) == 0){ - enemyInfo.setInteger("stunTime", 50); - enemyInfo.setBoolean("stunned", true); - } - } - }else if (enemyData.getInteger("reAttacked") == 0){ - enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); - if (rand.nextInt(2) == 0){ - enemyData.setInteger("stunTime", 50); - enemyData.setBoolean("stunned", true); - } - } - playerInfo.setBoolean("weakDamage", true); - } - if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (jewelry instanceof ItemNecklace && pos != -1 && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); - playerInfo.setBoolean("negateDamage", true); - } - // Negative necklace - if (jewelry instanceof ItemNecklace && pos != -1 && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); - // Negative earrings - if (jewelry instanceof ItemEarrings && pos != -1 && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/a0d5c9a72bde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/a0d5c9a72bde00141043c3025ec60dfc new file mode 100644 index 0000000..03f6fe0 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/a0d5c9a72bde00141043c3025ec60dfc @@ -0,0 +1,121 @@ +/** + * + */ +package darkknight.jewelrycraft.commands; + +/** + * @author Sorin + * + */ +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.command.WrongUsageException; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IChatComponent; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.events.EntityEventHandler; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; + +public class JewelrycraftCommands extends CommandBase +{ + private List aliases; + + public JewelrycraftCommands() + { + this.aliases = new ArrayList(); + this.aliases.add("jw"); + this.aliases.add("jewelry"); + } + + @Override + public String getCommandName() + { + return "jewelrycraft"; + } + + @Override + public String getCommandUsage(ICommandSender var1) + { + String use = "/jewelrycraft [points] | "; + use += "/jewelrycraft |"; + use += "/jewelrycraft "; + return use; + } + + @Override + public List getCommandAliases() + { + return aliases; + } + + @Override + public void processCommand(ICommandSender commandSender, String[] astring) + { + if (astring.length == 0 || astring[0].equals("help")) throw new WrongUsageException(getCommandUsage(commandSender)); + if (astring[0].equals("getCursePoints")){ + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + commandSender.addChatMessage(new ChatComponentTranslation(Integer.toString(JewelrycraftUtil.getCursePoints(entityplayermp)))); + }else if (astring[0].equals("addCursePoints")){ + int points = CommandBase.parseIntWithMin(commandSender, astring[2], 0); + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + JewelrycraftUtil.addCursePoints(entityplayermp, points); + }else if (astring[0].equals("setCursePoints")){ + int points = CommandBase.parseIntWithMin(commandSender, astring[2], 0); + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + JewelrycraftUtil.addCursePoints(entityplayermp, points - JewelrycraftUtil.getCursePoints(entityplayermp)); + }else if (astring[0].equals("addModifier")){ + ItemStack item = new ItemStack(CommandBase.getItemByText(commandSender, astring[1])); + EntityPlayerMP entityplayermp = getPlayer(commandSender, commandSender.getCommandSenderName()); + ArrayList modifier = new ArrayList(); + modifier.add(item); + JewelryNBT.addModifiers(entityplayermp.getCurrentEquippedItem(), modifier); + }else if (astring[0].equals("addCurse")){ + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + int curse = Integer.valueOf(astring[2]); + int grade = Integer.valueOf(astring[3]); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(entityplayermp, "Jewelrycraft"); + if(curse < Curse.getCurseList().size() && grade <= 2) + { + EntityEventHandler.addCurse(entityplayermp, playerInfo, curse, grade); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + else if(curse >= Curse.getCurseList().size()) entityplayermp.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Curse ID exceedes the maximum value of " + (Curse.getCurseList().size() - 1))); + else entityplayermp.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Curse grade exceedes the maximum value of 2")); + + } + } + + @Override + public List addTabCompletionOptions(ICommandSender icommandsender, String[] astring) + { + final List MATCHES = new LinkedList(); + final String ARG_LC = astring[astring.length - 1].toLowerCase(); + if (astring.length == 1){ + if ("addCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addCursePoints"); + if ("getCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("getCursePoints"); + if ("setCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("setCursePoints"); + if ("addModifier".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addModifier"); + if ("addCurse".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addCurse"); + }else if (astring.length == 2){ + if (!astring[0].equals("addModifier")){ + for(String un: MinecraftServer.getServer().getAllUsernames()) + if (un.toLowerCase().startsWith(ARG_LC)) MATCHES.add(un); + }else if (!astring[0].equals("addCurse")) return getListOfStringsFromIterableMatchingLastWord(astring, Item.itemRegistry.getKeys()); + } + return MATCHES.isEmpty() ? null : MATCHES; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/e064279b24cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/e064279b24cf00141c41f52413db5e31 deleted file mode 100644 index 8d5b853..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2/e064279b24cf00141c41f52413db5e31 +++ /dev/null @@ -1,36 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player, Entity target) - { - if (!world.isRemote && !(target instanceof EntityMob)){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (rand.nextInt(2) == 0){ - if(playerInfo.getFloat("BlackHeart") < 20F) playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 1.0F); - if(player.getMaxHealth() > 4F) player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() - 1.0F); - } - JewelrycraftUtil.addCursePoints(player, 10); - } - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/20/5081dc2706de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/20/5081dc2706de00141043c3025ec60dfc new file mode 100644 index 0000000..086c177 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/20/5081dc2706de00141043c3025ec60dfc @@ -0,0 +1,123 @@ +package darkknight.jewelrycraft.events; + +import java.util.Iterator; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderPlayerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.entities.renders.RenderHelper; +import darkknight.jewelrycraft.item.render.BraceletRender; +import darkknight.jewelrycraft.item.render.EarringsRender; +import darkknight.jewelrycraft.item.render.MaskRender; +import darkknight.jewelrycraft.model.ModelBracelet; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class PlayerRenderHandler +{ + MaskRender mask = new MaskRender(); + EarringsRender earrings = new EarringsRender(); + BraceletRender bracelet = new BraceletRender(); + public static String[] infamyCache = new String[]{}; + + @SubscribeEvent + public void renderScreen(RenderPlayerEvent.Specials.Post event) + { + ModelBiped main = event.renderer.modelBipedMain; + Iterator players = event.entityPlayer.worldObj.playerEntities.iterator(); + if (infamyCache != null){ + while (players.hasNext()){ + EntityPlayer player = players.next(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); +// System.out.println(event.entityPlayer + " | " + player + " | " + playerInfo); + if (checkPlayerInfamy(player.getDisplayName()) && event.entityPlayer.getDisplayName().equals(player.getDisplayName())){ + float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick; + float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick; + float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick; + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glRotatef(yawOffset, 0, -1, 0); + GL11.glRotatef(yaw - 90, 0, 1, 0); + GL11.glRotatef(pitch, 0, 0, -1); + GL11.glRotatef(90F, 0, 1F, 0F); + RenderHelper.translateToHeadLevel(player); + GL11.glScalef(1.6f, 1.6f, 1.6f); + GL11.glTranslatef(-0.25F, -0.25F, -0.25F); + mask.doRender(event.entityPlayer, 0F, 0F, 0F, 0F, 0F); + GL11.glPopMatrix(); + } + if (playerInfo.hasKey("ext17") && event.entityPlayer.getDisplayName().equals(player.getDisplayName())){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext17"); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick; + float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick; + float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick; + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glRotatef(yawOffset, 0, -1, 0); + GL11.glRotatef(yaw - 90, 0, 1, 0); + GL11.glRotatef(pitch, 0, 0, -1); + GL11.glRotatef(90F, 0, 1F, 0F); + RenderHelper.translateToHeadLevel(player); + GL11.glScalef(0.07f, 0.07f, 0.07f); + GL11.glTranslatef(0.0F, 3.0F, -2.0F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + earrings.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0F); + GL11.glPopMatrix(); + } + for(int i = 10; i <= 13; i++) + if (playerInfo.hasKey("ext" + i) && event.entityPlayer.getDisplayName().equals(player.getDisplayName())){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glTranslatef((i / 12 == 1) ? -0.275F : 0.475F, 0.2F + ((i / 12 == 1) ? (i - 12) * 0.08F : (i - 10) * 0.08F), 0F); + if (player.isSneaking()) GL11.glTranslatef(0F, 0F, -((i == 10 || i == 12) ? (0.1F) : 0.05F)); + if (i / 12 == 1){ + GL11.glScalef(0.05f, 0.03f, 0.05f); + GL11.glRotatef(main.bipedRightArm.rotateAngleX * (180F / (float)Math.PI), 1F, 0F, 0F); + GL11.glRotatef(main.bipedRightArm.rotateAngleY * (180F / (float)Math.PI), 0F, 1F, 0F); + GL11.glRotatef(main.bipedRightArm.rotateAngleZ * (180F / (float)Math.PI), 0F, 0F, 1F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + bracelet.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0.0F); + }else{ + GL11.glScalef(0.05f, 0.03f, 0.05f); + GL11.glRotatef(main.bipedLeftArm.rotateAngleX * (180F / (float)Math.PI), 1F, 0F, 0F); + GL11.glRotatef(main.bipedLeftArm.rotateAngleY * (180F / (float)Math.PI), 0F, 1F, 0F); + GL11.glRotatef(main.bipedLeftArm.rotateAngleZ * (180F / (float)Math.PI), 0F, 0F, 1F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + bracelet.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0F); + } + GL11.glPopMatrix(); + } + } + } + } + + /** + * @param string + * @return + */ + private boolean checkPlayerInfamy(String string) + { + for(int i = 0; i < infamyCache.length; i++) + if (infamyCache[i].equals(string)) return true; + return false; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/20/709a7da620cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/20/709a7da620cf00141c41f52413db5e31 deleted file mode 100644 index c465050..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/20/709a7da620cf00141c41f52413db5e31 +++ /dev/null @@ -1,459 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(player.worldObj, player, entity); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/20/80c96a3f6fcf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/20/80c96a3f6fcf00141de78e4a85bb2469 deleted file mode 100644 index 3f93448..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/20/80c96a3f6fcf00141de78e4a85bb2469 +++ /dev/null @@ -1,39 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player, Entity target) - { - if (!world.isRemote && !(target instanceof EntityMob) && target instanceof EntityLiving && target.canAttackWithItem()){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (rand.nextInt(2) == 0){ - if(playerInfo.getFloat("BlackHeart") < 20F) playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 1.0F); - if(player.getMaxHealth() >= 3F) player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() - 1.0F); - } - JewelrycraftUtil.addCursePoints(player, 10); - } - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/20/906f9d59f3cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/20/906f9d59f3cf0014170de422db399e8d deleted file mode 100644 index eaae507..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/20/906f9d59f3cf0014170de422db399e8d +++ /dev/null @@ -1,64 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null && chunkposition.chunkPosX != (int)player.posX && chunkposition.chunkPosZ != (int)player.posZ){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D*Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D*Math.signum((double)chunkposition.chunkPosZ - player.posZ); - System.out.println(chunkposition.chunkPosX + " " + 0.01D*Math.signum((double)chunkposition.chunkPosX - player.posX)); -// player.addChatMessage(new ChatComponentText("You hear a faint whisper telling you: \"You are getting closer, just " + (int)player.getDistance((double)chunkposition.chunkPosX, (double)chunkposition.chunkPosY, (double)chunkposition.chunkPosZ) + " more blocks to go.\"")); - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); -// if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/21/30a1626704de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/21/30a1626704de00141043c3025ec60dfc new file mode 100644 index 0000000..22e2003 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/21/30a1626704de00141043c3025ec60dfc @@ -0,0 +1,278 @@ +package darkknight.jewelrycraft.tileentity; + +import java.util.ArrayList; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import darkknight.jewelrycraft.block.BlockHandPedestal; +import darkknight.jewelrycraft.block.BlockList; +import darkknight.jewelrycraft.particles.EntityShadowsFX; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class TileEntityShadowEye extends TileEntity +{ + public int opening, timer, t = 20; + public boolean active; + public ArrayList pedestalItems = new ArrayList(); + ResourceLocation particleTexture = new ResourceLocation(Variables.MODID, "textures/particle/shadows.png"); + public EntityPlayer target; + + public TileEntityShadowEye() + { + opening = 1; + timer = 20; + active = false; + } + + /** + * @param nbt + */ + @Override + public void writeToNBT(NBTTagCompound nbt) + { + super.writeToNBT(nbt); + nbt.setInteger("opening", opening); + nbt.setInteger("timer", timer); + nbt.setBoolean("active", active); + } + + /** + * @param nbt + */ + @Override + public void readFromNBT(NBTTagCompound nbt) + { + super.readFromNBT(nbt); + opening = nbt.getInteger("opening"); + timer = nbt.getInteger("timer"); + active = nbt.getBoolean("active"); + } + + /** + * + */ + @Override + public void updateEntity() + { + super.updateEntity(); + boolean valid = isValidStructure(worldObj, xCoord, yCoord, zCoord, blockMetadata); + if (active) timer--; + if (active && target != null && this.getDistanceFrom(target.posX, target.posY, target.posZ) > 27D){ + active = false; + timer = -1; + } + if (opening == 4 && timer <= 0) active = false; + if (!active && timer <= 0 && opening != 1){ + if (t > 0) t--; + if (t <= 0){ + opening--; + t = 20; + } + } + if (opening == 2 && timer <= 0 && t == 10){ + addData(worldObj, xCoord, yCoord, zCoord); + TileEntityHandPedestal target = (TileEntityHandPedestal)worldObj.getTileEntity(xCoord, yCoord - 3, zCoord); + if (target != null && target.getHeldItemStack() != null) JewelryNBT.addModifiers(target.getHeldItemStack(), pedestalItems); + } + if (active && timer <= 0){ + if (opening < 4){ + opening++; + timer = 20; + } + if (valid && opening == 4) timer = 1000; + else if (!valid){ + active = false; + timer = -1; + } + } + for(Object player: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(10D, 10D, 10D))) + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", false); + } + if (active && opening == 4){ + float din = 6F; + int i = Minecraft.getMinecraft().gameSettings.particleSetting; + for(float x = -din; x <= din; x += 0.2F) + for(float z = -din; z <= din; z += 0.2F) + if (x * x + z * z >= din * din - 1 && x * x + z * z <= din * din + 1) Minecraft.getMinecraft().effectRenderer.addEffect(new EntityShadowsFX(worldObj, xCoord + x + 0.5F, yCoord - 0.5F, zCoord + z + 0.5F, 15F, 0.04F - 0.01F * i, particleTexture)); + for(int l = 0; l <= 2 - i; l++) + worldObj.spawnParticle("depthsuspend", xCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), yCoord - 2F + worldObj.rand.nextFloat(), zCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), 0, 0, 0); + for(Object player: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(10D, 10D, 10D))) + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", true); + } + } + } + + /** + * @param world + * @param x + * @param y + * @param z + * @param metadata + * @return + */ + public boolean isValidStructure(World world, int x, int y, int z, int metadata) + { + if (world.getBlockMetadata(x, y, z) == 0 || world.getBlockMetadata(x, y, z) == 2){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x + 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x + 1, y + 1, z) != 5) return false; + if (world.getBlock(x - 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x - 1, y + 1, z) != 5) return false; + // 2nd Layer + if (world.getBlock(x + 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 2, y, z) != 1) return false; + if (world.getBlock(x + 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 1, y, z) != 4) return false; + if (world.getBlock(x - 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 1, y, z) != 5) return false; + if (world.getBlock(x - 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 2, y, z) != 0) return false; + // 3rd Layer + if (world.getBlock(x + 2, y - 1, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 1, z) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x + 2, y - 2, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 2, z) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x + 2, y - 3, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 3, z) != Blocks.stonebrick) return false; + }else if (world.getBlockMetadata(x, y, z) == 1 || world.getBlockMetadata(x, y, z) == 3){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x, y + 1, z + 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z + 1) != 5) return false; + if (world.getBlock(x, y + 1, z - 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z - 1) != 5) return false; + // 2nd Layer + if (world.getBlock(x, y, z + 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 2) != 3) return false; + if (world.getBlock(x, y, z + 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 1) != 6) return false; + if (world.getBlock(x, y, z - 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 1) != 7) return false; + if (world.getBlock(x, y, z - 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 2) != 2) return false; + // 3rd Layer + if (world.getBlock(x, y - 1, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 1, z - 2) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x, y - 2, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 2, z - 2) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x, y - 3, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 3, z - 2) != Blocks.stonebrick) return false; + } + // 3rd Layer + if (world.getBlock(x - 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x - 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + // 4th Layer + if (world.getBlock(x - 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 2, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z + 4) != Blocks.stonebrick) return false; + // 5th Layer + // Pillars + if (world.getBlock(x - 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 3, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z + 4) != Blocks.stonebrick) return false; + // Pedestals + if (!(world.getBlock(x, y - 3, z) instanceof BlockHandPedestal)) return false; + if (world.getBlock(x - 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z + 2) != 1) return false; + if (world.getBlock(x - 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x - 5, y - 3, z) != 2) return false; + if (world.getBlock(x - 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z - 2) != 3) return false; + if (world.getBlock(x - 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z - 4) != 3) return false; + if (world.getBlock(x, y - 3, z - 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z - 5) != 4) return false; + if (world.getBlock(x + 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z - 4) != 5) return false; + if (world.getBlock(x + 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z - 2) != 5) return false; + if (world.getBlock(x + 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x + 5, y - 3, z) != 6) return false; + if (world.getBlock(x + 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z + 2) != 7) return false; + if (world.getBlock(x + 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z + 4) != 7) return false; + if (world.getBlock(x, y - 3, z + 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z + 5) != 0) return false; + if (world.getBlock(x - 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z + 4) != 1) return false; + return true; + } + + /** + * @param world + * @param x + * @param y + * @param z + */ + public void addData(World world, int x, int y, int z) + { + pedestalItems.clear(); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z - 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z + 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z + 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z + 4)); + } + + /** + * @param pedestal + */ + public void addPedestalInfo(TileEntityHandPedestal pedestal) + { + ItemStack heldItemStack; + if (pedestal != null && (heldItemStack = pedestal.getHeldItemStack()) != null){ + if (pedestalItems.isEmpty()) pedestalItems.add(heldItemStack.copy()); + else{ + boolean hasItem = false; + int index = 0; + for(int ind = 0; ind < pedestalItems.size() && !hasItem; ind++) + if (heldItemStack.getItem().equals(pedestalItems.get(ind).getItem()) && heldItemStack.getItemDamage() == pedestalItems.get(ind).getItemDamage()){ + index = ind; + hasItem = true; + if (heldItemStack.hasTagCompound() && pedestalItems.get(ind).hasTagCompound() && !heldItemStack.getTagCompound().equals(pedestalItems.get(ind).getTagCompound())) hasItem = false; + } + if (!hasItem) pedestalItems.add(heldItemStack.copy()); + else{ + ItemStack object = pedestalItems.get(index).copy(); + object.stackSize++; + pedestalItems.set(index, object); + } + } + pedestal.removeHeldItemStack(); + pedestal.openHand(); + } + else if(pedestal != null && target != null) JewelrycraftUtil.addCursePoints(target, 20); + } + + /** + * @return + */ + @Override + public Packet getDescriptionPacket() + { + NBTTagCompound nbttagcompound = new NBTTagCompound(); + writeToNBT(nbttagcompound); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 1, nbttagcompound); + } + + /** + * @param net + * @param packet + */ + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet) + { + readFromNBT(packet.func_148857_g()); + worldObj.func_147479_m(xCoord, yCoord, zCoord); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/21/801465eccbdf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/21/801465eccbdf00141dc6c962aec96210 new file mode 100644 index 0000000..02ffc1e --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/21/801465eccbdf00141dc6c962aec96210 @@ -0,0 +1,98 @@ +package darkknight.jewelrycraft.effects; + +import java.util.Iterator; +import java.util.List; +import net.minecraft.entity.Entity; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class EffectFeather extends ModifierEffects +{ + public EffectFeather() + { + super(new ItemStack(Items.feather)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive earrings + if (jewelry instanceof ItemEarrings && exists){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); + List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); + if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ + Iterator iterator = list.iterator(); + while (iterator.hasNext()){ + EntityArrow arrow = (EntityArrow)iterator.next(); + if ((arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0) && rand.nextInt(2 + JewelryNBT.numberOfModifiers(item)) == 0) arrow.setDead(); + } + } + } + + if (jewelry instanceof ItemBracelet && exists){ + // Positive bracelet + if (player.motionY < 0) player.motionY *= (0.6D + (JewelryNBT.numberOfModifiers(item) - 1)*0.03D); + if (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0) player.fallDistance = 0F; + // Negative bracelet + if (!player.isPotionActive(Potion.moveSlowdown) || player.getActivePotionEffect(Potion.moveSlowdown).getDuration() < 30) + player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 80 + JewelryNBT.numberOfModifiers(item)*10, 1 + JewelryNBT.numberOfModifiers(item)/4)); + } + } + + @Override + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + NBTTagCompound enemyData = target.getEntityData(); + if (jewelry instanceof ItemRing && exists && enemyData.getInteger("reAttacked") == 0){ + // Negative ring + enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); + target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); + // Positive ring + if (rand.nextInt(2) == 0){ + enemyData.setInteger("stunTime", 50); + enemyData.setBoolean("stunned", true); + } + playerInfo.setBoolean("weakDamage", true); + } + if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ + player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); + playerInfo.setBoolean("negateDamage", true); + } + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); + // Negative earrings + if (jewelry instanceof ItemEarrings && exists && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/21/90210400bbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/21/90210400bbd000141b65e2fc7f94332d deleted file mode 100644 index 6cb5af7..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/21/90210400bbd000141b65e2fc7f94332d +++ /dev/null @@ -1,112 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/22/400e338dbcd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/22/400e338dbcd000141b65e2fc7f94332d deleted file mode 100644 index 97ec4e0..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/22/400e338dbcd000141b65e2fc7f94332d +++ /dev/null @@ -1,238 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - } -// if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_LIGHT0); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } -// if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/22/50c220fcb9d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/22/50c220fcb9d000141b65e2fc7f94332d deleted file mode 100644 index 8068fcb..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/22/50c220fcb9d000141b65e2fc7f94332d +++ /dev/null @@ -1,232 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); -// GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/22/c083e9b42bde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/22/c083e9b42bde00141043c3025ec60dfc new file mode 100644 index 0000000..0faea2e --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/22/c083e9b42bde00141043c3025ec60dfc @@ -0,0 +1,122 @@ +/** + * + */ +package darkknight.jewelrycraft.commands; + +/** + * @author Sorin + * + */ +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.command.WrongUsageException; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IChatComponent; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.events.EntityEventHandler; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; + +public class JewelrycraftCommands extends CommandBase +{ + private List aliases; + + public JewelrycraftCommands() + { + this.aliases = new ArrayList(); + this.aliases.add("jw"); + this.aliases.add("jewelry"); + } + + @Override + public String getCommandName() + { + return "jewelrycraft"; + } + + @Override + public String getCommandUsage(ICommandSender var1) + { + String use = "/jewelrycraft [points] | "; + use += "/jewelrycraft |"; +// use += "/jewelrycraft "; + return use; + } + + @Override + public List getCommandAliases() + { + return aliases; + } + + @Override + public void processCommand(ICommandSender commandSender, String[] astring) + { + if (astring.length == 0 || astring[0].equals("help")) throw new WrongUsageException(getCommandUsage(commandSender)); + if (astring[0].equals("getCursePoints")){ + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + commandSender.addChatMessage(new ChatComponentTranslation(Integer.toString(JewelrycraftUtil.getCursePoints(entityplayermp)))); + }else if (astring[0].equals("addCursePoints")){ + int points = CommandBase.parseIntWithMin(commandSender, astring[2], 0); + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + JewelrycraftUtil.addCursePoints(entityplayermp, points); + }else if (astring[0].equals("setCursePoints")){ + int points = CommandBase.parseIntWithMin(commandSender, astring[2], 0); + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + JewelrycraftUtil.addCursePoints(entityplayermp, points - JewelrycraftUtil.getCursePoints(entityplayermp)); + }else if (astring[0].equals("addModifier")){ + ItemStack item = new ItemStack(CommandBase.getItemByText(commandSender, astring[1])); + EntityPlayerMP entityplayermp = getPlayer(commandSender, commandSender.getCommandSenderName()); + ArrayList modifier = new ArrayList(); + modifier.add(item); + JewelryNBT.addModifiers(entityplayermp.getCurrentEquippedItem(), modifier); + } +// else if (astring[0].equals("addCurse")){ +// EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); +// int curse = Integer.valueOf(astring[2]); +// int grade = Integer.valueOf(astring[3]); +// NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(entityplayermp, "Jewelrycraft"); +// if(curse < Curse.getCurseList().size() && grade <= 2) +// { +// EntityEventHandler.addCurse(entityplayermp, playerInfo, curse, grade); +// JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); +// } +// else if(curse >= Curse.getCurseList().size()) entityplayermp.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Curse ID exceedes the maximum value of " + (Curse.getCurseList().size() - 1))); +// else entityplayermp.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Curse grade exceedes the maximum value of 2")); +// +// } + } + + @Override + public List addTabCompletionOptions(ICommandSender icommandsender, String[] astring) + { + final List MATCHES = new LinkedList(); + final String ARG_LC = astring[astring.length - 1].toLowerCase(); + if (astring.length == 1){ + if ("addCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addCursePoints"); + if ("getCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("getCursePoints"); + if ("setCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("setCursePoints"); + if ("addModifier".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addModifier"); +// if ("addCurse".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addCurse"); + }else if (astring.length == 2){ + if (!astring[0].equals("addModifier")){ + for(String un: MinecraftServer.getServer().getAllUsernames()) + if (un.toLowerCase().startsWith(ARG_LC)) MATCHES.add(un); + }else if (!astring[0].equals("addCurse")) return getListOfStringsFromIterableMatchingLastWord(astring, Item.itemRegistry.getKeys()); + } + return MATCHES.isEmpty() ? null : MATCHES; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/00c5f4c902de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/00c5f4c902de00141043c3025ec60dfc new file mode 100644 index 0000000..21075d9 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/00c5f4c902de00141043c3025ec60dfc @@ -0,0 +1,131 @@ +package darkknight.jewelrycraft.block; + +import java.util.Random; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import darkknight.jewelrycraft.tileentity.TileEntityShadowEye; + +public class BlockShadowEye extends BlockContainer +{ + Random rand = new Random(); + + protected BlockShadowEye() + { + super(Material.rock); + } + + /** + * @param world + * @param var2 + * @return + */ + @Override + public TileEntity createNewTileEntity(World world, int var2) + { + return new TileEntityShadowEye(); + } + + /** + * @return + */ + @Override + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * @param iblockaccess + * @param i + * @param j + * @param k + * @param l + * @return + */ + @Override + public boolean shouldSideBeRendered(IBlockAccess iblockaccess, int i, int j, int k, int l) + { + return false; + } + + /** + * @return + */ + @Override + public boolean isOpaqueCube() + { + return false; + } + + /** + * @return + */ + @Override + public int getRenderType() + { + return -1; + } + + /** + * @param world + * @param i + * @param j + * @param k + * @param entityPlayer + * @param par6 + * @param par7 + * @param par8 + * @param par9 + * @return + */ + @Override + public boolean onBlockActivated(World world, int i, int j, int k, EntityPlayer entityPlayer, int par6, float par7, float par8, float par9) + { + TileEntityShadowEye tile = (TileEntityShadowEye)world.getTileEntity(i, j, k); + tile.active = true; + return true; + } + + /** + * @param world + * @param i + * @param j + * @param k + * @param player + */ + @Override + public void onBlockClicked(World world, int i, int j, int k, EntityPlayer player) + {} + + /** + * @param world + * @param i + * @param j + * @param k + * @param entityLiving + * @param par6ItemStack + */ + @Override + public void onBlockPlacedBy(World world, int i, int j, int k, EntityLivingBase entityLiving, ItemStack par6ItemStack) + { + int rotation = MathHelper.floor_double(entityLiving.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + world.setBlockMetadataWithNotify(i, j, k, rotation, 2); + } + + /** + * @param icon + */ + @Override + public void registerBlockIcons(IIconRegister icon) + { + blockIcon = icon.registerIcon("minecraft:stonebrick"); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/408dbb6524cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/408dbb6524cf00141c41f52413db5e31 deleted file mode 100644 index 73985da..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/408dbb6524cf00141c41f52413db5e31 +++ /dev/null @@ -1,36 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player, Entity target) - { - if (!world.isRemote && !(target instanceof EntityMob)){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (rand.nextInt(2) == 0){ - playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 1.0F); - player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() - 1.0F); - } - JewelrycraftUtil.addCursePoints(player, 10); - } - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/7059c98a6edd001412dce27813e7be4a b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/7059c98a6edd001412dce27813e7be4a new file mode 100644 index 0000000..7f00d29 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/23/7059c98a6edd001412dce27813e7be4a @@ -0,0 +1,108 @@ +/** + * + */ +package darkknight.jewelrycraft.entities; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureAttribute; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.world.World; + +/** + * @author Sorin + */ +public class EntityHeart extends EntityLiving +{ + public EntityHeart(World world) + { + super(world); + this.setSize(0.4F, 0.4F); + } + + public boolean isEntityInvulnerable() + { + return true; + } + + protected boolean canDespawn() + { + return false; + } + + @Override + public void onCollideWithPlayer(EntityPlayer player) + { + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (getType() == "Red" && player.getHealth() < player.getMaxHealth()){ + player.heal(2f); + this.setDead(); + } + else if (getType() != "Red" && playerInfo.getFloat(getType() + "Heart") < 20f){ + playerInfo.setFloat(getType() + "Heart", playerInfo.getFloat(getType() + "Heart") + 2.0F <= 20f ? playerInfo.getFloat(getType() + "Heart") + 2.0F : 20f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo(player)); + this.setDead(); + } + } + + @Override + protected void updateEntityActionState() + { + } + + @SideOnly(Side.CLIENT) + public boolean canRenderOnFire() + { + return false; + } + + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(16, "Red"); + } + + public void writeEntityToNBT(NBTTagCompound nbt) + { + super.writeEntityToNBT(nbt); + nbt.setString("Type", getType()); + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + public void readEntityFromNBT(NBTTagCompound nbt) + { + super.readEntityFromNBT(nbt); + setType(nbt.getString("Type")); + } + + public String getType() + { + return this.dataWatcher.getWatchableObjectString(16); + } + + public void setType(String type) + { + this.dataWatcher.updateObject(16, type); + } + + public EnumCreatureAttribute getCreatureAttribute() + { + return EnumCreatureAttribute.UNDEAD; + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/24/e06abfb6f6cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/24/e06abfb6f6cf0014170de422db399e8d deleted file mode 100644 index 7ba1c1a..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/24/e06abfb6f6cf0014170de422db399e8d +++ /dev/null @@ -1,66 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && rand.nextInt(30) == 0) player.setPositionAndUpdate(player.posX + rand.nextInt(30)*(rand.nextBoolean()?-1:1), player.posY, player.posZ + rand.nextInt(30)*(rand.nextBoolean()?-1:1)); - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/10ad6571bed000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/10ad6571bed000141b65e2fc7f94332d deleted file mode 100644 index 4f4fa8a..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/10ad6571bed000141b65e2fc7f94332d +++ /dev/null @@ -1,240 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.block.BlockShadowEye; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else if (item.isItemEqual(new ItemStack(BlockList.handPedestal))){ - GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.2F, 0F, 0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ - // GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if (xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - if (Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockShadowEye) GL11.glTranslatef(0F, 0F, 0.025F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/6035720f6fcf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/6035720f6fcf00141de78e4a85bb2469 deleted file mode 100644 index a01dbd5..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/6035720f6fcf00141de78e4a85bb2469 +++ /dev/null @@ -1,36 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player, Entity target) - { - if (!world.isRemote && !(target instanceof EntityMob)){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (rand.nextInt(2) == 0){ - if(playerInfo.getFloat("BlackHeart") < 20F) playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 1.0F); - if(player.getMaxHealth() >= 3F) player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() - 1.0F); - } - JewelrycraftUtil.addCursePoints(player, 10); - } - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/60b18a49bdd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/60b18a49bdd000141b65e2fc7f94332d deleted file mode 100644 index 1d33b9b..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/60b18a49bdd000141b65e2fc7f94332d +++ /dev/null @@ -1,125 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.shadowEye), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - - case 5: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_slab, 1, 0), 0, -90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.shadowEye), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - break; - } - } - - @Override - public int getMaxPages() - { - return 5; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/60f0dd6d12cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/60f0dd6d12cf00141c41f52413db5e31 deleted file mode 100644 index 0a75a6f..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/60f0dd6d12cf00141c41f52413db5e31 +++ /dev/null @@ -1,453 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - // int grade = 1 + player.worldObj.rand.nextInt(2); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - // if (!entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/f08a3fedf1cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/f08a3fedf1cf0014170de422db399e8d deleted file mode 100644 index ce8b031..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/25/f08a3fedf1cf0014170de422db399e8d +++ /dev/null @@ -1,63 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D*Math.signum((double)chunkposition.chunkPosX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D*Math.signum((double)chunkposition.chunkPosZ); -// player.addChatMessage(new ChatComponentText("You hear a faint whisper telling you: \"You are getting closer, just " + (int)player.getDistance((double)chunkposition.chunkPosX, (double)chunkposition.chunkPosY, (double)chunkposition.chunkPosZ) + " more blocks to go.\"")); - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); -// if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/26/40b2f4a3b8d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/26/40b2f4a3b8d000141b65e2fc7f94332d deleted file mode 100644 index c0d0e10..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/26/40b2f4a3b8d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 153, 12, 12); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, x, y - 10); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 15, y + 25, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/26/801b0ce922cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/26/801b0ce922cf00141c41f52413db5e31 deleted file mode 100644 index 52d6801..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/26/801b0ce922cf00141c41f52413db5e31 +++ /dev/null @@ -1,460 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - event.setCanceled(true); - if (player.getHealth() != player.prevHealth || player.getHealth() <= 0){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/26/905604776fcf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/26/905604776fcf00141de78e4a85bb2469 deleted file mode 100644 index f4366f2..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/26/905604776fcf00141de78e4a85bb2469 +++ /dev/null @@ -1,39 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player, Entity target) - { - if (!world.isRemote && !(target instanceof EntityMob) && target instanceof EntityLiving && !(target instanceof EntityHeart) && !(target instanceof EntityHalfHeart) && target.canAttackWithItem()){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (rand.nextInt(2) == 0){ - if(playerInfo.getFloat("BlackHeart") < 20F) playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 1.0F); - if(player.getMaxHealth() >= 3F) player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() - 1.0F); - } - JewelrycraftUtil.addCursePoints(player, 10); - } - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/27/10f40556bbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/27/10f40556bbd000141b65e2fc7f94332d deleted file mode 100644 index 749c6cd..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/27/10f40556bbd000141b65e2fc7f94332d +++ /dev/null @@ -1,112 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/27/60dda1c0bcd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/27/60dda1c0bcd000141b65e2fc7f94332d deleted file mode 100644 index 58d6181..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/27/60dda1c0bcd000141b65e2fc7f94332d +++ /dev/null @@ -1,245 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_LIGHT0); - GL11.glDisable(GL11.GL_LIGHT1); - } - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - GL11.glDisable(GL11.GL_LIGHT1); - GL11.glDisable(GL11.GL_LIGHT0); - GL11.glDisable(GL11.GL_LIGHTING); - } - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/27/a01e32b5bbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/27/a01e32b5bbd000141b65e2fc7f94332d deleted file mode 100644 index ce2944b..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/27/a01e32b5bbd000141b65e2fc7f94332d +++ /dev/null @@ -1,114 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 230, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/30de043304de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/30de043304de00141043c3025ec60dfc new file mode 100644 index 0000000..5195e86 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/30de043304de00141043c3025ec60dfc @@ -0,0 +1,278 @@ +package darkknight.jewelrycraft.tileentity; + +import java.util.ArrayList; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import darkknight.jewelrycraft.block.BlockHandPedestal; +import darkknight.jewelrycraft.block.BlockList; +import darkknight.jewelrycraft.particles.EntityShadowsFX; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class TileEntityShadowEye extends TileEntity +{ + public int opening, timer, t = 20; + public boolean active; + public ArrayList pedestalItems = new ArrayList(); + ResourceLocation particleTexture = new ResourceLocation(Variables.MODID, "textures/particle/shadows.png"); + public EntityPlayer target; + + public TileEntityShadowEye() + { + opening = 1; + timer = 20; + active = false; + } + + /** + * @param nbt + */ + @Override + public void writeToNBT(NBTTagCompound nbt) + { + super.writeToNBT(nbt); + nbt.setInteger("opening", opening); + nbt.setInteger("timer", timer); + nbt.setBoolean("active", active); + } + + /** + * @param nbt + */ + @Override + public void readFromNBT(NBTTagCompound nbt) + { + super.readFromNBT(nbt); + opening = nbt.getInteger("opening"); + timer = nbt.getInteger("timer"); + active = nbt.getBoolean("active"); + } + + /** + * + */ + @Override + public void updateEntity() + { + super.updateEntity(); + boolean valid = isValidStructure(worldObj, xCoord, yCoord, zCoord, blockMetadata); + if (active) timer--; + if (active && target != null && this.getDistanceFrom(target.posX, target.posY, target.posZ) > 8D){ + active = false; + timer = -1; + } + if (opening == 4 && timer <= 0) active = false; + if (!active && timer <= 0 && opening != 1){ + if (t > 0) t--; + if (t <= 0){ + opening--; + t = 20; + } + } + if (opening == 2 && timer <= 0 && t == 10){ + addData(worldObj, xCoord, yCoord, zCoord); + TileEntityHandPedestal target = (TileEntityHandPedestal)worldObj.getTileEntity(xCoord, yCoord - 3, zCoord); + if (target != null && target.getHeldItemStack() != null) JewelryNBT.addModifiers(target.getHeldItemStack(), pedestalItems); + } + if (active && timer <= 0){ + if (opening < 4){ + opening++; + timer = 20; + } + if (valid && opening == 4) timer = 1000; + else if (!valid){ + active = false; + timer = -1; + } + } + for(Object player: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(8D, 8D, 8D))) + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", false); + } + if (active && opening == 4){ + float din = 6F; + int i = Minecraft.getMinecraft().gameSettings.particleSetting; + for(float x = -din; x <= din; x += 0.2F) + for(float z = -din; z <= din; z += 0.2F) + if (x * x + z * z >= din * din - 1 && x * x + z * z <= din * din + 1) Minecraft.getMinecraft().effectRenderer.addEffect(new EntityShadowsFX(worldObj, xCoord + x + 0.5F, yCoord - 0.5F, zCoord + z + 0.5F, 15F, 0.04F - 0.01F * i, particleTexture)); + for(int l = 0; l <= 2 - i; l++) + worldObj.spawnParticle("depthsuspend", xCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), yCoord - 2F + worldObj.rand.nextFloat(), zCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), 0, 0, 0); + for(Object player: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(8D, 8D, 8D))) + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", true); + } + } + } + + /** + * @param world + * @param x + * @param y + * @param z + * @param metadata + * @return + */ + public boolean isValidStructure(World world, int x, int y, int z, int metadata) + { + if (world.getBlockMetadata(x, y, z) == 0 || world.getBlockMetadata(x, y, z) == 2){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x + 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x + 1, y + 1, z) != 5) return false; + if (world.getBlock(x - 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x - 1, y + 1, z) != 5) return false; + // 2nd Layer + if (world.getBlock(x + 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 2, y, z) != 1) return false; + if (world.getBlock(x + 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 1, y, z) != 4) return false; + if (world.getBlock(x - 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 1, y, z) != 5) return false; + if (world.getBlock(x - 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 2, y, z) != 0) return false; + // 3rd Layer + if (world.getBlock(x + 2, y - 1, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 1, z) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x + 2, y - 2, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 2, z) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x + 2, y - 3, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 3, z) != Blocks.stonebrick) return false; + }else if (world.getBlockMetadata(x, y, z) == 1 || world.getBlockMetadata(x, y, z) == 3){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x, y + 1, z + 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z + 1) != 5) return false; + if (world.getBlock(x, y + 1, z - 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z - 1) != 5) return false; + // 2nd Layer + if (world.getBlock(x, y, z + 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 2) != 3) return false; + if (world.getBlock(x, y, z + 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 1) != 6) return false; + if (world.getBlock(x, y, z - 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 1) != 7) return false; + if (world.getBlock(x, y, z - 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 2) != 2) return false; + // 3rd Layer + if (world.getBlock(x, y - 1, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 1, z - 2) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x, y - 2, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 2, z - 2) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x, y - 3, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 3, z - 2) != Blocks.stonebrick) return false; + } + // 3rd Layer + if (world.getBlock(x - 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x - 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + // 4th Layer + if (world.getBlock(x - 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 2, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z + 4) != Blocks.stonebrick) return false; + // 5th Layer + // Pillars + if (world.getBlock(x - 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 3, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z + 4) != Blocks.stonebrick) return false; + // Pedestals + if (!(world.getBlock(x, y - 3, z) instanceof BlockHandPedestal)) return false; + if (world.getBlock(x - 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z + 2) != 1) return false; + if (world.getBlock(x - 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x - 5, y - 3, z) != 2) return false; + if (world.getBlock(x - 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z - 2) != 3) return false; + if (world.getBlock(x - 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z - 4) != 3) return false; + if (world.getBlock(x, y - 3, z - 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z - 5) != 4) return false; + if (world.getBlock(x + 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z - 4) != 5) return false; + if (world.getBlock(x + 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z - 2) != 5) return false; + if (world.getBlock(x + 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x + 5, y - 3, z) != 6) return false; + if (world.getBlock(x + 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z + 2) != 7) return false; + if (world.getBlock(x + 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z + 4) != 7) return false; + if (world.getBlock(x, y - 3, z + 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z + 5) != 0) return false; + if (world.getBlock(x - 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z + 4) != 1) return false; + return true; + } + + /** + * @param world + * @param x + * @param y + * @param z + */ + public void addData(World world, int x, int y, int z) + { + pedestalItems.clear(); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z - 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z + 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z + 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z + 4)); + } + + /** + * @param pedestal + */ + public void addPedestalInfo(TileEntityHandPedestal pedestal) + { + ItemStack heldItemStack; + if (pedestal != null && (heldItemStack = pedestal.getHeldItemStack()) != null){ + if (pedestalItems.isEmpty()) pedestalItems.add(heldItemStack.copy()); + else{ + boolean hasItem = false; + int index = 0; + for(int ind = 0; ind < pedestalItems.size() && !hasItem; ind++) + if (heldItemStack.getItem().equals(pedestalItems.get(ind).getItem()) && heldItemStack.getItemDamage() == pedestalItems.get(ind).getItemDamage()){ + index = ind; + hasItem = true; + if (heldItemStack.hasTagCompound() && pedestalItems.get(ind).hasTagCompound() && !heldItemStack.getTagCompound().equals(pedestalItems.get(ind).getTagCompound())) hasItem = false; + } + if (!hasItem) pedestalItems.add(heldItemStack.copy()); + else{ + ItemStack object = pedestalItems.get(index).copy(); + object.stackSize++; + pedestalItems.set(index, object); + } + } + pedestal.removeHeldItemStack(); + pedestal.openHand(); + } + else if(pedestal != null && target != null) JewelrycraftUtil.addCursePoints(target, 20); + } + + /** + * @return + */ + @Override + public Packet getDescriptionPacket() + { + NBTTagCompound nbttagcompound = new NBTTagCompound(); + writeToNBT(nbttagcompound); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 1, nbttagcompound); + } + + /** + * @param net + * @param packet + */ + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet) + { + readFromNBT(packet.func_148857_g()); + worldObj.func_147479_m(xCoord, yCoord, zCoord); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/40247e5d2dde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/40247e5d2dde00141043c3025ec60dfc new file mode 100644 index 0000000..2850188 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/40247e5d2dde00141043c3025ec60dfc @@ -0,0 +1,106 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() - 50 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ +// for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(5, resolution.getScaledHeight() - 50 + 16 * count, 1 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + tagCache.getFloat("BlackHeart"), 15, resolution.getScaledHeight() - 40 + 16 * count, 16777215); +// if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() - 50 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/5054a9ea70cf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/5054a9ea70cf00141de78e4a85bb2469 deleted file mode 100644 index aa815f7..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/5054a9ea70cf00141de78e4a85bb2469 +++ /dev/null @@ -1,41 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player, Entity target) - { - if (rand.nextInt(5) == 0 && !world.isRemote && !(target instanceof EntityMob) && target instanceof EntityLiving && !(target instanceof EntityHeart) && !(target instanceof EntityHalfHeart) && target.canAttackWithItem()){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.getFloat("BlackHeart") < 20F) playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 1.0F); - if (player.getMaxHealth() >= 3F){ - player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() - 1.0F); - player.setHealth(player.getHealth() - 1.0F); - } - JewelrycraftUtil.addCursePoints(player, 10); - } - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/9027920627de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/9027920627de00141043c3025ec60dfc new file mode 100644 index 0000000..cb4c99f --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/9027920627de00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 15 + (size + 6) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/90616b3e85d000141a1fb02abca5ff55 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/90616b3e85d000141a1fb02abca5ff55 deleted file mode 100644 index 3a51bcb..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/90616b3e85d000141a1fb02abca5ff55 +++ /dev/null @@ -1,79 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.block.BlockOre; -import net.minecraft.client.Minecraft; -import net.minecraft.client.settings.GameSettings.Options; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - private boolean originalVD = false; - private float originalViewDistance; - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && rand.nextInt(500) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30)*(rand.nextBoolean()?-1:1), player.posY, player.posZ + rand.nextInt(30)*(rand.nextBoolean()?-1:1)); - if (jewelry instanceof ItemRing && pos != -1 && rand.nextInt(500) == 12){ - Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 1.0F); - for(int i = (int)player.posX - 2; i <= (int)player.posX + 2; i++) - for(int j = (int)player.posY - 2; j <= (int)player.posY + 2; j++) - for(int k = (int)player.posZ - 2; k <= (int)player.posZ + 2; k++) - if(player.worldObj.getBlock(i, j, k) instanceof BlockOre) - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "You sense some " + player.worldObj.getBlock(i, j, k).getLocalizedName() + " around you.")); - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/b0c118102dde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/b0c118102dde00141043c3025ec60dfc new file mode 100644 index 0000000..ed28c34 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/28/b0c118102dde00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() - 25 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() - 25 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() - 25 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/6015a33bd1df00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/6015a33bd1df00141dc6c962aec96210 new file mode 100644 index 0000000..dc682d5 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/6015a33bd1df00141dc6c962aec96210 @@ -0,0 +1,122 @@ +/** + * + */ +package darkknight.jewelrycraft.commands; + +/** + * @author Sorin + * + */ +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.command.WrongUsageException; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IChatComponent; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.events.EntityEventHandler; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; + +public class JewelrycraftCommands extends CommandBase +{ + private List aliases; + + public JewelrycraftCommands() + { + this.aliases = new ArrayList(); + this.aliases.add("jw"); + this.aliases.add("jewelry"); + } + + @Override + public String getCommandName() + { + return "jewelrycraft"; + } + + @Override + public String getCommandUsage(ICommandSender var1) + { + String use = "/jewelrycraft [points]"; + // use += "/jewelrycraft |"; + // use += "/jewelrycraft "; + return use; + } + + @Override + public List getCommandAliases() + { + return aliases; + } + + @Override + public void processCommand(ICommandSender commandSender, String[] astring) + { + if (astring.length == 0 || astring[0].equals("help")) throw new WrongUsageException(getCommandUsage(commandSender)); + if (astring[0].equals("getCursePoints")){ + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + commandSender.addChatMessage(new ChatComponentTranslation(Integer.toString(JewelrycraftUtil.getCursePoints(entityplayermp)))); + }else if (astring[0].equals("addCursePoints")){ + int points = CommandBase.parseIntWithMin(commandSender, astring[2], 0); + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + JewelrycraftUtil.addCursePoints(entityplayermp, points); + }else if (astring[0].equals("setCursePoints")){ + int points = CommandBase.parseIntWithMin(commandSender, astring[2], 0); + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + JewelrycraftUtil.addCursePoints(entityplayermp, points - JewelrycraftUtil.getCursePoints(entityplayermp)); + } + // else if (astring[0].equals("addModifier")){ + // ItemStack item = new ItemStack(CommandBase.getItemByText(commandSender, astring[1])); + // EntityPlayerMP entityplayermp = getPlayer(commandSender, commandSender.getCommandSenderName()); + // ArrayList modifier = new ArrayList(); + // modifier.add(item); + // JewelryNBT.addModifiers(entityplayermp.getCurrentEquippedItem(), modifier); + // } + // else if (astring[0].equals("addCurse")){ + // EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + // int curse = Integer.valueOf(astring[2]); + // int grade = Integer.valueOf(astring[3]); + // NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(entityplayermp, "Jewelrycraft"); + // if(curse < Curse.getCurseList().size() && grade <= 2) + // { + // EntityEventHandler.addCurse(entityplayermp, playerInfo, curse, grade); + // JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + // } + // else if(curse >= Curse.getCurseList().size()) entityplayermp.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Curse ID exceedes the maximum value of " + (Curse.getCurseList().size() - 1))); + // else entityplayermp.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Curse grade exceedes the maximum value of 2")); + // + // } + } + + @Override + public List addTabCompletionOptions(ICommandSender icommandsender, String[] astring) + { + final List MATCHES = new LinkedList(); + final String ARG_LC = astring[astring.length - 1].toLowerCase(); + if (astring.length == 1){ + if ("addCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addCursePoints"); + if ("getCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("getCursePoints"); + if ("setCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("setCursePoints"); + // if ("addModifier".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addModifier"); + // if ("addCurse".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addCurse"); + }else if (astring.length == 2){ + for(String un: MinecraftServer.getServer().getAllUsernames()) + if (un.toLowerCase().startsWith(ARG_LC)) MATCHES.add(un); + // else if (!astring[0].equals("addCurse")) return getListOfStringsFromIterableMatchingLastWord(astring, Item.itemRegistry.getKeys()); + } + return MATCHES.isEmpty() ? null : MATCHES; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/b02c9da3a5ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/b02c9da3a5ce00141801ff0972626827 deleted file mode 100644 index ef937e9..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/b02c9da3a5ce00141801ff0972626827 +++ /dev/null @@ -1,104 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import java.util.Iterator; -import java.util.List; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class EffectFeather extends ModifierEffects -{ - public EffectFeather() - { - super(new ItemStack(Items.feather)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - // Positive earrings - if (jewelry instanceof ItemEarrings && pos != -1){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); - List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); - if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ - Iterator iterator = list.iterator(); - while (iterator.hasNext()){ - EntityArrow arrow = (EntityArrow)iterator.next(); - if (rand.nextInt(3) == 0 && (arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0)) arrow.setDead(); - } - } - } - // Positive bracelet - if (jewelry instanceof ItemBracelet && pos != -1){ - if (player.motionY < 0) player.motionY *= 0.6D; - player.setAIMoveSpeed(player.getAIMoveSpeed() / 2); - player.fallDistance = 0F; - } - } - - @Override - public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - NBTTagCompound enemyData = target.getEntityData(); - if (jewelry instanceof ItemRing && pos != -1 && enemyData.getInteger("reAttacked") == 0){ - enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); - target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); - if (rand.nextInt(2) == 0){ - enemyData.setInteger("stunTime", 50); - enemyData.setBoolean("stunned", true); - } - playerInfo.setBoolean("weakDamage", true); - playerInfo.setInteger("stunTime", 50); - playerInfo.setBoolean("stunned", true); - } - if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (jewelry instanceof ItemNecklace && pos != -1 && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); - playerInfo.setBoolean("negateDamage", true); - } - // Negative necklace - if (jewelry instanceof ItemNecklace && pos != -1 && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); - // Negative earrings - if (jewelry instanceof ItemEarrings && pos != -1 && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/c011836acadf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/c011836acadf00141dc6c962aec96210 new file mode 100644 index 0000000..a3c375d --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/29/c011836acadf00141dc6c962aec96210 @@ -0,0 +1,94 @@ +package darkknight.jewelrycraft.effects; + +import java.util.Iterator; +import java.util.List; +import net.minecraft.entity.Entity; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class EffectFeather extends ModifierEffects +{ + public EffectFeather() + { + super(new ItemStack(Items.feather)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive earrings + if (jewelry instanceof ItemEarrings && exists){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); + List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); + if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ + Iterator iterator = list.iterator(); + while (iterator.hasNext()){ + EntityArrow arrow = (EntityArrow)iterator.next(); + if (rand.nextInt(3) == 0 && (arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0)) arrow.setDead(); + } + } + } + // Positive bracelet + if (jewelry instanceof ItemBracelet && exists){ + if (player.motionY < 0) player.motionY *= 0.6D; +// player.capabilities.setPlayerWalkSpeed(0.1F); +// player.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.001D); + if (!player.isPotionActive(Potion.moveSlowdown) || player.getActivePotionEffect(Potion.moveSlowdown).getDuration() < 30) player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 80, 1)); + player.fallDistance = 0F; + } + } + + @Override + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + NBTTagCompound enemyData = target.getEntityData(); + if (jewelry instanceof ItemRing && exists && enemyData.getInteger("reAttacked") == 0){ + enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); + target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); + if (rand.nextInt(2) == 0){ + enemyData.setInteger("stunTime", 50); + enemyData.setBoolean("stunned", true); + } + playerInfo.setBoolean("weakDamage", true); + } + if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (jewelry instanceof ItemNecklace && exists && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ + player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); + playerInfo.setBoolean("negateDamage", true); + } + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); + // Negative earrings + if (jewelry instanceof ItemEarrings && exists && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2b/2069bbfabdd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2b/2069bbfabdd000141b65e2fc7f94332d deleted file mode 100644 index 76d6579..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2b/2069bbfabdd000141b65e2fc7f94332d +++ /dev/null @@ -1,237 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.block.BlockShadowEye; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - if(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockShadowEye) GL11.glTranslatef(0F, 0F, 0.02F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2b/a09c5791f6cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2b/a09c5791f6cf0014170de422db399e8d deleted file mode 100644 index c65217f..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2b/a09c5791f6cf0014170de422db399e8d +++ /dev/null @@ -1,65 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2c/0075f9bc9fd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2c/0075f9bc9fd000141b65e2fc7f94332d deleted file mode 100644 index aa41611..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2c/0075f9bc9fd000141b65e2fc7f94332d +++ /dev/null @@ -1,78 +0,0 @@ -package darkknight.jewelrycraft.container; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.client.GuiGuide; -import darkknight.jewelrycraft.util.JewelrycraftUtil; - -public class GuiTabGemsAndIngots extends GuiTab -{ - - /** - * @param id - */ - public GuiTabGemsAndIngots(int id) - { - super("Gems and ingots", id); - } - - /** - * @return - */ - @Override - public ItemStack getIcon() - { - return new ItemStack(Items.emerald); - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - for(int i = (page - 1) * 9; i < page * 9; i++) - if (i < JewelrycraftUtil.gem.size()){ - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Gems", gui.getLeft() + xPos + 40, gui.getTop(), 0); - gui.renderItem(JewelrycraftUtil.gem.get(i), gui.getLeft() + xPos + 10, gui.getTop() + 22 + 16 * (i - 9 * (page - 1)), 30f); - gui.getFont().drawString(String.format("%-1.18s", JewelrycraftUtil.gem.get(i).getDisplayName()), gui.getLeft() + xPos + 20, gui.getTop() + 12 + 16 * (i - 9 * (page - 1)), 0); - GL11.glDisable(GL11.GL_LIGHTING); - } - page -= JewelrycraftUtil.gem.size() / 9 + 1; - for(int i = (page - 1) * 9; i < page * 9; i++) - if (i < JewelrycraftUtil.metal.size() && page > 0){ - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Ingots", gui.getLeft() + xPos + 40, gui.getTop(), 0); - gui.renderItem(JewelrycraftUtil.metal.get(i).copy(), gui.getLeft() + xPos + 10, gui.getTop() + 22 + 16 * (i - 9 * (page - 1)), 30f); - gui.getFont().drawString(String.format("%-1.18s", JewelrycraftUtil.metal.get(i).copy().getDisplayName()), gui.getLeft() + xPos + 20, gui.getTop() + 12 + 16 * (i - 9 * (page - 1)), 0); - GL11.glDisable(GL11.GL_LIGHTING); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @return - */ - @Override - public int getMaxPages() - { - return JewelrycraftUtil.gem.size() / 9 + JewelrycraftUtil.metal.size() / 9 + 2; - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2c/702e06909bd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2c/702e06909bd000141b65e2fc7f94332d deleted file mode 100644 index 7f26d74..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2c/702e06909bd000141b65e2fc7f94332d +++ /dev/null @@ -1,44 +0,0 @@ -package darkknight.jewelrycraft.container; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import darkknight.jewelrycraft.client.GuiGuide; -import darkknight.jewelrycraft.item.ItemList; - -public class GuiTabIntroduction extends GuiTab -{ - public GuiTabIntroduction(int id) - { - super("Introduction", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(ItemList.ring); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - String text = ""; - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - text = "Although you can add anything as a modifier, only some objects have an effect. In this tab you can find all of modifiers that have a use and what they do, in the form of a story/riddle/poem. However different jewellery have different effects for the same modifier."; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2c/809d0e09cddf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2c/809d0e09cddf00141dc6c962aec96210 new file mode 100644 index 0000000..04bc351 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2c/809d0e09cddf00141dc6c962aec96210 @@ -0,0 +1,85 @@ +package darkknight.jewelrycraft.effects; + +import net.minecraft.block.BlockOre; +import net.minecraft.client.Minecraft; +import net.minecraft.client.settings.GameSettings.Options; +import net.minecraft.entity.monster.EntityEnderman; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.biome.BiomeGenBase; +import cpw.mods.fml.relauncher.ReflectionHelper; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; + +public class EffectEnderEye extends ModifierEffects +{ + private boolean originalVD = false; + private float originalViewDistance; + + public EffectEnderEye() + { + super(new ItemStack(Items.ender_eye)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemEarrings && exists && !player.worldObj.isRemote){ + for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ + EntityEnderman enderman = (EntityEnderman)e; + ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); + Vec3 vec3 = player.getLook(1.0F).normalize(); + Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); + double d0 = vec31.lengthVector(); + vec31 = vec31.normalize(); + double d1 = vec3.dotProduct(vec31); + if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ + // Positive earrings + enderman.setTarget(null); + // Negative earrings + if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); + } + } + } + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote){ + ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); + if (chunkposition != null){ + Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); + Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); + } + } + //Positive bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); + //Negative bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && rand.nextInt(500) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1), player.posY, player.posZ + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1)); + if (jewelry instanceof ItemRing && exists && rand.nextInt(200) == 12){ + Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 1.0F); + for(int i = (int)player.posX - 2; i <= (int)player.posX + 2; i++) + for(int j = (int)player.posY - 2; j <= (int)player.posY + 2; j++) + for(int k = (int)player.posZ - 2; k <= (int)player.posZ + 2; k++) + if (player.worldObj.getBlock(i, j, k) instanceof BlockOre) player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "You sense some " + player.worldObj.getBlock(i, j, k).getLocalizedName() + " around you.")); + } + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + //Negative necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2c/b0ae616ecedf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2c/b0ae616ecedf00141dc6c962aec96210 new file mode 100644 index 0000000..4c12da5 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2c/b0ae616ecedf00141dc6c962aec96210 @@ -0,0 +1,87 @@ +package darkknight.jewelrycraft.effects; + +import net.minecraft.block.BlockOre; +import net.minecraft.client.Minecraft; +import net.minecraft.client.settings.GameSettings.Options; +import net.minecraft.entity.monster.EntityEnderman; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.biome.BiomeGenBase; +import cpw.mods.fml.relauncher.ReflectionHelper; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; + +public class EffectEnderEye extends ModifierEffects +{ + private boolean originalVD = false; + private float originalViewDistance; + + public EffectEnderEye() + { + super(new ItemStack(Items.ender_eye)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemEarrings && exists && !player.worldObj.isRemote){ + for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ + EntityEnderman enderman = (EntityEnderman)e; + ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); + Vec3 vec3 = player.getLook(1.0F).normalize(); + Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); + double d0 = vec31.lengthVector(); + vec31 = vec31.normalize(); + double d1 = vec3.dotProduct(vec31); + if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ + // Positive earrings + if(rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0) enderman.setTarget(null); + // Negative earrings + if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2 + JewelryNBT.numberOfModifiers(item)/4)); + } + } + } + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote){ + ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); + if (chunkposition != null){ + Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX)*(rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0? 1:-1); + Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ)*(rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0? 1:-1); + } + } + // Positive bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 150 - JewelryNBT.numberOfModifiers(item)*10, 2 - JewelryNBT.numberOfModifiers(item)/5)); + // Negative bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && rand.nextInt(520 - JewelryNBT.numberOfModifiers(item)*20) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1), player.posY, player.posZ + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1)); + if (jewelry instanceof ItemRing && exists && rand.nextInt(200) == 12){ + // Negative ring + Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 2.2F - JewelryNBT.numberOfModifiers(item)*0.1F); + // Positive ring + for(int i = (int)player.posX - 2; i <= (int)player.posX + 2; i++) + for(int j = (int)player.posY - 2; j <= (int)player.posY + 2; j++) + for(int k = (int)player.posZ - 2; k <= (int)player.posZ + 2; k++) + if (player.worldObj.getBlock(i, j, k) instanceof BlockOre) player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "You sense some " + player.worldObj.getBlock(i, j, k).getLocalizedName() + " around you.")); + } + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2c/b0fd61c916cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2c/b0fd61c916cf00141c41f52413db5e31 deleted file mode 100644 index 928ba1b..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2c/b0fd61c916cf00141c41f52413db5e31 +++ /dev/null @@ -1,115 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import java.util.ArrayList; -import java.util.Random; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; - -public class Curse -{ - protected int id, texturepack; - protected String name, description; - protected Random rand = new Random(); - private static ArrayList curses = new ArrayList(); - public static ArrayList availableCurses = new ArrayList(); - - /** - * @param id the ID of the curse - * @param name the name of the curse - * @param texturepack the ID of the pack the texture is located in - */ - protected Curse(int id, String name, int texturepack) - { - this.id = id; - this.name = name; - this.texturepack = texturepack; - curses.add(this); - availableCurses.add(this); - } - - /** - * @return the name of the curse - */ - public String getName() - { - return name; - } - - /** - * @return the description of the curse - */ - public String getDescription() - { - return description; - } - - public Curse setDescription(String desc) - { - description = desc; - return this; - } - - /** - * @return the curse ID - */ - public int getID() - { - return id; - } - - /** - * @return the texture pack ID - */ - public int getTexturePack() - { - return texturepack; - } - - /** - * @param world - * @param player - */ - public void action(World world, EntityPlayer player) - {} - - /** - * @param world - * @param player - */ - public void deathAction(World world, EntityPlayer player) - {} - - /** - * @param world - * @param player - */ - public void respawnAction(World world, EntityPlayer player) - {} - - /** - * @param world - * @param player - */ - public void attackedAction(World world, EntityPlayer player) - {} - - /** - * @param world - * @param player - */ - public void attackedByPlayerAction(World world, EntityPlayer player) - {} - - public boolean itemToss() - { - return false; - } - - /** - * @return - */ - public static ArrayList getCurseList() - { - return curses; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2d/50f61c022bde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2d/50f61c022bde00141043c3025ec60dfc new file mode 100644 index 0000000..a31abd4 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2d/50f61c022bde00141043c3025ec60dfc @@ -0,0 +1,466 @@ +package darkknight.jewelrycraft.events; + +import ibxm.Player; +import java.io.EOFException; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Iterator; +import java.util.List; +import java.util.Random; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompressedStreamTools; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.MathHelper; +import net.minecraftforge.client.event.EntityViewRenderEvent; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.event.entity.item.ItemTossEvent; +import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.living.LivingDeathEvent; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingFallEvent; +import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; +import net.minecraftforge.event.world.WorldEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.config.ConfigHandler; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.entities.EntityHalfHeart; +import darkknight.jewelrycraft.entities.EntityHeart; +import darkknight.jewelrycraft.item.ItemBaseJewelry; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemList; +import darkknight.jewelrycraft.network.PacketClearColorCache; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.network.PacketSendCurseStats; +import darkknight.jewelrycraft.network.PacketSendPlayerInfo; +import darkknight.jewelrycraft.util.BlockUtils; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +/** + * Code taken from OpenBlocks + */ +public class EntityEventHandler +{ + /** + * @param event + */ + @SubscribeEvent + public void onEntityJoinWorld(EntityJoinWorldEvent event) + { + if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + final Entity entity = event.entity; + if (!event.world.isRemote && entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); + if (shouldGiveManual){ + ItemStack manual = new ItemStack(ItemList.guide); + if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); + persistTag.setBoolean("givenGuide", true); + } + boolean render = persistTag.getBoolean("fancyRender"); + JewelrycraftMod.fancyRender = render; + for(Curse curse: Curse.getCurseList()) + if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); + persistTag.setBoolean("sendInfo", true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityUpdate(LivingUpdateEvent event) + { + Entity entity = event.entity; + if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ + entity.motionX *= 0D; + entity.motionZ *= 0D; + entity.motionY *= 0D; + entity.rotationPitch = entity.prevRotationPitch; + entity.rotationYaw = entity.prevRotationYaw; + entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); + if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); + entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); + if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ + player.motionX *= 0D; + player.motionZ *= 0D; + player.motionY *= 0D; + player.rotationPitch = entity.prevRotationPitch; + player.rotationYaw = entity.prevRotationYaw; + playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); + if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); + player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); + } + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if(item != null) ((ItemBaseJewelry)item.getItem()).action(item, player); + } + if (!player.worldObj.isRemote){ + if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); + if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); + } + if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); + if (playerInfo.getBoolean("sendInfo")){ + JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); + playerInfo.setBoolean("sendInfo", false); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); + } + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityAttacked(LivingAttackEvent event) + { + Entity entity = event.entityLiving; + if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); + if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("negateDamage")){ + playerInfo.setBoolean("negateDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); + } + if (player.getHealth() != player.prevHealth){ + if (playerInfo.getFloat("WhiteHeart") > 0){ + playerInfo.setFloat("WhiteHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getFloat("BlueHeart") > 0){ + float damage = playerInfo.getFloat("BlueHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlueHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlueHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + }else if (playerInfo.getFloat("BlackHeart") > 0){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); + List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); + if (enemies != null && !enemies.isEmpty()){ + Iterator iterator = enemies.iterator(); + while (iterator.hasNext()){ + Entity enemy = (Entity)iterator.next(); + enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); + } + } + float damage = playerInfo.getFloat("BlackHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlackHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlackHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + } + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); + }else if (event.source.getEntity() instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.source.getEntity(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("weakDamage")){ + playerInfo.setBoolean("weakDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onPlayerRespawn(PlayerEvent.Clone event) + { + EntityPlayer player = event.entityPlayer; + if (!player.worldObj.isRemote){ + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (playerInfo.hasKey("cursePoints")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + } + playerInfo.setBoolean("sendInfo", true); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param player + * @param playerInfo + * @param curse + */ + public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) + { + if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ + int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); + Curse cur = Curse.availableCurses.get(no); + playerInfo.setInteger(cur.getName(), 1); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) + { + Curse cur = Curse.getCurseList().get(curseID); + System.out.println("add curse " + cur + " " + grade + " " + Curse.availableCurses); + if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ + playerInfo.setInteger(cur.getName(), grade); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + @SubscribeEvent + public void itemToss(ItemTossEvent event) + { + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, Variables.MODID); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ + EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); + entityitem.motionX = 0; + entityitem.motionZ = 0; + entityitem.motionY = 0.11000000298023224D; + event.player.worldObj.spawnEntityInWorld(entityitem); + List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; + Iterator plrs = players.iterator(); + while (plrs.hasNext()) + ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); + event.setCanceled(true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void playerFileSave(PlayerEvent.SaveToFile event) + { + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityDead(LivingDeathEvent event) + { + final Entity entity = event.entity; + Random rand = new Random(); + String[] types = {"Red", "Blue", "White", "Black"}; + if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ + EntityLiving live = (EntityLiving)entity; + String type = types[rand.nextInt(4)]; + if (rand.nextInt(6) == 0){ + if (type == "White"){ + EntityHeart h = new EntityHalfHeart(live.worldObj); + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + }else{ + for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ + EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; + EntityHeart h = hearts[rand.nextInt(2)]; + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + } + } + } + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ + for(Curse l: Curse.getCurseList()){ + if (playerInfo.getInteger(l.getName()) == 1){ + playerInfo.setInteger(l.getName(), 0); + if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); + }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); + } + if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + playerInfo.setBoolean("sendInfo", true); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldLoad(WorldEvent.Load event) + { + if (!event.world.isRemote){ + new File(JewelrycraftMod.dir + File.separator + Variables.MODID).mkdirs(); + JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + Variables.MODID, "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); + try{ + if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldSave(WorldEvent.Save event) + { + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogColors(EntityViewRenderEvent.FogColors event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + event.red = 0f; + event.green = 0f; + event.blue = 0f; + } + } + if (event.isCancelable()) event.setCanceled(true); + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogDensity(EntityViewRenderEvent.FogDensity event) + {} + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void renderFog(EntityViewRenderEvent.RenderFogEvent event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); + GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); + } + } + if (event.isCancelable()) event.setCanceled(true); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2d/90ac8e2b9fce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2d/90ac8e2b9fce00141801ff0972626827 deleted file mode 100644 index 21f4d0f..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2d/90ac8e2b9fce00141801ff0972626827 +++ /dev/null @@ -1,68 +0,0 @@ -package darkknight.jewelrycraft.events; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraftforge.client.event.RenderPlayerEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import darkknight.jewelrycraft.entities.renders.RenderHelper; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.model.ModelMask; -import darkknight.jewelrycraft.tileentity.renders.MaskRender; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class PlayerRenderHandler -{ - ModelMask maskModel = new ModelMask(); - MaskRender mask = new MaskRender(); - - public static String[] infamyCache = new String[] {}; - - @SubscribeEvent - public void renderScreen(RenderPlayerEvent.Specials.Post event) - { - if (infamyCache != null) - { - Iterator players = event.entityPlayer.worldObj.playerEntities.iterator(); - - while(players.hasNext()) - { - EntityPlayer player = players.next(); - if (checkPlayerGreed(player.getDisplayName()) && event.entityPlayer.getDisplayName().equals(player.getDisplayName())) - { - float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick; - float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick; - float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick; - GL11.glPushMatrix(); - GL11.glColor4f(1, 1, 1, 1); - GL11.glRotatef(yawOffset, 0, -1, 0); - GL11.glRotatef(yaw - 90, 0, 1, 0); - GL11.glRotatef(pitch, 0, 0, -1); - GL11.glRotatef(90F, 0, 1F, 0F); - RenderHelper.translateToHeadLevel(player); - GL11.glScalef(1.6f, 1.6f, 1.6f); - GL11.glTranslatef(-0.25F, -0.25F, -0.25F); - mask.doRender(event.entityPlayer, 0F, 0F, 0F, 0F, 0F); - GL11.glPopMatrix(); - } - } - } - } - - /** - * @param string - * @return - */ - private boolean checkPlayerGreed(String string) - { - for (int i = 0; i < infamyCache.length; i++) - if (infamyCache[i].equals(string)) return true; - - return false; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2f/3016ca8fa3d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2f/3016ca8fa3d000141b65e2fc7f94332d deleted file mode 100644 index 1f3a590..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2f/3016ca8fa3d000141b65e2fc7f94332d +++ /dev/null @@ -1,68 +0,0 @@ -package darkknight.jewelrycraft.events; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraftforge.client.event.RenderPlayerEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import darkknight.jewelrycraft.entities.renders.RenderHelper; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.model.ModelMask; -import darkknight.jewelrycraft.tileentity.renders.MaskRender; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class PlayerRenderHandler -{ - ModelMask maskModel = new ModelMask(); - public MaskRender mask = new MaskRender(); - - public static String[] infamyCache = new String[] {}; - - @SubscribeEvent - public void renderScreen(RenderPlayerEvent.Specials.Post event) - { - if (infamyCache != null) - { - Iterator players = event.entityPlayer.worldObj.playerEntities.iterator(); - - while(players.hasNext()) - { - EntityPlayer player = players.next(); - if (checkPlayerInfamy(player.getDisplayName()) && event.entityPlayer.getDisplayName().equals(player.getDisplayName())) - { - float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick; - float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick; - float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick; - GL11.glPushMatrix(); - GL11.glColor4f(1, 1, 1, 1); - GL11.glRotatef(yawOffset, 0, -1, 0); - GL11.glRotatef(yaw - 90, 0, 1, 0); - GL11.glRotatef(pitch, 0, 0, -1); - GL11.glRotatef(90F, 0, 1F, 0F); - RenderHelper.translateToHeadLevel(player); - GL11.glScalef(1.6f, 1.6f, 1.6f); - GL11.glTranslatef(-0.25F, -0.25F, -0.25F); - mask.doRender(event.entityPlayer, 0F, 0F, 0F, 0F, 0F); - GL11.glPopMatrix(); - } - } - } - } - - /** - * @param string - * @return - */ - private boolean checkPlayerInfamy(String string) - { - for (int i = 0; i < infamyCache.length; i++) - if (infamyCache[i].equals(string)) return true; - - return false; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2f/90f98826b0d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2f/90f98826b0d000141b65e2fc7f94332d deleted file mode 100644 index df93297..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/2f/90f98826b0d000141b65e2fc7f94332d +++ /dev/null @@ -1,247 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_LIGHT0); - } - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - GL11.glDisable(GL11.GL_LIGHT0); - GL11.glDisable(GL11.GL_LIGHTING); - } - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ - GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - if(ItemStack.areItemStacksEqual(item, new ItemStack(Blocks.light_weighted_pressure_plate, 1, 0)))GL11.glRotatef(25.0F, -1.0F, 0.0F, 0.0F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ -// GL11.glEnable(GL11.GL_LIGHTING); -// GL11.glEnable(GL11.GL_LIGHT0); - RenderHelper.enableStandardItemLighting(); - } - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ -// GL11.glDisable(GL11.GL_LIGHT0); -// GL11.glDisable(GL11.GL_LIGHTING); - } - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - RenderHelper.disableStandardItemLighting(); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3/20e2ed160cde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3/20e2ed160cde00141043c3025ec60dfc new file mode 100644 index 0000000..f02cc4b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3/20e2ed160cde00141043c3025ec60dfc @@ -0,0 +1,186 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + if ((int)f3 != -1){ + int ingotColor = (int)f3; + int red = (ingotColor >> 16) & 0xff; + int green = (ingotColor >> 8) & 0xff; + int blue = ingotColor & 0xff; +// System.out.println(red + " " + green + " " + blue); + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glColorMask(false, true, true, true); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3/902846c39fd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3/902846c39fd000141b65e2fc7f94332d deleted file mode 100644 index a0a1fd9..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3/902846c39fd000141b65e2fc7f94332d +++ /dev/null @@ -1,74 +0,0 @@ -package darkknight.jewelrycraft.container; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabModifiers extends GuiTab -{ - int maxPages; - public GuiTabModifiers(int id) - { - super("Modifiers", id); - } - - /** - * @return - */ - @Override - public ItemStack getIcon() - { - return new ItemStack(Items.blaze_powder); - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - String text = ""; - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - text = "Although you can add anything as a modifier, only some objects have an effect. In this tab you can find all of modifiers that have a use and what they do, in the form of a story/riddle/poem. However different jewellery have different effects for the same modifier."; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - case 2: - text = "The ancient ones talked about a rising fire in your heart. Fret do not, for flames do not burn, but water might sting a turn. Watch your step, do not be cocky, for its protection is a bit sloppy."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop() - 7, new ItemStack(Items.blaze_powder), text, 40f); - break; - case 3: - text = "Light and swift as a feather can be good all together. Enemies miss and get confused, this power can be abused. Against an arrow you can't compare, so move around, don't just stare. Fire is your enemy and weakness is the penalty."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop() - 7, new ItemStack(Items.feather), text, 40f); - break; - case 4: - text = "Endermen may tolerate you, end portals are near too, you may find ore that is true. But be careful, for the power may make you dizzy, blind you if you're a sissy, worsen your vision if you're unaware and shift positions everywhere."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop() - 7, new ItemStack(Items.ender_eye), text, 40f); - break; - } - } - - /** - * @return - */ - @Override - public int getMaxPages() - { - return 4; - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/30/1096a2fac8df00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/30/1096a2fac8df00141dc6c962aec96210 new file mode 100644 index 0000000..ca17bbe --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/30/1096a2fac8df00141dc6c962aec96210 @@ -0,0 +1,93 @@ +package darkknight.jewelrycraft.effects; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class EffectBlazePowder extends ModifierEffects +{ + public EffectBlazePowder() + { + super(new ItemStack(Items.blaze_powder)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemNecklace && pos != -1){ + // Positive for necklace + if (player.isBurning() && rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0) player.extinguish(); + // Negative for necklace + if (player.isInWater()) player.attackEntityFrom(DamageSource.drown, 1f + (JewelryNBT.numberOfModifiers(item) - 1) * 0.1F); + } + // Negative for bracelet + if (jewelry instanceof ItemBracelet && pos != -1 && player.isInWater()){ + double slowAmount = 0.6D + (JewelryNBT.numberOfModifiers(item) - 1)*0.05D; + player.motionX *= slowAmount; + player.motionY *= slowAmount; + player.motionZ *= slowAmount; + player.motionY -= 0.02D; + if (player.isCollidedHorizontally) player.motionY = 0.30000001192092896D; + } + // Negative for earrings + if (jewelry instanceof ItemEarrings && pos != -1){ + if (player.getAir() >= 300) player.setAir(player.getAir() / 2); + else player.setAir(player.getAir() - 1); + } + } + + @Override + public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + // Balanced for ring + if (jewelry instanceof ItemRing && pos != -1 && !player.isInWater()) target.setFire(2); + return false; + } + + @Override + public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + // int pos = JewelryNBT.doesModifierExist(item, modifier); + // if (jewelry instanceof ItemEarrings && pos != -1 && rand.nextInt(4) == 0) if (source == DamageSource.lava || source == DamageSource.inFire || source == DamageSource.onFire){ + // //Positive for earrings + // int stackSize = JewelryNBT.modifier(item).get(pos).stackSize; + // player.heal((float)(0.05 * stackSize)); + // return true; + // } + // //Positive for bracelet + // if (jewelry instanceof ItemBracelet && pos != -1) if (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava && player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY - 0.7, player.boundingBox.maxZ), Material.lava) && !player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY + 0.9, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY, player.boundingBox.maxZ), Material.lava)) return true; + return false; + } + + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + {} + + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (jewelry instanceof ItemEarrings && pos != -1 && rand.nextInt(4) == 0) if (source == DamageSource.lava || source == DamageSource.inFire || source == DamageSource.onFire){ + // Positive for earrings + int stackSize = JewelryNBT.modifier(item).get(pos).stackSize; + player.heal((float)(0.05 * stackSize)); + playerInfo.setBoolean("negateDamage", true); + } + // Positive for bracelet + if (jewelry instanceof ItemBracelet && pos != -1) if (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava && player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY - 0.7, player.boundingBox.maxZ), Material.lava) && !player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY + 0.9, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY, player.boundingBox.maxZ), Material.lava)) playerInfo.setBoolean("negateDamage", true); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/31/201793702dde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/31/201793702dde00141043c3025ec60dfc new file mode 100644 index 0000000..d1f9286 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/31/201793702dde00141043c3025ec60dfc @@ -0,0 +1,106 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() - 50 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ +// for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(5, resolution.getScaledHeight() - 50 + 16 * count, 1 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + tagCache.getFloat("BlackHeart"), 15, resolution.getScaledHeight() - 45 + 16 * count, 16777215); +// if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() - 50 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/31/4099cacb16cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/31/4099cacb16cf00141c41f52413db5e31 deleted file mode 100644 index 50aefe3..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/31/4099cacb16cf00141c41f52413db5e31 +++ /dev/null @@ -1,459 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(player.worldObj, player); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/31/7026f2daf4cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/31/7026f2daf4cf0014170de422db399e8d deleted file mode 100644 index df0990b..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/31/7026f2daf4cf0014170de422db399e8d +++ /dev/null @@ -1,62 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D*Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D*Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/31/90e1eeeff3cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/31/90e1eeeff3cf0014170de422db399e8d deleted file mode 100644 index 072cac2..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/31/90e1eeeff3cf0014170de422db399e8d +++ /dev/null @@ -1,62 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null && chunkposition.chunkPosX != (int)player.posX && chunkposition.chunkPosZ != (int)player.posZ){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D*Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D*Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); -// if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/31/f02810b507de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/31/f02810b507de00141043c3025ec60dfc new file mode 100644 index 0000000..28ccdca --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/31/f02810b507de00141043c3025ec60dfc @@ -0,0 +1,183 @@ +package darkknight.jewelrycraft.model; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + if ((int)f3 != -1){ + int ingotColor = (int)f3; + int red = ingotColor >> 16 & 0xff; + int green = ingotColor >> 8 & 0xff; + int blue = ingotColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/009ecb1ebbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/009ecb1ebbd000141b65e2fc7f94332d deleted file mode 100644 index 5db4804..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/009ecb1ebbd000141b65e2fc7f94332d +++ /dev/null @@ -1,112 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/609ee512cfdf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/609ee512cfdf00141dc6c962aec96210 new file mode 100644 index 0000000..2002d5d --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/32/609ee512cfdf00141dc6c962aec96210 @@ -0,0 +1,109 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ +// for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 0 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlueHeart")) / 2.0F), 15 + 35*count, resolution.getScaledHeight() - 16, 16777215); +// if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("BlackHeart") > 0){ +// for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 1 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlackHeart")) / 2.0F), 15 + 35*count, resolution.getScaledHeight() - 16, 16777215); +// if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/33/808ebec629de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/33/808ebec629de00141043c3025ec60dfc new file mode 100644 index 0000000..1c2caa0 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/33/808ebec629de00141043c3025ec60dfc @@ -0,0 +1,466 @@ +package darkknight.jewelrycraft.events; + +import ibxm.Player; +import java.io.EOFException; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Iterator; +import java.util.List; +import java.util.Random; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompressedStreamTools; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.MathHelper; +import net.minecraftforge.client.event.EntityViewRenderEvent; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.event.entity.item.ItemTossEvent; +import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.living.LivingDeathEvent; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingFallEvent; +import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; +import net.minecraftforge.event.world.WorldEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.config.ConfigHandler; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.entities.EntityHalfHeart; +import darkknight.jewelrycraft.entities.EntityHeart; +import darkknight.jewelrycraft.item.ItemBaseJewelry; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemList; +import darkknight.jewelrycraft.network.PacketClearColorCache; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.network.PacketSendCurseStats; +import darkknight.jewelrycraft.network.PacketSendPlayerInfo; +import darkknight.jewelrycraft.util.BlockUtils; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +/** + * Code taken from OpenBlocks + */ +public class EntityEventHandler +{ + /** + * @param event + */ + @SubscribeEvent + public void onEntityJoinWorld(EntityJoinWorldEvent event) + { + if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + final Entity entity = event.entity; + if (!event.world.isRemote && entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); + if (shouldGiveManual){ + ItemStack manual = new ItemStack(ItemList.guide); + if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); + persistTag.setBoolean("givenGuide", true); + } + boolean render = persistTag.getBoolean("fancyRender"); + JewelrycraftMod.fancyRender = render; + for(Curse curse: Curse.getCurseList()) + if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); + persistTag.setBoolean("sendInfo", true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityUpdate(LivingUpdateEvent event) + { + Entity entity = event.entity; + if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ + entity.motionX *= 0D; + entity.motionZ *= 0D; + entity.motionY *= 0D; + entity.rotationPitch = entity.prevRotationPitch; + entity.rotationYaw = entity.prevRotationYaw; + entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); + if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); + entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); + if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ + player.motionX *= 0D; + player.motionZ *= 0D; + player.motionY *= 0D; + player.rotationPitch = entity.prevRotationPitch; + player.rotationYaw = entity.prevRotationYaw; + playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); + if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); + player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); + } + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if(item != null) ((ItemBaseJewelry)item.getItem()).action(item, player); + } + if (!player.worldObj.isRemote){ + if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); + if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); + } + if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); + if (playerInfo.getBoolean("sendInfo")){ + JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); + playerInfo.setBoolean("sendInfo", false); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); + } + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityAttacked(LivingAttackEvent event) + { + Entity entity = event.entityLiving; + if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); + if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("negateDamage")){ + playerInfo.setBoolean("negateDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); + } + if (player.getHealth() != player.prevHealth){ + if (playerInfo.getFloat("WhiteHeart") > 0){ + playerInfo.setFloat("WhiteHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getFloat("BlueHeart") > 0){ + float damage = playerInfo.getFloat("BlueHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlueHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlueHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + }else if (playerInfo.getFloat("BlackHeart") > 0){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); + List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); + if (enemies != null && !enemies.isEmpty()){ + Iterator iterator = enemies.iterator(); + while (iterator.hasNext()){ + Entity enemy = (Entity)iterator.next(); + enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); + } + } + float damage = playerInfo.getFloat("BlackHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlackHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlackHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + } + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); + }else if (event.source.getEntity() instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.source.getEntity(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("weakDamage")){ + playerInfo.setBoolean("weakDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onPlayerRespawn(PlayerEvent.Clone event) + { + EntityPlayer player = event.entityPlayer; + if (!player.worldObj.isRemote){ + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (playerInfo.hasKey("cursePoints")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + } + playerInfo.setBoolean("sendInfo", true); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param player + * @param playerInfo + * @param curse + */ + public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) + { + if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ + int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); + Curse cur = Curse.availableCurses.get(no); + playerInfo.setInteger(cur.getName(), 1); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) + { + Curse cur = Curse.getCurseList().get(curseID); + System.out.println("add curse " + cur + " " + grade); + if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ + playerInfo.setInteger(cur.getName(), grade); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + @SubscribeEvent + public void itemToss(ItemTossEvent event) + { + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, Variables.MODID); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ + EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); + entityitem.motionX = 0; + entityitem.motionZ = 0; + entityitem.motionY = 0.11000000298023224D; + event.player.worldObj.spawnEntityInWorld(entityitem); + List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; + Iterator plrs = players.iterator(); + while (plrs.hasNext()) + ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); + event.setCanceled(true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void playerFileSave(PlayerEvent.SaveToFile event) + { + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityDead(LivingDeathEvent event) + { + final Entity entity = event.entity; + Random rand = new Random(); + String[] types = {"Red", "Blue", "White", "Black"}; + if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ + EntityLiving live = (EntityLiving)entity; + String type = types[rand.nextInt(4)]; + if (rand.nextInt(6) == 0){ + if (type == "White"){ + EntityHeart h = new EntityHalfHeart(live.worldObj); + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + }else{ + for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ + EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; + EntityHeart h = hearts[rand.nextInt(2)]; + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + } + } + } + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ + for(Curse l: Curse.getCurseList()){ + if (playerInfo.getInteger(l.getName()) == 1){ + playerInfo.setInteger(l.getName(), 0); + if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); + }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); + } + if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + playerInfo.setBoolean("sendInfo", true); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldLoad(WorldEvent.Load event) + { + if (!event.world.isRemote){ + new File(JewelrycraftMod.dir + File.separator + Variables.MODID).mkdirs(); + JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + Variables.MODID, "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); + try{ + if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldSave(WorldEvent.Save event) + { + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogColors(EntityViewRenderEvent.FogColors event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + event.red = 0f; + event.green = 0f; + event.blue = 0f; + } + } + if (event.isCancelable()) event.setCanceled(true); + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogDensity(EntityViewRenderEvent.FogDensity event) + {} + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void renderFog(EntityViewRenderEvent.RenderFogEvent event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); + GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); + } + } + if (event.isCancelable()) event.setCanceled(true); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/34/10340d2ef2cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/34/10340d2ef2cf0014170de422db399e8d deleted file mode 100644 index 25dd5bf..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/34/10340d2ef2cf0014170de422db399e8d +++ /dev/null @@ -1,64 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D*Math.signum((double)chunkposition.chunkPosX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D*Math.signum((double)chunkposition.chunkPosZ); - System.out.println((double)chunkposition.chunkPosX + " " + (double)chunkposition.chunkPosZ); -// player.addChatMessage(new ChatComponentText("You hear a faint whisper telling you: \"You are getting closer, just " + (int)player.getDistance((double)chunkposition.chunkPosX, (double)chunkposition.chunkPosY, (double)chunkposition.chunkPosZ) + " more blocks to go.\"")); - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); -// if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/34/10925bf3cadf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/34/10925bf3cadf00141dc6c962aec96210 new file mode 100644 index 0000000..34c72eb --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/34/10925bf3cadf00141dc6c962aec96210 @@ -0,0 +1,96 @@ +package darkknight.jewelrycraft.effects; + +import java.util.Iterator; +import java.util.List; +import net.minecraft.entity.Entity; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class EffectFeather extends ModifierEffects +{ + public EffectFeather() + { + super(new ItemStack(Items.feather)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive earrings + if (jewelry instanceof ItemEarrings && exists){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); + List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); + if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ + Iterator iterator = list.iterator(); + while (iterator.hasNext()){ + EntityArrow arrow = (EntityArrow)iterator.next(); + if (rand.nextInt(3) == 0 && (arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0)) arrow.setDead(); + } + } + } + + if (jewelry instanceof ItemBracelet && exists){ + // Positive bracelet + if (player.motionY < 0) player.motionY *= 0.6D; + // Negative bracelet + if (!player.isPotionActive(Potion.moveSlowdown) || player.getActivePotionEffect(Potion.moveSlowdown).getDuration() < 30) player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 80, 1)); + player.fallDistance = 0F; + } + } + + @Override + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + NBTTagCompound enemyData = target.getEntityData(); + // Positive ring + if (jewelry instanceof ItemRing && exists && enemyData.getInteger("reAttacked") == 0){ + enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); + target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); + if (rand.nextInt(2) == 0){ + enemyData.setInteger("stunTime", 50); + enemyData.setBoolean("stunned", true); + } + playerInfo.setBoolean("weakDamage", true); + } + if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ + player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); + playerInfo.setBoolean("negateDamage", true); + } + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); + // Negative earrings + if (jewelry instanceof ItemEarrings && exists && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/35/00ec9292a7ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/35/00ec9292a7ce00141801ff0972626827 deleted file mode 100644 index b11c627..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/35/00ec9292a7ce00141801ff0972626827 +++ /dev/null @@ -1,116 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import java.util.Iterator; -import java.util.List; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class EffectFeather extends ModifierEffects -{ - public EffectFeather() - { - super(new ItemStack(Items.feather)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - // Positive earrings - if (jewelry instanceof ItemEarrings && pos != -1){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); - List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); - if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ - Iterator iterator = list.iterator(); - while (iterator.hasNext()){ - EntityArrow arrow = (EntityArrow)iterator.next(); - if (rand.nextInt(3) == 0 && (arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0)) arrow.setDead(); - } - } - } - // Positive bracelet - if (jewelry instanceof ItemBracelet && pos != -1){ - if (player.motionY < 0) player.motionY *= 0.6D; - player.setAIMoveSpeed(player.getAIMoveSpeed() / 2); - player.fallDistance = 0F; - } - } - - @Override - public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - NBTTagCompound enemyData = target.getEntityData(); - if (jewelry instanceof ItemRing && pos != -1){ - if (target instanceof EntityPlayer){ - NBTTagCompound enemyInfo = PlayerUtils.getModPlayerPersistTag((EntityPlayer)target, "Jewelrycraft"); - if (enemyInfo.getInteger("reAttacked") == 0){ - enemyInfo.setInteger("reAttacked", enemyInfo.getInteger("reAttacked") + 1); - target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); - if (rand.nextInt(2) == 0){ - enemyInfo.setInteger("stunTime", 50); - enemyInfo.setBoolean("stunned", true); - } - } - }else if (enemyData.getInteger("reAttacked") == 0){ - enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); - if (rand.nextInt(2) == 0){ - enemyData.setInteger("stunTime", 50); - enemyData.setBoolean("stunned", true); - } - playerInfo.setBoolean("weakDamage", true); - } - } - if (target instanceof EntityPlayer){ - NBTTagCompound enemyInfo = PlayerUtils.getModPlayerPersistTag((EntityPlayer)target, "Jewelrycraft"); - if (enemyInfo.getInteger("reAttacked") == 1) enemyInfo.setInteger("reAttacked", 0); - }else if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (jewelry instanceof ItemNecklace && pos != -1 && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); - playerInfo.setBoolean("negateDamage", true); - } - // Negative necklace - if (jewelry instanceof ItemNecklace && pos != -1 && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); - // Negative earrings - if (jewelry instanceof ItemEarrings && pos != -1 && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/35/c0e606a470cf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/35/c0e606a470cf00141de78e4a85bb2469 deleted file mode 100644 index aa815f7..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/35/c0e606a470cf00141de78e4a85bb2469 +++ /dev/null @@ -1,41 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player, Entity target) - { - if (rand.nextInt(5) == 0 && !world.isRemote && !(target instanceof EntityMob) && target instanceof EntityLiving && !(target instanceof EntityHeart) && !(target instanceof EntityHalfHeart) && target.canAttackWithItem()){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.getFloat("BlackHeart") < 20F) playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 1.0F); - if (player.getMaxHealth() >= 3F){ - player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() - 1.0F); - player.setHealth(player.getHealth() - 1.0F); - } - JewelrycraftUtil.addCursePoints(player, 10); - } - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/36/9032f899b7d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/36/9032f899b7d000141b65e2fc7f94332d deleted file mode 100644 index ab22d90..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/36/9032f899b7d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 153, 12, 12); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() - 20, gui.getTop() + 15); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 16, y + 25, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/36/a0809e1223cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/36/a0809e1223cf00141c41f52413db5e31 deleted file mode 100644 index 1c5ca9c..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/36/a0809e1223cf00141c41f52413db5e31 +++ /dev/null @@ -1,460 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/10568ea1b7d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/10568ea1b7d000141b65e2fc7f94332d deleted file mode 100644 index 60b6c0a..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/10568ea1b7d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 153, 12, 12); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() - 20, gui.getTop() + 15); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 15, y + 27, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/4027a5e129de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/4027a5e129de00141043c3025ec60dfc new file mode 100644 index 0000000..2353237 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/4027a5e129de00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/f0613fc4cfdf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/f0613fc4cfdf00141dc6c962aec96210 new file mode 100644 index 0000000..8c0596b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/37/f0613fc4cfdf00141dc6c962aec96210 @@ -0,0 +1,102 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); +// if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(90, 5 + (size + 10) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); +// } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 0 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlueHeart")) / 2.0F), 15 + 35*count, resolution.getScaledHeight() - 16, 16777215); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("BlackHeart") > 0){ + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 1 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlackHeart")) / 2.0F), 15 + 35*count, resolution.getScaledHeight() - 16, 16777215); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/38/a0c4fa6984d000141a1fb02abca5ff55 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/38/a0c4fa6984d000141a1fb02abca5ff55 deleted file mode 100644 index d16ec6f..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/38/a0c4fa6984d000141a1fb02abca5ff55 +++ /dev/null @@ -1,69 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.settings.GameSettings.Options; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - private boolean originalVD = false; - private float originalViewDistance; - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && rand.nextInt(500) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30)*(rand.nextBoolean()?-1:1), player.posY, player.posZ + rand.nextInt(30)*(rand.nextBoolean()?-1:1)); - if (jewelry instanceof ItemRing && pos != -1) Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 1.0F); - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/38/f0c649af08de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/38/f0c649af08de00141043c3025ec60dfc new file mode 100644 index 0000000..cf02394 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/38/f0c649af08de00141043c3025ec60dfc @@ -0,0 +1,184 @@ +package darkknight.jewelrycraft.model; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + System.out.println((int)f3); + if ((int)f3 != -1){ + int ingotColor = (int)f3; +// int red = ingotColor >> 16 & 0xff; +// int green = ingotColor >> 8 & 0xff; +// int blue = ingotColor & 0xff; + GL11.glColor3f((float)ingotColor % 256, ((float)ingotColor / 256) % 256, ((float)ingotColor / 256 / 256) % 256); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/39/60be6d7a67dd001412dce27813e7be4a b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/39/60be6d7a67dd001412dce27813e7be4a new file mode 100644 index 0000000..f90727e --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/39/60be6d7a67dd001412dce27813e7be4a @@ -0,0 +1,123 @@ +package darkknight.jewelrycraft.events; + +import java.util.Iterator; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderPlayerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.entities.renders.RenderHelper; +import darkknight.jewelrycraft.item.render.BraceletRender; +import darkknight.jewelrycraft.item.render.EarringsRender; +import darkknight.jewelrycraft.item.render.MaskRender; +import darkknight.jewelrycraft.model.ModelBracelet; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class PlayerRenderHandler +{ + MaskRender mask = new MaskRender(); + EarringsRender earrings = new EarringsRender(); + BraceletRender bracelet = new BraceletRender(); + public static String[] infamyCache = new String[]{}; + + @SubscribeEvent + public void renderScreen(RenderPlayerEvent.Specials.Post event) + { + ModelBiped main = event.renderer.modelBipedMain; + Iterator players = event.entityPlayer.worldObj.playerEntities.iterator(); + if (infamyCache != null){ + while (players.hasNext()){ + EntityPlayer player = players.next(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + System.out.println(playerInfo); + if (checkPlayerInfamy(player.getDisplayName()) && event.entityPlayer.getDisplayName().equals(player.getDisplayName())){ + float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick; + float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick; + float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick; + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glRotatef(yawOffset, 0, -1, 0); + GL11.glRotatef(yaw - 90, 0, 1, 0); + GL11.glRotatef(pitch, 0, 0, -1); + GL11.glRotatef(90F, 0, 1F, 0F); + RenderHelper.translateToHeadLevel(player); + GL11.glScalef(1.6f, 1.6f, 1.6f); + GL11.glTranslatef(-0.25F, -0.25F, -0.25F); + mask.doRender(event.entityPlayer, 0F, 0F, 0F, 0F, 0F); + GL11.glPopMatrix(); + } + if (playerInfo.hasKey("ext17")){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext17"); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick; + float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick; + float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick; + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glRotatef(yawOffset, 0, -1, 0); + GL11.glRotatef(yaw - 90, 0, 1, 0); + GL11.glRotatef(pitch, 0, 0, -1); + GL11.glRotatef(90F, 0, 1F, 0F); + RenderHelper.translateToHeadLevel(player); + GL11.glScalef(0.07f, 0.07f, 0.07f); + GL11.glTranslatef(0.0F, 3.0F, -2.0F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + earrings.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0F); + GL11.glPopMatrix(); + } + for(int i = 10; i <= 13; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glTranslatef((i / 12 == 1) ? -0.275F : 0.475F, 0.2F + ((i / 12 == 1) ? (i - 12) * 0.08F : (i - 10) * 0.08F), 0F); + if (player.isSneaking()) GL11.glTranslatef(0F, 0F, -((i == 10 || i == 12) ? (0.1F) : 0.05F)); + if (i / 12 == 1){ + GL11.glScalef(0.05f, 0.03f, 0.05f); + GL11.glRotatef(main.bipedRightArm.rotateAngleX * (180F / (float)Math.PI), 1F, 0F, 0F); + GL11.glRotatef(main.bipedRightArm.rotateAngleY * (180F / (float)Math.PI), 0F, 1F, 0F); + GL11.glRotatef(main.bipedRightArm.rotateAngleZ * (180F / (float)Math.PI), 0F, 0F, 1F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + bracelet.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0.0F); + }else{ + GL11.glScalef(0.05f, 0.03f, 0.05f); + GL11.glRotatef(main.bipedLeftArm.rotateAngleX * (180F / (float)Math.PI), 1F, 0F, 0F); + GL11.glRotatef(main.bipedLeftArm.rotateAngleY * (180F / (float)Math.PI), 0F, 1F, 0F); + GL11.glRotatef(main.bipedLeftArm.rotateAngleZ * (180F / (float)Math.PI), 0F, 0F, 1F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + bracelet.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0F); + } + GL11.glPopMatrix(); + } + } + } + } + + /** + * @param string + * @return + */ + private boolean checkPlayerInfamy(String string) + { + for(int i = 0; i < infamyCache.length; i++) + if (infamyCache[i].equals(string)) return true; + return false; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/002a7b0fb7d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/002a7b0fb7d000141b65e2fc7f94332d deleted file mode 100644 index cd0101c..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/002a7b0fb7d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 153, 12, 12); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() - 20, gui.getTop() + 15); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/10dc7459bbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/10dc7459bbd000141b65e2fc7f94332d deleted file mode 100644 index 1f90dd8..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/10dc7459bbd000141b65e2fc7f94332d +++ /dev/null @@ -1,114 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 90); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/6000f6390ade00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/6000f6390ade00141043c3025ec60dfc new file mode 100644 index 0000000..5f2a423 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/6000f6390ade00141043c3025ec60dfc @@ -0,0 +1,185 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + System.out.println((int)f3); + if ((int)f3 != -1){ + int ingotColor = Math.abs((int)f3); + int red = (ingotColor >> 16) & 0xff; + int green = (ingotColor >> 8) & 0xff; + int blue = ingotColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/606c08157ecf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/606c08157ecf00141de78e4a85bb2469 deleted file mode 100644 index 83be132..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/606c08157ecf00141de78e4a85bb2469 +++ /dev/null @@ -1,81 +0,0 @@ -package darkknight.jewelrycraft.client; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.Item; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.MinecraftForgeClient; -import net.minecraftforge.common.MinecraftForge; -import cpw.mods.fml.client.registry.ClientRegistry; -import cpw.mods.fml.client.registry.RenderingRegistry; -import cpw.mods.fml.common.registry.VillagerRegistry; -import darkknight.jewelrycraft.CommonProxy; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.entities.renders.HeartRender; -import darkknight.jewelrycraft.events.PlayerRenderHandler; -import darkknight.jewelrycraft.events.ScreenHandler; -import darkknight.jewelrycraft.model.ModelDisplayer; -import darkknight.jewelrycraft.model.ModelHalfHeart; -import darkknight.jewelrycraft.model.ModelHandPedestal; -import darkknight.jewelrycraft.model.ModelHeart; -import darkknight.jewelrycraft.model.ModelJewlersCraftingBench; -import darkknight.jewelrycraft.model.ModelMolder; -import darkknight.jewelrycraft.model.ModelShadowEye; -import darkknight.jewelrycraft.model.ModelShadowHand; -import darkknight.jewelrycraft.model.ModelSmelter; -import darkknight.jewelrycraft.tileentity.TileEntityDisplayer; -import darkknight.jewelrycraft.tileentity.TileEntityHandPedestal; -import darkknight.jewelrycraft.tileentity.TileEntityJewelrsCraftingTable; -import darkknight.jewelrycraft.tileentity.TileEntityMolder; -import darkknight.jewelrycraft.tileentity.TileEntityShadowEye; -import darkknight.jewelrycraft.tileentity.TileEntityShadowHand; -import darkknight.jewelrycraft.tileentity.TileEntitySmelter; -import darkknight.jewelrycraft.tileentity.renders.ItemRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityDisplayerRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityHandPedestalRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityJewelrsCraftingTableRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityMolderRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityShadowEyeRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityShadowHandRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntitySmelterRender; -import darkknight.jewelrycraft.util.JewelrycraftUtil; - -public class ClientProxy extends CommonProxy -{ - @Override -// public void registerRenderers() - { - ResourceLocation pedestalResourceLocation = new ResourceLocation("jewelrycraft", "textures/tileentities/BricksPedestal.png"); - TileEntityHandPedestalRender pedestalRender = new TileEntityHandPedestalRender(new ModelHandPedestal(pedestalResourceLocation), pedestalResourceLocation); - ResourceLocation shadowResourceLocation = new ResourceLocation("jewelrycraft", "textures/tileentities/ShadowHand.png"); - TileEntityShadowHandRender shadowHandRender = new TileEntityShadowHandRender(new ModelShadowHand(shadowResourceLocation), shadowResourceLocation); - - ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySmelter.class, new TileEntitySmelterRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMolder.class, new TileEntityMolderRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityJewelrsCraftingTable.class, new TileEntityJewelrsCraftingTableRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDisplayer.class, new TileEntityDisplayerRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityShadowEye.class, new TileEntityShadowEyeRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHandPedestal.class, pedestalRender); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityShadowHand.class, shadowHandRender); - - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.displayer), new ItemRender(new TileEntityDisplayerRender(), new TileEntityDisplayer(), new ModelDisplayer())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.jewelCraftingTable), new ItemRender(new TileEntityJewelrsCraftingTableRender(), new TileEntityJewelrsCraftingTable(), new ModelJewlersCraftingBench())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.smelter), new ItemRender(new TileEntitySmelterRender(), new TileEntitySmelter(), new ModelSmelter())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.molder), new ItemRender(new TileEntityMolderRender(), new TileEntityMolder(), new ModelMolder())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.shadowEye), new ItemRender(new TileEntityShadowEyeRender(), new TileEntityShadowEye(), new ModelShadowEye())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.handPedestal), new ItemRender(pedestalRender, new TileEntityHandPedestal(), new ModelHandPedestal(pedestalResourceLocation))); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.shadowHand), new ItemRender(shadowHandRender, new TileEntityShadowHand(), new ModelShadowHand(shadowResourceLocation))); - VillagerRegistry.instance().registerVillagerSkin(3000, new ResourceLocation("jewelrycraft", "textures/entities/jeweler.png")); - - RenderingRegistry.registerEntityRenderingHandler(EntityHeart.class, new HeartRender(new ModelHeart(), 0.25F)); - RenderingRegistry.registerEntityRenderingHandler(EntityHalfHeart.class, new HeartRender(new ModelHalfHeart(), 0.25F)); - - TabRegistry.registerTab(new InventoryTabVanilla()); - TabRegistry.registerTab(new TabJewelry()); - MinecraftForge.EVENT_BUS.register(new TabRegistry()); - MinecraftForge.EVENT_BUS.register(new PlayerRenderHandler()); - ResourceLocation jeweleryTexture = new ResourceLocation("jewelrycraft", "textures/gui/curses.png"); - MinecraftForge.EVENT_BUS.register(new ScreenHandler(Minecraft.getMinecraft(), jeweleryTexture)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/7064faac7dcf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/7064faac7dcf00141de78e4a85bb2469 deleted file mode 100644 index acfa026..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/7064faac7dcf00141de78e4a85bb2469 +++ /dev/null @@ -1,186 +0,0 @@ -/* - * Mod made by DarkKnight during the Modjam 3 - * It's an awesome mod - * I love me! :D - */ -package darkknight.jewelrycraft; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.logging.Logger; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.gen.structure.MapGenStructureIO; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.oredict.OreDictionary; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.Mod; -import cpw.mods.fml.common.Mod.EventHandler; -import cpw.mods.fml.common.Mod.Instance; -import cpw.mods.fml.common.ModMetadata; -import cpw.mods.fml.common.SidedProxy; -import cpw.mods.fml.common.event.FMLInitializationEvent; -import cpw.mods.fml.common.event.FMLPostInitializationEvent; -import cpw.mods.fml.common.event.FMLPreInitializationEvent; -import cpw.mods.fml.common.event.FMLServerStartingEvent; -import cpw.mods.fml.common.network.NetworkRegistry; -import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper; -import cpw.mods.fml.common.registry.EntityRegistry; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.common.registry.VillagerRegistry; -import cpw.mods.fml.relauncher.Side; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.commands.JewelrycraftCommands; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.container.GuiHandler; -import darkknight.jewelrycraft.curses.CurseList; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.effects.EffectsList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.events.BucketHandler; -import darkknight.jewelrycraft.events.EntityEventHandler; -import darkknight.jewelrycraft.events.KeyBindings; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketKeyPressEvent; -import darkknight.jewelrycraft.network.PacketRequestLiquidData; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendLiquidData; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.recipes.CraftingRecipes; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.worldGen.Generation; -import darkknight.jewelrycraft.worldGen.village.ComponentJewelry; -import darkknight.jewelrycraft.worldGen.village.JCTrades; -import darkknight.jewelrycraft.worldGen.village.VillageJewelryHandler; - -@Mod (modid = Reference.MODID, name = Reference.MODNAME, version = Reference.VERSION) -public class JewelrycraftMod -{ - @Instance (Reference.MODID) - public static JewelrycraftMod instance; - @SidedProxy (clientSide = "darkknight.jewelrycraft.client.ClientProxy", serverSide = "darkknight.jewelrycraft.CommonProxy") - public static CommonProxy proxy; - public static final Logger logger = Logger.getLogger("Jewelrycraft"); - public static File dir; - public static CreativeTabs jewelrycraft = new CreativeTabs("JewelryCraft"){ - @Override - public Item getTabIconItem() - { - return Item.getItemFromBlock(BlockList.jewelCraftingTable); - } - }; - public static CreativeTabs liquids = new CreativeTabLiquids("Liquids"); - public static NBTTagCompound saveData = new NBTTagCompound(); - public static NBTTagCompound clientData = new NBTTagCompound(); - public static File liquidsConf; - public static SimpleNetworkWrapper netWrapper; - public static boolean fancyRender; - public static final int MAX_CURSES = 10; - - /** - * Pre initialization of mod stuff. - * - * @param e FMLPreInitializationEvent - * @throws IOException Signals that an I/O exception has occurred. - */ - @EventHandler - public void preInit(FMLPreInitializationEvent e) throws IOException - { - ConfigHandler.preInit(e); - BlockList.preInit(e); - ItemList.preInit(e); - CraftingRecipes.preInit(e); - CurseList.preInit(e); - OreDictionary.registerOre("ingotShadow", new ItemStack(ItemList.shadowIngot)); - OreDictionary.registerOre("oreShadow", new ItemStack(BlockList.shadowOre)); - VillagerRegistry.instance().registerVillagerId(3000); - VillagerRegistry.instance().registerVillageTradeHandler(3000, new JCTrades()); - VillagerRegistry.instance().registerVillageCreationHandler(new VillageJewelryHandler()); - try{ - MapGenStructureIO.func_143031_a(ComponentJewelry.class, "Jewelrycraft:Jewelry"); - } - catch(Throwable e2){ - logger.severe("Error registering Jewelrycraft Structures with Vanilla Minecraft: this is expected in versions earlier than 1.7.10"); - } - MinecraftForge.EVENT_BUS.register(new EntityEventHandler()); - MinecraftForge.EVENT_BUS.register(BucketHandler.INSTANCE); - BucketHandler.INSTANCE.buckets.put(BlockList.moltenMetal, ItemList.bucket); - - ModMetadata metadata = e.getModMetadata(); - List authorList = new ArrayList(); - - authorList.add("DarkKnight (or sor1n)"); - authorList.add("bspkrs"); - authorList.add("domi1819"); - - dir = e.getModConfigurationDirectory(); - proxy.registerRenderers(); - netWrapper = NetworkRegistry.INSTANCE.newSimpleChannel(Reference.MODID); - netWrapper.registerMessage(PacketRequestLiquidData.class, PacketRequestLiquidData.class, 0, Side.SERVER); - netWrapper.registerMessage(PacketSendLiquidData.class, PacketSendLiquidData.class, 1, Side.CLIENT); - netWrapper.registerMessage(PacketClearColorCache.class, PacketClearColorCache.class, 2, Side.CLIENT); - netWrapper.registerMessage(PacketKeyPressEvent.class, PacketKeyPressEvent.class, 3, Side.SERVER); - netWrapper.registerMessage(PacketRequestPlayerInfo.class, PacketRequestPlayerInfo.class, 4, Side.SERVER); - netWrapper.registerMessage(PacketSendPlayerInfo.class, PacketSendPlayerInfo.class, 5, Side.CLIENT); - netWrapper.registerMessage(PacketSendCurseStats.class, PacketSendCurseStats.class, 6, Side.CLIENT); - metadata.autogenerated = false; - metadata.authorList = authorList; - metadata.url = "https://github.com/sor1n/Jewelrycraft"; - - createEntity(EntityHeart.class, "Heart", 0x000000, 0xFF0000, true); - createEntity(EntityHalfHeart.class, "Half-Heart", 0x000000, 0xFF0000, true); - -// EntityRegistry.addSpawn(EntityMob.class, 5, 2, 3, EnumCreatureType.creature, BiomeGenBase.forest, BiomeGenBase.forestHills, BiomeGenBase.birchForest, BiomeGenBase.birchForestHills, BiomeGenBase.plains, BiomeGenBase.beach, BiomeGenBase.coldBeach, BiomeGenBase.frozenRiver); - } - - public void createEntity(Class entity, String entityName, int solidColor, int spotColor, boolean hasSpawnEgg) - { - int randomID = EntityRegistry.findGlobalUniqueEntityId(); - if(hasSpawnEgg) EntityRegistry.registerGlobalEntityID(entity, entityName, randomID, solidColor, spotColor); - else EntityRegistry.registerGlobalEntityID(entity, entityName, randomID); - EntityRegistry.registerModEntity(entity, entityName, randomID, this, 40, 3, true); - } - - /** - * Initializes the world generation and key bindings. - * - * @param e FMLInitializationEvent - */ - @EventHandler - public void init(FMLInitializationEvent e) - { - GameRegistry.registerWorldGenerator(new Generation(), 0); - if (FMLCommonHandler.instance().getSide() == Side.CLIENT) FMLCommonHandler.instance().bus().register(new KeyBindings()); - new GuiHandler(); - } - - /** - * Post initialization of metals, modifiers and others. - * - * @param e FMLPostInitializationEvent - */ - @EventHandler - public void postInit(FMLPostInitializationEvent e) - { - JewelrycraftUtil.addMetals(); - JewelrycraftUtil.jamcrafters(); - EffectsList.postInit(e); - DamageSourceList.postInit(e); - } - - @Mod.EventHandler - public void serverLoad(FMLServerStartingEvent event) - { - event.registerServerCommand(new JewelrycraftCommands()); - } - -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/900cd0d2ccdf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/900cd0d2ccdf00141dc6c962aec96210 new file mode 100644 index 0000000..8f2da1a --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3a/900cd0d2ccdf00141dc6c962aec96210 @@ -0,0 +1,79 @@ +package darkknight.jewelrycraft.effects; + +import net.minecraft.block.BlockOre; +import net.minecraft.client.Minecraft; +import net.minecraft.client.settings.GameSettings.Options; +import net.minecraft.entity.monster.EntityEnderman; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.biome.BiomeGenBase; +import cpw.mods.fml.relauncher.ReflectionHelper; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; + +public class EffectEnderEye extends ModifierEffects +{ + private boolean originalVD = false; + private float originalViewDistance; + public EffectEnderEye() + { + super(new ItemStack(Items.ender_eye)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemEarrings && exists && !player.worldObj.isRemote){ + for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ + EntityEnderman enderman = (EntityEnderman)e; + ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); + Vec3 vec3 = player.getLook(1.0F).normalize(); + Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); + double d0 = vec31.lengthVector(); + vec31 = vec31.normalize(); + double d1 = vec3.dotProduct(vec31); + if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ + enderman.setTarget(null); + if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); + } + } + } + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote){ + ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); + if (chunkposition != null){ + Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); + Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); + } + } + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && rand.nextInt(500) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30)*(rand.nextBoolean()?-1:1), player.posY, player.posZ + rand.nextInt(30)*(rand.nextBoolean()?-1:1)); + if (jewelry instanceof ItemRing && exists && rand.nextInt(200) == 12){ + Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 1.0F); + for(int i = (int)player.posX - 2; i <= (int)player.posX + 2; i++) + for(int j = (int)player.posY - 2; j <= (int)player.posY + 2; j++) + for(int k = (int)player.posZ - 2; k <= (int)player.posZ + 2; k++) + if(player.worldObj.getBlock(i, j, k) instanceof BlockOre) + player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "You sense some " + player.worldObj.getBlock(i, j, k).getLocalizedName() + " around you.")); + } + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/10890341bbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/10890341bbd000141b65e2fc7f94332d deleted file mode 100644 index 6494f00..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/10890341bbd000141b65e2fc7f94332d +++ /dev/null @@ -1,112 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/3024e21485d000141a1fb02abca5ff55 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/3024e21485d000141a1fb02abca5ff55 deleted file mode 100644 index fb763fd..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/3024e21485d000141a1fb02abca5ff55 +++ /dev/null @@ -1,79 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.block.BlockOre; -import net.minecraft.client.Minecraft; -import net.minecraft.client.settings.GameSettings.Options; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - private boolean originalVD = false; - private float originalViewDistance; - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && rand.nextInt(500) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30)*(rand.nextBoolean()?-1:1), player.posY, player.posZ + rand.nextInt(30)*(rand.nextBoolean()?-1:1)); - if (jewelry instanceof ItemRing && pos != -1 && rand.nextInt(500) == 12){ - Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 1.0F); - for(int i = (int)player.posX - 2; i <= (int)player.posX + 2; i++) - for(int j = (int)player.posY - 2; j <= (int)player.posY + 2; j++) - for(int k = (int)player.posZ - 2; k <= (int)player.posZ + 2; k++) - if(player.worldObj.getBlock(i, j, k) instanceof BlockOre) - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "You sense some ore around you.")); - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/503ff62fb6d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/503ff62fb6d000141b65e2fc7f94332d deleted file mode 100644 index 3fd51ed..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/503ff62fb6d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 145, 150, 35, 30); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/a06f5eb026de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/a06f5eb026de00141043c3025ec60dfc new file mode 100644 index 0000000..2a9dca7 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3b/a06f5eb026de00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.5f, 0.5f, 0.0f); + drawTexturedModalRect(20, 14 + (size + 20) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 20, 7 + (size + 6) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3c/20d6830327de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3c/20d6830327de00141043c3025ec60dfc new file mode 100644 index 0000000..69becce --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3c/20d6830327de00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 7 + (size + 6) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3c/60160ac99ad000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3c/60160ac99ad000141b65e2fc7f94332d deleted file mode 100644 index ac47a51..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3c/60160ac99ad000141b65e2fc7f94332d +++ /dev/null @@ -1,74 +0,0 @@ -package darkknight.jewelrycraft.container; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabModifiers extends GuiTab -{ - int maxPages; - public GuiTabModifiers(int id) - { - super("Modifiers", id); - } - - /** - * @return - */ - @Override - public ItemStack getIcon() - { - return new ItemStack(Items.blaze_powder); - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - String text = ""; - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - text = "Although you can add anything as a modifier, only some objects have an effect. In this tab you can find all of modifiers that have a use and what they do, in the form of a story/riddle/poem. However different jewellery have different effects for the same modifier."; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - case 2: - text = "The ancient ones talked about a rising fire in your heart. Fret do not, for flames do not burn, but water might sting a turn. Watch your step, do not be cocky, for its protection is a bit sloppy."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), new ItemStack(Items.blaze_powder), text, 40f); - break; - case 3: - text = "Light and swift as a feather can be good all together. Enemies miss and get confused, this power can be abused. Against an arrow you can't compare, so move around, don't just stare. Fire is your enemy and weakness is the penalty."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), new ItemStack(Items.feather), text, 40f); - break; - case 4: - text = "Endermen may tolerate you, end portals are near too, you may find ore that is true. But be careful, for the power may make you dizzy, blind you if you're a sissy, worsen your vision if you're unaware and shift positions everywhere."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), new ItemStack(Items.ender_eye), text, 40f); - break; - } - } - - /** - * @return - */ - @Override - public int getMaxPages() - { - return 4; - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3c/90a539afbbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3c/90a539afbbd000141b65e2fc7f94332d deleted file mode 100644 index 1e2ce65..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3c/90a539afbbd000141b65e2fc7f94332d +++ /dev/null @@ -1,114 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3d/0091dffeb5d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3d/0091dffeb5d000141b65e2fc7f94332d deleted file mode 100644 index 787595c..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3d/0091dffeb5d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 145, 150, 35, 30); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3d/30f66b0413cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3d/30f66b0413cf00141c41f52413db5e31 deleted file mode 100644 index b4cb070..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3d/30f66b0413cf00141c41f52413db5e31 +++ /dev/null @@ -1,57 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import java.util.ArrayList; -import java.util.Random; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.DamageSource; - -public class ModifierEffects -{ - protected ItemStack modifier; - protected Random rand = new Random(); - protected static ArrayList effects = new ArrayList(); - - /** - * @param modifier - */ - public ModifierEffects(ItemStack modifier) - { - this.modifier = modifier; - effects.add(this); - } - - /** - * @return - */ - public static ArrayList getEffects() - { - return effects; - } - - /** - * @param item - * @param player - * @param jewelry - */ - public void action(ItemStack item, EntityPlayer player, Item jewelry){}; - /** - * @param item - * @param player - * @param target - * @param jewelry - * @return - */ - public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount){}; - - /** - * @param item - * @param player - * @param source - * @param jewelry - * @return - */ - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount){}; -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3d/801c40ebcbdf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3d/801c40ebcbdf00141dc6c962aec96210 new file mode 100644 index 0000000..5cbc1c4 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3d/801c40ebcbdf00141dc6c962aec96210 @@ -0,0 +1,97 @@ +package darkknight.jewelrycraft.effects; + +import java.util.Iterator; +import java.util.List; +import net.minecraft.entity.Entity; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class EffectFeather extends ModifierEffects +{ + public EffectFeather() + { + super(new ItemStack(Items.feather)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive earrings + if (jewelry instanceof ItemEarrings && exists){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); + List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); + if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ + Iterator iterator = list.iterator(); + while (iterator.hasNext()){ + EntityArrow arrow = (EntityArrow)iterator.next(); + if ((arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0) && rand.nextInt(2 + JewelryNBT.numberOfModifiers(item)) == 0) arrow.setDead(); + } + } + } + + if (jewelry instanceof ItemBracelet && exists){ + // Positive bracelet + if (player.motionY < 0) player.motionY *= (0.6D + (JewelryNBT.numberOfModifiers(item) - 1)*0.03D); + if (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0) player.fallDistance = 0F; + // Negative bracelet + if (!player.isPotionActive(Potion.moveSlowdown) || player.getActivePotionEffect(Potion.moveSlowdown).getDuration() < 30) player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 80, 1)); + } + } + + @Override + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + NBTTagCompound enemyData = target.getEntityData(); + if (jewelry instanceof ItemRing && exists && enemyData.getInteger("reAttacked") == 0){ + // Negative ring + enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); + target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); + // Positive ring + if (rand.nextInt(2) == 0){ + enemyData.setInteger("stunTime", 50); + enemyData.setBoolean("stunned", true); + } + playerInfo.setBoolean("weakDamage", true); + } + if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ + player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); + playerInfo.setBoolean("negateDamage", true); + } + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); + // Negative earrings + if (jewelry instanceof ItemEarrings && exists && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/309bbd4008de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/309bbd4008de00141043c3025ec60dfc new file mode 100644 index 0000000..f873789 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/309bbd4008de00141043c3025ec60dfc @@ -0,0 +1,183 @@ +package darkknight.jewelrycraft.model; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + if ((int)f3 != -1){ + int ingotColor = (int)f3; + int red = ingotColor >> 16 & 0xff; + int green = ingotColor >> 8 & 0xff; + int blue = ingotColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/5019b6d220cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/5019b6d220cf00141c41f52413db5e31 deleted file mode 100644 index 938ad15..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/5019b6d220cf00141c41f52413db5e31 +++ /dev/null @@ -1,32 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player, Entity target) - { - if (!world.isRemote && !(target instanceof EntityMob)){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.getFloat("BlackHeart") < 20f && rand.nextInt(5) == 0) playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 1.0F); - JewelrycraftUtil.addCursePoints(player, 10); - } - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/7005297f22cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/7005297f22cf00141c41f52413db5e31 deleted file mode 100644 index 7cd0f97..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/7005297f22cf00141c41f52413db5e31 +++ /dev/null @@ -1,460 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - event.setCanceled(true); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/808884ea13cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/808884ea13cf00141c41f52413db5e31 deleted file mode 100644 index c7f0fae..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3e/808884ea13cf00141c41f52413db5e31 +++ /dev/null @@ -1,28 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import darkknight.jewelrycraft.util.PlayerUtils; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void deathAction(World world, EntityPlayer player) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.getFloat("BlackHeart") < 20f) playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 2.0F); - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/50b62efab9d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/50b62efab9d000141b65e2fc7f94332d deleted file mode 100644 index e569381..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/50b62efab9d000141b65e2fc7f94332d +++ /dev/null @@ -1,232 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/6048b993bcd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/6048b993bcd000141b65e2fc7f94332d deleted file mode 100644 index 907d02c..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/6048b993bcd000141b65e2fc7f94332d +++ /dev/null @@ -1,243 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_LIGHT0); - } - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - GL11.glDisable(GL11.GL_LIGHT0); - GL11.glDisable(GL11.GL_LIGHTING); - } - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/c022d38cf2cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/c022d38cf2cf0014170de422db399e8d deleted file mode 100644 index b60d4a0..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/c022d38cf2cf0014170de422db399e8d +++ /dev/null @@ -1,64 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX -= 0.01D*Math.signum((double)chunkposition.chunkPosX); - Minecraft.getMinecraft().thePlayer.motionZ -= 0.01D*Math.signum((double)chunkposition.chunkPosZ); - System.out.println(chunkposition.chunkPosX + " " + player.posX); -// player.addChatMessage(new ChatComponentText("You hear a faint whisper telling you: \"You are getting closer, just " + (int)player.getDistance((double)chunkposition.chunkPosX, (double)chunkposition.chunkPosY, (double)chunkposition.chunkPosZ) + " more blocks to go.\"")); - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); -// if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/e0ed63d312cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/e0ed63d312cf00141c41f52413db5e31 deleted file mode 100644 index cb38b76..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/3f/e0ed63d312cf00141c41f52413db5e31 +++ /dev/null @@ -1,261 +0,0 @@ -package darkknight.jewelrycraft.item; - -import java.awt.image.BufferedImage; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import javax.imageio.ImageIO; -import net.minecraft.block.Block; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.texture.TextureManager; -import net.minecraft.client.resources.IResourceManager; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.StatCollector; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.effects.ModifierEffects; -import darkknight.jewelrycraft.util.JewelryNBT; - -public abstract class ItemBaseJewelry extends Item -{ - public ItemBaseJewelry() - { - super(); - setMaxStackSize(1); - setCreativeTab(JewelrycraftMod.jewelrycraft); - } - - public boolean requiresMultipleRenderPasses() - { - return true; - } - - @SideOnly (Side.CLIENT) - public int getColorFromItemStack(ItemStack stack, int pass) - { - try{ - return color(stack, pass); - } - catch(IOException e){ - e.printStackTrace(); - } - return 16777215; - } - - /** - * @param stack - * @param pass - * @return - * @throws IOException - */ - public static int color(ItemStack stack, int pass) throws IOException - { - IResourceManager rm = Minecraft.getMinecraft().getResourceManager(); - BufferedImage icon; - if (pass == 0 && stack != null && JewelryNBT.ingot(stack) != null && Item.getIdFromItem(JewelryNBT.ingot(stack).getItem()) > 0 && JewelryNBT.ingot(stack).getIconIndex() != null && JewelryNBT.ingotColor(stack) == 16777215){ - ItemStack ingot = JewelryNBT.ingot(stack); - icon = ImageIO.read(rm.getResource(getLocation(ingot, stack, true)).getInputStream()); - int height = icon.getHeight(); - int width = icon.getWidth(); - Map m = new HashMap(); - for(int i = 0; i < width; i++) - for(int j = 0; j < height; j++){ - int rgb = icon.getRGB(i, j); - int red = rgb >> 16 & 0xff; - int green = rgb >> 8 & 0xff; - int blue = rgb & 0xff; - int[] rgbArr = {red, green, blue}; - int Cmax = Math.max(red, Math.max(green, blue)); - int Cmin = Math.min(red, Math.min(green, blue)); - if (!isGray(rgbArr)) m.put(rgb, (Cmax + Cmin) / 2); - } - int color = getMostCommonColour(m); - if (JewelryNBT.ingot(stack) != null && JewelryNBT.ingot(stack).getItem().getColorFromItemStack(JewelryNBT.ingot(stack), 1) != 16777215) JewelryNBT.addIngotColor(stack, JewelryNBT.ingot(stack).getItem().getColorFromItemStack(JewelryNBT.ingot(stack), 1)); - else JewelryNBT.addIngotColor(stack, color); - }else if (pass == 1 && stack != null && JewelryNBT.gem(stack) != null && JewelryNBT.gem(stack).getIconIndex() != null && JewelryNBT.gem(stack) != null){ - ItemStack gem = JewelryNBT.gem(stack); - icon = ImageIO.read(rm.getResource(getLocation(gem, stack, true)).getInputStream()); - int height = icon.getHeight(); - int width = icon.getWidth(); - Map m = new HashMap(); - for(int i = 0; i < width; i++) - for(int j = 0; j < height; j++){ - int rgb = icon.getRGB(i, j); - int red = rgb >> 16 & 0xff; - int green = rgb >> 8 & 0xff; - int blue = rgb & 0xff; - int[] rgbArr = {red, green, blue}; - int Cmax = Math.max(red, Math.max(green, blue)); - int Cmin = Math.min(red, Math.min(green, blue)); - if (!isGray(rgbArr)) m.put(rgb, (Cmax + Cmin) / 2); - } - int color = getMostCommonColour(m); - if (JewelryNBT.gem(stack).getItem().getColorFromItemStack(JewelryNBT.gem(stack), 1) == 16777215) JewelryNBT.addGemColor(stack, color); - else JewelryNBT.addGemColor(stack, JewelryNBT.gem(stack).getItem().getColorFromItemStack(JewelryNBT.gem(stack), 1)); - } - if (pass == 0 && JewelryNBT.ingot(stack) != null) return JewelryNBT.ingotColor(stack); - if (pass == 1 && JewelryNBT.gem(stack) != null) return JewelryNBT.gemColor(stack); - else if (JewelryNBT.ingot(stack) != null) return JewelryNBT.ingotColor(stack); - return 16777215; - } - - /** - * @param item - * @param stack - * @param changeMeta - * @return - */ - public static ResourceLocation getLocation(ItemStack item, ItemStack stack, boolean changeMeta) - { - String domain = ""; - String texture; - if (changeMeta && (Item.getIdFromItem(item.getItem()) == Block.getIdFromBlock(Blocks.stained_glass) || Item.getIdFromItem(item.getItem()) == Block.getIdFromBlock(Blocks.stained_hardened_clay) || Item.getIdFromItem(item.getItem()) == Block.getIdFromBlock(Blocks.wool) || Item.getIdFromItem(item.getItem()) == Block.getIdFromBlock(Blocks.carpet))) item.setItemDamage(15 - item.getItemDamage()); - IIcon itemIcon = item.getItem().getIcon(item, 0); - String iconName = itemIcon.getIconName(); - if (iconName.substring(0, iconName.indexOf(":") + 1) != "") domain = iconName.substring(0, iconName.indexOf(":") + 1).replace(":", " ").trim(); - else domain = "minecraft"; - texture = iconName.substring(iconName.lastIndexOf(":") + 1) + ".png"; - ResourceLocation textureLocation = null; - TextureManager texturemanager = Minecraft.getMinecraft().getTextureManager(); - if (texturemanager.getResourceLocation(item.getItemSpriteNumber()).toString().contains("items")) textureLocation = new ResourceLocation(domain.toLowerCase(), "textures/items/" + texture); - else textureLocation = new ResourceLocation(domain.toLowerCase(), "textures/blocks/" + texture); - return textureLocation; - } - - /** - * @param map - * @return - */ - public static int getMostCommonColour(Map map) - { - List list = new LinkedList(map.entrySet()); - Collections.sort(list, new Comparator(){ - public int compare(Object o1, Object o2) - { - return ((Comparable)((Map.Entry)o1).getValue()).compareTo(((Map.Entry)o2).getValue()); - } - }); - Map.Entry me = (Map.Entry)list.get(list.size() - 1); - for(int i = 0; i < list.size(); i++){ - float alpha = Float.valueOf(list.get(i).toString().split("=")[1]); - if (alpha < 180) me = (Map.Entry)list.get(i); - } - int rgb = (Integer)me.getKey(); - return rgb; - } - - /** - * @param rgbArr - * @return - */ - public static boolean isGray(int[] rgbArr) - { - int rgbSum = rgbArr[0] + rgbArr[1] + rgbArr[2]; - if (rgbSum > 0 && rgbSum < 256 * 3) return false; - return true; - } - - /** - * @param stack - * @return - */ - public String getItemStackDisplayName(ItemStack stack) - { - if (JewelryNBT.ingot(stack) != null && Item.getIdFromItem(JewelryNBT.ingot(stack).getItem()) > 0) return JewelryNBT.ingot(stack).getDisplayName().replace("Ingot", " ").trim() + " " + ("" + StatCollector.translateToLocal(getUnlocalizedNameInefficiently(stack) + ".name")).trim(); - return ("" + StatCollector.translateToLocal(getUnlocalizedNameInefficiently(stack) + ".name")).trim(); - } - - /** - * allows items to add custom lines of information to the mouseover description. - * - * @param stack - * @param player - * @param list - * @param par4 - */ - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean par4) - { - if (stack.hasTagCompound() && par4){ - ItemStack ingot = JewelryNBT.ingot(stack); - if (ingot != null && Item.getIdFromItem(JewelryNBT.ingot(stack).getItem()) > 0) list.add("Ingot: " + EnumChatFormatting.YELLOW + ingot.getDisplayName()); - ItemStack gem = JewelryNBT.gem(stack); - if (gem != null) list.add("Gem: " + EnumChatFormatting.BLUE + gem.getDisplayName()); - ArrayList modifier = JewelryNBT.modifier(stack); - if (!modifier.isEmpty()) list.add("Modifiers: "); - for(int i = 0; i < modifier.size(); i++) - list.add(EnumChatFormatting.DARK_PURPLE + modifier.get(i).getDisplayName() + " x" + modifier.get(i).stackSize); - } - } - - /** - * @param stack - * @param player - */ - public void action(ItemStack stack, EntityPlayer player) - { - for(ModifierEffects mod: ModifierEffects.getEffects()) - mod.action(stack, player, this); - } - - /** - * @param item - * @param player - * @param source - * @return - */ - public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, float amount) - { - for(ModifierEffects mod: ModifierEffects.getEffects()) - return mod.onPlayerAttackedCacellable(item, player, source, this, amount); - return false; - } - - /** - * @param item - * @param player - * @param target - * @return - */ - public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, float amount) - { - for(ModifierEffects mod: ModifierEffects.getEffects()) - return mod.onEntityAttackedCacellable(item, player, target, this, amount); - return false; - } - - /** - * @param item - * @param player - * @param source - * @return - */ - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, float amount) - { - for(ModifierEffects mod: ModifierEffects.getEffects()) mod.onPlayerAttacked(item, player, source, this, amount); - } - - /** - * @param item - * @param player - * @param target - * @return - */ - public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, float amount) - { - for(ModifierEffects mod: ModifierEffects.getEffects()) mod.onEntityAttacked(item, player, target, this, amount); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4/003ee58eafd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4/003ee58eafd000141b65e2fc7f94332d deleted file mode 100644 index 8b2e5b5..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4/003ee58eafd000141b65e2fc7f94332d +++ /dev/null @@ -1,247 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_LIGHT0); - } - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - GL11.glDisable(GL11.GL_LIGHT0); - GL11.glDisable(GL11.GL_LIGHTING); - } - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ - GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - if(ItemStack.areItemStacksEqual(item, new ItemStack(Blocks.light_weighted_pressure_plate, 1, 0)))GL11.glRotatef(25.0F, -1.0F, 0.0F, 0.0F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_LIGHT0); - } - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - GL11.glDisable(GL11.GL_LIGHT0); - GL11.glDisable(GL11.GL_LIGHTING); - } - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - GL11.glPushMatrix(); - drawHoveringText(lst, x, y, fontRendererObj); - GL11.glEnable(GL11.GL_DEPTH_TEST); - GL11.glPopMatrix(); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4/c02871fbb6d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4/c02871fbb6d000141b65e2fc7f94332d deleted file mode 100644 index 59daac9..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4/c02871fbb6d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 153, 20, 30); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() - 20, gui.getTop() + 15); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/40/003a974204de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/40/003a974204de00141043c3025ec60dfc new file mode 100644 index 0000000..889f109 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/40/003a974204de00141043c3025ec60dfc @@ -0,0 +1,278 @@ +package darkknight.jewelrycraft.tileentity; + +import java.util.ArrayList; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import darkknight.jewelrycraft.block.BlockHandPedestal; +import darkknight.jewelrycraft.block.BlockList; +import darkknight.jewelrycraft.particles.EntityShadowsFX; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class TileEntityShadowEye extends TileEntity +{ + public int opening, timer, t = 20; + public boolean active; + public ArrayList pedestalItems = new ArrayList(); + ResourceLocation particleTexture = new ResourceLocation(Variables.MODID, "textures/particle/shadows.png"); + public EntityPlayer target; + + public TileEntityShadowEye() + { + opening = 1; + timer = 20; + active = false; + } + + /** + * @param nbt + */ + @Override + public void writeToNBT(NBTTagCompound nbt) + { + super.writeToNBT(nbt); + nbt.setInteger("opening", opening); + nbt.setInteger("timer", timer); + nbt.setBoolean("active", active); + } + + /** + * @param nbt + */ + @Override + public void readFromNBT(NBTTagCompound nbt) + { + super.readFromNBT(nbt); + opening = nbt.getInteger("opening"); + timer = nbt.getInteger("timer"); + active = nbt.getBoolean("active"); + } + + /** + * + */ + @Override + public void updateEntity() + { + super.updateEntity(); + boolean valid = isValidStructure(worldObj, xCoord, yCoord, zCoord, blockMetadata); + if (active) timer--; + if (active && target != null && this.getDistanceFrom(target.posX, target.posY, target.posZ) > 20D){ + active = false; + timer = -1; + } + if (opening == 4 && timer <= 0) active = false; + if (!active && timer <= 0 && opening != 1){ + if (t > 0) t--; + if (t <= 0){ + opening--; + t = 20; + } + } + if (opening == 2 && timer <= 0 && t == 10){ + addData(worldObj, xCoord, yCoord, zCoord); + TileEntityHandPedestal target = (TileEntityHandPedestal)worldObj.getTileEntity(xCoord, yCoord - 3, zCoord); + if (target != null && target.getHeldItemStack() != null) JewelryNBT.addModifiers(target.getHeldItemStack(), pedestalItems); + } + if (active && timer <= 0){ + if (opening < 4){ + opening++; + timer = 20; + } + if (valid && opening == 4) timer = 1000; + else if (!valid){ + active = false; + timer = -1; + } + } + for(Object player: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(8D, 8D, 8D))) + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", false); + } + if (active && opening == 4){ + float din = 6F; + int i = Minecraft.getMinecraft().gameSettings.particleSetting; + for(float x = -din; x <= din; x += 0.2F) + for(float z = -din; z <= din; z += 0.2F) + if (x * x + z * z >= din * din - 1 && x * x + z * z <= din * din + 1) Minecraft.getMinecraft().effectRenderer.addEffect(new EntityShadowsFX(worldObj, xCoord + x + 0.5F, yCoord - 0.5F, zCoord + z + 0.5F, 15F, 0.04F - 0.01F * i, particleTexture)); + for(int l = 0; l <= 2 - i; l++) + worldObj.spawnParticle("depthsuspend", xCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), yCoord - 2F + worldObj.rand.nextFloat(), zCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), 0, 0, 0); + for(Object player: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(8D, 8D, 8D))) + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", true); + } + } + } + + /** + * @param world + * @param x + * @param y + * @param z + * @param metadata + * @return + */ + public boolean isValidStructure(World world, int x, int y, int z, int metadata) + { + if (world.getBlockMetadata(x, y, z) == 0 || world.getBlockMetadata(x, y, z) == 2){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x + 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x + 1, y + 1, z) != 5) return false; + if (world.getBlock(x - 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x - 1, y + 1, z) != 5) return false; + // 2nd Layer + if (world.getBlock(x + 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 2, y, z) != 1) return false; + if (world.getBlock(x + 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 1, y, z) != 4) return false; + if (world.getBlock(x - 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 1, y, z) != 5) return false; + if (world.getBlock(x - 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 2, y, z) != 0) return false; + // 3rd Layer + if (world.getBlock(x + 2, y - 1, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 1, z) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x + 2, y - 2, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 2, z) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x + 2, y - 3, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 3, z) != Blocks.stonebrick) return false; + }else if (world.getBlockMetadata(x, y, z) == 1 || world.getBlockMetadata(x, y, z) == 3){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x, y + 1, z + 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z + 1) != 5) return false; + if (world.getBlock(x, y + 1, z - 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z - 1) != 5) return false; + // 2nd Layer + if (world.getBlock(x, y, z + 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 2) != 3) return false; + if (world.getBlock(x, y, z + 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 1) != 6) return false; + if (world.getBlock(x, y, z - 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 1) != 7) return false; + if (world.getBlock(x, y, z - 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 2) != 2) return false; + // 3rd Layer + if (world.getBlock(x, y - 1, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 1, z - 2) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x, y - 2, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 2, z - 2) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x, y - 3, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 3, z - 2) != Blocks.stonebrick) return false; + } + // 3rd Layer + if (world.getBlock(x - 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x - 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + // 4th Layer + if (world.getBlock(x - 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 2, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z + 4) != Blocks.stonebrick) return false; + // 5th Layer + // Pillars + if (world.getBlock(x - 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 3, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z + 4) != Blocks.stonebrick) return false; + // Pedestals + if (!(world.getBlock(x, y - 3, z) instanceof BlockHandPedestal)) return false; + if (world.getBlock(x - 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z + 2) != 1) return false; + if (world.getBlock(x - 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x - 5, y - 3, z) != 2) return false; + if (world.getBlock(x - 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z - 2) != 3) return false; + if (world.getBlock(x - 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z - 4) != 3) return false; + if (world.getBlock(x, y - 3, z - 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z - 5) != 4) return false; + if (world.getBlock(x + 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z - 4) != 5) return false; + if (world.getBlock(x + 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z - 2) != 5) return false; + if (world.getBlock(x + 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x + 5, y - 3, z) != 6) return false; + if (world.getBlock(x + 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z + 2) != 7) return false; + if (world.getBlock(x + 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z + 4) != 7) return false; + if (world.getBlock(x, y - 3, z + 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z + 5) != 0) return false; + if (world.getBlock(x - 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z + 4) != 1) return false; + return true; + } + + /** + * @param world + * @param x + * @param y + * @param z + */ + public void addData(World world, int x, int y, int z) + { + pedestalItems.clear(); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z - 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z + 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z + 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z + 4)); + } + + /** + * @param pedestal + */ + public void addPedestalInfo(TileEntityHandPedestal pedestal) + { + ItemStack heldItemStack; + if (pedestal != null && (heldItemStack = pedestal.getHeldItemStack()) != null){ + if (pedestalItems.isEmpty()) pedestalItems.add(heldItemStack.copy()); + else{ + boolean hasItem = false; + int index = 0; + for(int ind = 0; ind < pedestalItems.size() && !hasItem; ind++) + if (heldItemStack.getItem().equals(pedestalItems.get(ind).getItem()) && heldItemStack.getItemDamage() == pedestalItems.get(ind).getItemDamage()){ + index = ind; + hasItem = true; + if (heldItemStack.hasTagCompound() && pedestalItems.get(ind).hasTagCompound() && !heldItemStack.getTagCompound().equals(pedestalItems.get(ind).getTagCompound())) hasItem = false; + } + if (!hasItem) pedestalItems.add(heldItemStack.copy()); + else{ + ItemStack object = pedestalItems.get(index).copy(); + object.stackSize++; + pedestalItems.set(index, object); + } + } + pedestal.removeHeldItemStack(); + pedestal.openHand(); + } + else if(pedestal != null && target != null) JewelrycraftUtil.addCursePoints(target, 20); + } + + /** + * @return + */ + @Override + public Packet getDescriptionPacket() + { + NBTTagCompound nbttagcompound = new NBTTagCompound(); + writeToNBT(nbttagcompound); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 1, nbttagcompound); + } + + /** + * @param net + * @param packet + */ + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet) + { + readFromNBT(packet.func_148857_g()); + worldObj.func_147479_m(xCoord, yCoord, zCoord); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/40/b0889c1bbcd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/40/b0889c1bbcd000141b65e2fc7f94332d deleted file mode 100644 index 0264b78..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/40/b0889c1bbcd000141b65e2fc7f94332d +++ /dev/null @@ -1,115 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.shadowEye), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/41/c080ae01bcd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/41/c080ae01bcd000141b65e2fc7f94332d deleted file mode 100644 index 02a7037..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/41/c080ae01bcd000141b65e2fc7f94332d +++ /dev/null @@ -1,236 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/42/20200c94b8d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/42/20200c94b8d000141b65e2fc7f94332d deleted file mode 100644 index bad5b6a..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/42/20200c94b8d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 153, 12, 12); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() - 20, gui.getTop() + 15); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 15, y + 25, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/43/70f7cff5b6d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/43/70f7cff5b6d000141b65e2fc7f94332d deleted file mode 100644 index fcbad49..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/43/70f7cff5b6d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 154, 30, 30); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() - 20, gui.getTop() + 15); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/44/007d9fbe0ade00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/44/007d9fbe0ade00141043c3025ec60dfc new file mode 100644 index 0000000..a771686 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/44/007d9fbe0ade00141043c3025ec60dfc @@ -0,0 +1,186 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + System.out.println((int)f3); + if ((int)f3 != -1){ + int ingotColor = Math.abs((int)f3); + int alpha = (ingotColor >> 24) & 0xff; + int red = (ingotColor >> 16) & 0xff; + int green = (ingotColor >> 8) & 0xff; + int blue = ingotColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/44/c04764282ede00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/44/c04764282ede00141043c3025ec60dfc new file mode 100644 index 0000000..59fc89c --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/44/c04764282ede00141043c3025ec60dfc @@ -0,0 +1,109 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ +// for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(5 + 16*count, resolution.getScaledHeight() - 10, 0 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlackHeart")) / 2.0F), 15, resolution.getScaledHeight() - 45 + 16 * count, 16777215); +// if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("BlackHeart") > 0){ +// for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(5 + 16*count, resolution.getScaledHeight() - 10, 1 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlackHeart")) / 2.0F), 15, resolution.getScaledHeight() - 45 + 16 * count, 16777215); +// if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(5 + 16*count, resolution.getScaledHeight() - 10, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/44/d0a17b8f13cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/44/d0a17b8f13cf00141c41f52413db5e31 deleted file mode 100644 index d4ba829..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/44/d0a17b8f13cf00141c41f52413db5e31 +++ /dev/null @@ -1,24 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void deathAction(World world, EntityPlayer player) - { - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/90a975eca4ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/90a975eca4ce00141801ff0972626827 deleted file mode 100644 index fd23486..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/90a975eca4ce00141801ff0972626827 +++ /dev/null @@ -1,103 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import java.util.Iterator; -import java.util.List; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class EffectFeather extends ModifierEffects -{ - public EffectFeather() - { - super(new ItemStack(Items.feather)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - // Positive earrings - if (jewelry instanceof ItemEarrings && pos != -1){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); - List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); - if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ - Iterator iterator = list.iterator(); - while (iterator.hasNext()){ - EntityArrow arrow = (EntityArrow)iterator.next(); - if (rand.nextInt(3) == 0 && (arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0)) arrow.setDead(); - } - } - } - // Positive bracelet - if (jewelry instanceof ItemBracelet && pos != -1){ - if (player.motionY < 0) player.motionY *= 0.6D; - player.setAIMoveSpeed(player.getAIMoveSpeed() / 2); - player.fallDistance = 0F; - } - } - - @Override - public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - NBTTagCompound enemyData = target.getEntityData(); - if (jewelry instanceof ItemRing && pos != -1 && enemyData.getInteger("reAttacked") == 0){ - enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); - target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); - if (rand.nextInt(2) == 0){ - enemyData.setInteger("stunTime", 50); - enemyData.setBoolean("stunned", true); - } - playerInfo.setBoolean("weakDamage", true); - playerInfo.setBoolean("stunned", true); - } - if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (jewelry instanceof ItemNecklace && pos != -1 && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); - playerInfo.setBoolean("negateDamage", true); - } - // Negative necklace - if (jewelry instanceof ItemNecklace && pos != -1 && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); - // Negative earrings - if (jewelry instanceof ItemEarrings && pos != -1 && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/f045d0fb2ede00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/f045d0fb2ede00141043c3025ec60dfc new file mode 100644 index 0000000..dcf7459 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/45/f045d0fb2ede00141043c3025ec60dfc @@ -0,0 +1,108 @@ +/** + * + */ +package darkknight.jewelrycraft.entities; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureAttribute; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.world.World; + +/** + * @author Sorin + */ +public class EntityHeart extends EntityLiving +{ + public EntityHeart(World world) + { + super(world); + this.setSize(0.4F, 0.4F); + } + + public boolean isEntityInvulnerable() + { + return true; + } + + protected boolean canDespawn() + { + return false; + } + + @Override + public void onCollideWithPlayer(EntityPlayer player) + { + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (getType() == "Red" && player.getHealth() < player.getMaxHealth()){ + player.heal(2f); + this.setDead(); + } + else if (getType() != "Red"){ + playerInfo.setFloat(getType() + "Heart", playerInfo.getFloat(getType() + "Heart") + 2.0F <= 20f ? playerInfo.getFloat(getType() + "Heart") + 2.0F : 20f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + this.setDead(); + } + } + + @Override + protected void updateEntityActionState() + { + } + + @SideOnly(Side.CLIENT) + public boolean canRenderOnFire() + { + return false; + } + + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(16, "Red"); + } + + public void writeEntityToNBT(NBTTagCompound nbt) + { + super.writeEntityToNBT(nbt); + nbt.setString("Type", getType()); + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + public void readEntityFromNBT(NBTTagCompound nbt) + { + super.readEntityFromNBT(nbt); + setType(nbt.getString("Type")); + } + + public String getType() + { + return this.dataWatcher.getWatchableObjectString(16); + } + + public void setType(String type) + { + this.dataWatcher.updateObject(16, type); + } + + public EnumCreatureAttribute getCreatureAttribute() + { + return EnumCreatureAttribute.UNDEAD; + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/46/7051d7cf22cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/46/7051d7cf22cf00141c41f52413db5e31 deleted file mode 100644 index 3cdb2bc..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/46/7051d7cf22cf00141c41f52413db5e31 +++ /dev/null @@ -1,460 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() <= 1) event.setCanceled(true); - if (player.getHealth() != player.prevHealth || player.getHealth() <= 0){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/48/20293dcd23cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/48/20293dcd23cf00141c41f52413db5e31 deleted file mode 100644 index b6321a9..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/48/20293dcd23cf00141c41f52413db5e31 +++ /dev/null @@ -1,99 +0,0 @@ -package darkknight.jewelrycraft.events; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.GuiChat; -import net.minecraft.client.gui.ScaledResolution; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.MathHelper; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.event.RenderGameOverlayEvent; -import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; -import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import darkknight.jewelrycraft.curses.Curse; - -public class ScreenHandler extends Gui -{ - private Minecraft mc; - public static NBTTagCompound tagCache = null; - public static int cooldown; - static ResourceLocation texture; - static ResourceLocation hearts = new ResourceLocation("jewelrycraft", "textures/gui/hearts.png"); - - public ScreenHandler(Minecraft mc, ResourceLocation tex) - { - super(); - this.mc = mc; - texture = tex; - } - - @SubscribeEvent - public void renderScreen(RenderGameOverlayEvent event) - { - Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); - if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; - if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ - int count = 0; - int size = 32; - ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); - if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ - mc.renderEngine.bindTexture(texture); - for(Curse curse: Curse.getCurseList()){ - if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ - Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); - Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); - count++; - } - } - count = 0; - for(Curse curse: Curse.getCurseList()) - if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ - int tag = curse.getID(); - GL11.glPushMatrix(); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glScalef(0.5f, 0.5f, 0.0f); - drawTexturedModalRect(4, 4 + (size + 12) * count, tag % size * size, tag / size * size, size, size); - GL11.glPopMatrix(); - count++; - } - count = 0; - size = 16; - for(Curse curse: Curse.getCurseList()) - if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ - int tag = curse.getID(); - mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 20, 7 + (size + 6) * count, 16777215); - if (tagCache.getInteger(curse.getName()) == 2){ - mc.renderEngine.bindTexture(hearts); - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - GL11.glColor4f(1f, 1f, 1f, 0.5f); - drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); - GL11.glPopMatrix(); - } - count++; - } - } - GL11.glColor4f(1f, 1f, 1f, 1.0f); - mc.renderEngine.bindTexture(hearts); - count = 0; - if (tagCache.getFloat("BlueHeart") > 0){ - for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) - drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); - if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); - } - count++; - if (tagCache.getFloat("BlackHeart") > 0){ - for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) - drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); - if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); - } - count++; - if (tagCache.getFloat("WhiteHeart") > 0) - drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); - } - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/48/e03e86c12ede00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/48/e03e86c12ede00141043c3025ec60dfc new file mode 100644 index 0000000..974cea0 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/48/e03e86c12ede00141043c3025ec60dfc @@ -0,0 +1,46 @@ +/** + * + */ +package darkknight.jewelrycraft.entities; + +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.world.World; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +/** + * @author Sorin + */ +public class EntityHalfHeart extends EntityHeart +{ + public EntityHalfHeart(World world) + { + super(world); + } + + @Override + public void onCollideWithPlayer(EntityPlayer player) + { + if (!player.worldObj.isRemote){ + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (getType().equals("Red") && player.getHealth() < player.getMaxHealth()){ + player.heal(1f); + this.setDead(); + }else if (getType().equals("White") && playerInfo.getFloat("WhiteHeart") > 0.1F){ + playerInfo.setFloat(getType() + "Heart", 0F); + player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() + 2f); + this.setDead(); + }else if (!getType().equals("Red") && playerInfo.getFloat(getType() + "Heart") < 20f){ + playerInfo.setFloat(getType() + "Heart", playerInfo.getFloat(getType() + "Heart") + 1.0F <= 20f ? playerInfo.getFloat(getType() + "Heart") + 1.0F : 20f); + this.setDead(); + } + } + else JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/48/f0362027f4cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/48/f0362027f4cf0014170de422db399e8d deleted file mode 100644 index 339dd64..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/48/f0362027f4cf0014170de422db399e8d +++ /dev/null @@ -1,62 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D*Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D*Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); -// if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/2066f1c9bbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/2066f1c9bbd000141b65e2fc7f94332d deleted file mode 100644 index f404f18..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/2066f1c9bbd000141b65e2fc7f94332d +++ /dev/null @@ -1,115 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - GL11.glTranslatef(0F, 0.2F, 0F); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/707c7127bed000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/707c7127bed000141b65e2fc7f94332d deleted file mode 100644 index 70a597e..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/49/707c7127bed000141b65e2fc7f94332d +++ /dev/null @@ -1,178 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.awt.Desktop; -import java.net.URL; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; -import darkknight.jewelrycraft.item.ItemList; - -public class GuiTabBlocks extends GuiTab -{ - - /** - * @param id - */ - public GuiTabBlocks(int id) - { - super("Blocks", id); - } - - /** - * @return - */ - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.jewelAltar); - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - String text = ""; - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - text = "This ore is extremely rare and can be found only between Y-level 5 and 8. It can only be mined using a diamond pickaxe."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), new ItemStack(BlockList.shadowOre), text, 90f, true); - break; - case 2: - text = "The Shadow Block is crafted using 9 shadow ingots. Magicians believed it held the ability to merge with the shadows. It becomes more transparent as it"; - Page.addCraftingRecipeTextPage(gui, gui.getLeft() + xPos, gui.getTop(), false, text, x, y, true, new ItemStack(BlockList.shadowBlock), new ItemStack(ItemList.shadowIngot), new ItemStack(ItemList.shadowIngot), new ItemStack(ItemList.shadowIngot), new ItemStack(ItemList.shadowIngot), new ItemStack(ItemList.shadowIngot), new ItemStack(ItemList.shadowIngot), new ItemStack(ItemList.shadowIngot), new ItemStack(ItemList.shadowIngot), new ItemStack(ItemList.shadowIngot)); - break; - case 3: - text = "gets darker. If a comparator is attached to it, the output strength will be equal to the value of darkness it is in."; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - case 4: - text = "The smelter is one of the first blocks needed to get started with Jewelrycraft. Requiring just some cobble and a couple buckets. It is required in order to"; - Page.addCraftingRecipeTextPage(gui, gui.getLeft() + xPos, gui.getTop(), false, text, x, y, true, new ItemStack(BlockList.smelter), new ItemStack(Blocks.cobblestone), new ItemStack(Items.bucket), new ItemStack(Blocks.cobblestone), new ItemStack(Blocks.cobblestone), null, new ItemStack(Blocks.cobblestone), new ItemStack(Blocks.cobblestone), new ItemStack(Items.lava_bucket), new ItemStack(Blocks.cobblestone)); - break; - case 5: - text = "melt ingots or even ores which can be made into rings, necklaces, bracelets or earrings. To use the block all you need to do is right click on it with any ore or ingot. It can melt multimple ingots/ores at a time. Crouch (default: Shift) + Right Click will remove all items"; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - case 6: - text = "added. If right clicked when done smelting, it will say what the block contains."; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - case 7: - text = "The molder is a key piece in creating jewellery. You need to pour the molten metal out of the smelter somewhere. That somewhere is the"; - Page.addCraftingRecipeTextPage(gui, gui.getLeft() + xPos, gui.getTop(), false, text, x, y, true, new ItemStack(BlockList.molder), new ItemStack(Blocks.cobblestone), null, new ItemStack(Blocks.cobblestone), new ItemStack(Blocks.cobblestone), new ItemStack(Blocks.cobblestone), new ItemStack(Blocks.cobblestone)); - break; - case 8: - text = "molder. But before pouring the molten metal in it, you must first add a mold. You can do that by simply right clicking the block with the mold of your choice. If you want to get the mold out, simply crouch and Right Click it with an empty hand. Once you"; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - case 9: - text = "have a mold inside, left click on the smelter and wait for the metal to cool down. When it's done, left click on the molder to get the jewellery. Be aware that this block must be placed directly in front of the smelter, otherwise it won't work!"; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - case 10: - text = "This table allows you to add a gem to a piece of jewellery. Right click the block while holding a jewellery to add it in. Then do the same with a gem (you"; - if (del == 0) values++; - del++; - if (del >= 300) del = 0; - if (values >= 4) values = 0; - Page.addCraftingRecipeTextPage(gui, gui.getLeft() + xPos, gui.getTop(), false, text, x, y, true, new ItemStack(BlockList.jewelCraftingTable), new ItemStack(Blocks.planks, 1, values), new ItemStack(Blocks.planks, 1, values), new ItemStack(Blocks.planks, 1, values), new ItemStack(Blocks.cobblestone), null, new ItemStack(Blocks.cobblestone), new ItemStack(Blocks.cobblestone), null, new ItemStack(Blocks.cobblestone)); - break; - case 11: - text = "can find a list with all possible gems in this guide). Crouch + Right Click to retreive placed items. Left Click the block to see the progress the crafting has made. Once the crafting is done, Left Click the block to get the item. You are able to recraft a"; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - case 12: - text = "jewellery by readding the modified version to this block and adding a different gem to it. Once the crafting is done, the current gem will be replaced by the new one. There is also a 50% chance that you will get back the old gem."; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - case 13: - text = "This block can store any jewellery in it and activate their effects as it were a player. To do that simply right click the block with a jewellery. Crouch +"; - Page.addCraftingRecipeTextPage(gui, gui.getLeft() + xPos, gui.getTop(), false, text, x, y, true, new ItemStack(BlockList.jewelAltar), new ItemStack(Blocks.end_stone), new ItemStack(Blocks.wool, 1, 5), new ItemStack(Blocks.end_stone), new ItemStack(Blocks.nether_brick), new ItemStack(Blocks.wool, 1, 5), new ItemStack(Blocks.nether_brick), new ItemStack(Blocks.nether_brick), new ItemStack(Blocks.nether_brick), new ItemStack(Blocks.nether_brick)); - break; - case 14: - text = "Right Click to retreive the jewellery."; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - case 15: - text = "The Storage Displayer, as the name suggests, can store a large amount (Up to: " + Integer.MAX_VALUE + ") of a single item/block placed in it. It will"; - Page.addCraftingRecipeTextPage(gui, gui.getLeft() + xPos, gui.getTop(), false, text, x, y, true, new ItemStack(BlockList.displayer), null, new ItemStack(Items.iron_ingot), null, new ItemStack(Items.iron_ingot), new ItemStack(Items.iron_ingot), new ItemStack(Items.iron_ingot), new ItemStack(Blocks.emerald_block), new ItemStack(Blocks.emerald_block), new ItemStack(Blocks.emerald_block)); - break; - case 16: - text = "display all possible infromation about the object in it, such as the name, durability, enchantments etc. To store something in it simply right click with that object on it and the whole amount of items or blocks you are holding will be immediately stored inside."; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - case 17: - text = "If a displayer already contains an item and you have that in your inventory, you can simply hold right click on it with an empty hand to add all of your items of that type from your inventory. To retrieve a single item just left click the block. If you wish to"; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - case 18: - text = "get a whole stack, Crouch + Left Click on it. In creative mode you can simply hold Right Click on a displayer containing an object and it will add 64 of it with every right click, without it being in your inventory."; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - case 19: - text = "This mysterious shaped block is used in the ritual. The acient ones claimed it had the power to travel through worlds. They would use these to offer"; - Page.addCraftingRecipeTextPage(gui, gui.getLeft() + xPos, gui.getTop(), false, text, x, y, true, new ItemStack(BlockList.handPedestal), new ItemStack(Blocks.cobblestone_wall), new ItemStack(Blocks.cobblestone_wall), new ItemStack(Blocks.cobblestone_wall), null, new ItemStack(Blocks.stonebrick), null, new ItemStack(Blocks.stone_slab, 1, 5), new ItemStack(Blocks.stonebrick), new ItemStack(Blocks.stone_slab, 1, 5)); - break; - case 20: - text = "sacrifices to 'The Dark One' in exchange for unimaginable powers."; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - case 21: - text = "The Cursed Eye is an ancient artifact also known as 'The Dark One's Eye'. It is part of the sacrifice ritual the ancient ones talk about. Be careful"; - Page.addCraftingRecipeTextPage(gui, gui.getLeft() + xPos, gui.getTop(), false, text, x, y, true, new ItemStack(BlockList.shadowEye), new ItemStack(Blocks.stonebrick), new ItemStack(Blocks.stained_hardened_clay, 1, 15), new ItemStack(Blocks.stonebrick), new ItemStack(Blocks.stained_hardened_clay, 1, 15), new ItemStack(Items.ender_eye), new ItemStack(Blocks.stained_hardened_clay, 1, 15), new ItemStack(Blocks.stonebrick), new ItemStack(Blocks.stained_hardened_clay, 1, 15), new ItemStack(Blocks.stonebrick)); - break; - case 22: - String link = "HERE"; - if (x >= gui.getLeft() + 130 && x <= gui.getLeft() + 160 && y >= gui.getTop() + 40 && y <= gui.getTop() + 50) link = EnumChatFormatting.DARK_BLUE + "HERE" + EnumChatFormatting.BLACK; - text = "though, for He sees everything. To see how to create the ritual click " + link + " for a link with the pictures (will be part of the book later)."; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - default: - ; - } - } - - /** - * @return - */ - @Override - public int getMaxPages() - { - return 21; - } - - /** - * @param gui - * @param x - * @param y - * @param button - */ - @Override - public void mouseClick(GuiGuide gui, int x, int y, int button) - { - if (gui.page == 21 && x >= gui.getLeft() + 130 && x <= gui.getLeft() + 160 && y >= gui.getTop() + 40 && y <= gui.getTop() + 50) try{ - Desktop.getDesktop().browse(new URL("http://imgur.com/a/Zk0LW").toURI()); - } - catch(Exception e){} - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4a/4009975e82d000141a1fb02abca5ff55 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4a/4009975e82d000141a1fb02abca5ff55 deleted file mode 100644 index e538d87..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4a/4009975e82d000141a1fb02abca5ff55 +++ /dev/null @@ -1,67 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.settings.GameSettings.Options; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && rand.nextInt(500) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30)*(rand.nextBoolean()?-1:1), player.posY, player.posZ + rand.nextInt(30)*(rand.nextBoolean()?-1:1)); - if (jewelry instanceof ItemRing && pos != -1) Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 0.0F); - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4a/6016724bbad000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4a/6016724bbad000141b65e2fc7f94332d deleted file mode 100644 index fb06bc8..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4a/6016724bbad000141b65e2fc7f94332d +++ /dev/null @@ -1,78 +0,0 @@ -package darkknight.jewelrycraft.container; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.client.GuiGuide; -import darkknight.jewelrycraft.util.JewelrycraftUtil; - -public class GuiTabGemsAndIngots extends GuiTab -{ - - /** - * @param id - */ - public GuiTabGemsAndIngots(int id) - { - super("Gems and ingots", id); - } - - /** - * @return - */ - @Override - public ItemStack getIcon() - { - return new ItemStack(Items.emerald); - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - for(int i = (page - 1) * 9; i < page * 9; i++) - if (i < JewelrycraftUtil.gem.size()){ - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Gems", gui.getLeft() + xPos + 40, gui.getTop(), 0); - gui.renderItem(JewelrycraftUtil.gem.get(i), gui.getLeft() + xPos + 10, gui.getTop() + 22 + 16 * (i - 9 * (page - 1)), 30f, true); - gui.getFont().drawString(String.format("%-1.18s", JewelrycraftUtil.gem.get(i).getDisplayName()), gui.getLeft() + xPos + 20, gui.getTop() + 12 + 16 * (i - 9 * (page - 1)), 0); - GL11.glDisable(GL11.GL_LIGHTING); - } - page -= JewelrycraftUtil.gem.size() / 9 + 1; - for(int i = (page - 1) * 9; i < page * 9; i++) - if (i < JewelrycraftUtil.metal.size() && page > 0){ - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Ingots", gui.getLeft() + xPos + 40, gui.getTop(), 0); - gui.renderItem(JewelrycraftUtil.metal.get(i).copy(), gui.getLeft() + xPos + 10, gui.getTop() + 22 + 16 * (i - 9 * (page - 1)), 30f, true, 0, 0, 0); - gui.getFont().drawString(String.format("%-1.18s", JewelrycraftUtil.metal.get(i).copy().getDisplayName()), gui.getLeft() + xPos + 20, gui.getTop() + 12 + 16 * (i - 9 * (page - 1)), 0); - GL11.glDisable(GL11.GL_LIGHTING); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @return - */ - @Override - public int getMaxPages() - { - return JewelrycraftUtil.gem.size() / 9 + JewelrycraftUtil.metal.size() / 9 + 2; - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4a/9089738c21cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4a/9089738c21cf00141c41f52413db5e31 deleted file mode 100644 index 13ea746..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4a/9089738c21cf00141c41f52413db5e31 +++ /dev/null @@ -1,36 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player, Entity target) - { - if (!(target instanceof EntityMob)){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (rand.nextInt(2) == 0){ - playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 1.0F); - player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() - 1.0F); - } - JewelrycraftUtil.addCursePoints(player, 10); - } - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4a/a015113e04de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4a/a015113e04de00141043c3025ec60dfc new file mode 100644 index 0000000..aac4272 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4a/a015113e04de00141043c3025ec60dfc @@ -0,0 +1,278 @@ +package darkknight.jewelrycraft.tileentity; + +import java.util.ArrayList; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import darkknight.jewelrycraft.block.BlockHandPedestal; +import darkknight.jewelrycraft.block.BlockList; +import darkknight.jewelrycraft.particles.EntityShadowsFX; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class TileEntityShadowEye extends TileEntity +{ + public int opening, timer, t = 20; + public boolean active; + public ArrayList pedestalItems = new ArrayList(); + ResourceLocation particleTexture = new ResourceLocation(Variables.MODID, "textures/particle/shadows.png"); + public EntityPlayer target; + + public TileEntityShadowEye() + { + opening = 1; + timer = 20; + active = false; + } + + /** + * @param nbt + */ + @Override + public void writeToNBT(NBTTagCompound nbt) + { + super.writeToNBT(nbt); + nbt.setInteger("opening", opening); + nbt.setInteger("timer", timer); + nbt.setBoolean("active", active); + } + + /** + * @param nbt + */ + @Override + public void readFromNBT(NBTTagCompound nbt) + { + super.readFromNBT(nbt); + opening = nbt.getInteger("opening"); + timer = nbt.getInteger("timer"); + active = nbt.getBoolean("active"); + } + + /** + * + */ + @Override + public void updateEntity() + { + super.updateEntity(); + boolean valid = isValidStructure(worldObj, xCoord, yCoord, zCoord, blockMetadata); + if (active) timer--; + if (active && target != null && this.getDistanceFrom(target.posX, target.posY, target.posZ) > 18D){ + active = false; + timer = -1; + } + if (opening == 4 && timer <= 0) active = false; + if (!active && timer <= 0 && opening != 1){ + if (t > 0) t--; + if (t <= 0){ + opening--; + t = 20; + } + } + if (opening == 2 && timer <= 0 && t == 10){ + addData(worldObj, xCoord, yCoord, zCoord); + TileEntityHandPedestal target = (TileEntityHandPedestal)worldObj.getTileEntity(xCoord, yCoord - 3, zCoord); + if (target != null && target.getHeldItemStack() != null) JewelryNBT.addModifiers(target.getHeldItemStack(), pedestalItems); + } + if (active && timer <= 0){ + if (opening < 4){ + opening++; + timer = 20; + } + if (valid && opening == 4) timer = 1000; + else if (!valid){ + active = false; + timer = -1; + } + } + for(Object player: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(8D, 8D, 8D))) + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", false); + } + if (active && opening == 4){ + float din = 6F; + int i = Minecraft.getMinecraft().gameSettings.particleSetting; + for(float x = -din; x <= din; x += 0.2F) + for(float z = -din; z <= din; z += 0.2F) + if (x * x + z * z >= din * din - 1 && x * x + z * z <= din * din + 1) Minecraft.getMinecraft().effectRenderer.addEffect(new EntityShadowsFX(worldObj, xCoord + x + 0.5F, yCoord - 0.5F, zCoord + z + 0.5F, 15F, 0.04F - 0.01F * i, particleTexture)); + for(int l = 0; l <= 2 - i; l++) + worldObj.spawnParticle("depthsuspend", xCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), yCoord - 2F + worldObj.rand.nextFloat(), zCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), 0, 0, 0); + for(Object player: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(8D, 8D, 8D))) + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", true); + } + } + } + + /** + * @param world + * @param x + * @param y + * @param z + * @param metadata + * @return + */ + public boolean isValidStructure(World world, int x, int y, int z, int metadata) + { + if (world.getBlockMetadata(x, y, z) == 0 || world.getBlockMetadata(x, y, z) == 2){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x + 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x + 1, y + 1, z) != 5) return false; + if (world.getBlock(x - 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x - 1, y + 1, z) != 5) return false; + // 2nd Layer + if (world.getBlock(x + 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 2, y, z) != 1) return false; + if (world.getBlock(x + 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 1, y, z) != 4) return false; + if (world.getBlock(x - 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 1, y, z) != 5) return false; + if (world.getBlock(x - 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 2, y, z) != 0) return false; + // 3rd Layer + if (world.getBlock(x + 2, y - 1, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 1, z) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x + 2, y - 2, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 2, z) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x + 2, y - 3, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 3, z) != Blocks.stonebrick) return false; + }else if (world.getBlockMetadata(x, y, z) == 1 || world.getBlockMetadata(x, y, z) == 3){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x, y + 1, z + 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z + 1) != 5) return false; + if (world.getBlock(x, y + 1, z - 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z - 1) != 5) return false; + // 2nd Layer + if (world.getBlock(x, y, z + 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 2) != 3) return false; + if (world.getBlock(x, y, z + 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 1) != 6) return false; + if (world.getBlock(x, y, z - 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 1) != 7) return false; + if (world.getBlock(x, y, z - 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 2) != 2) return false; + // 3rd Layer + if (world.getBlock(x, y - 1, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 1, z - 2) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x, y - 2, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 2, z - 2) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x, y - 3, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 3, z - 2) != Blocks.stonebrick) return false; + } + // 3rd Layer + if (world.getBlock(x - 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x - 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + // 4th Layer + if (world.getBlock(x - 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 2, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z + 4) != Blocks.stonebrick) return false; + // 5th Layer + // Pillars + if (world.getBlock(x - 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 3, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z + 4) != Blocks.stonebrick) return false; + // Pedestals + if (!(world.getBlock(x, y - 3, z) instanceof BlockHandPedestal)) return false; + if (world.getBlock(x - 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z + 2) != 1) return false; + if (world.getBlock(x - 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x - 5, y - 3, z) != 2) return false; + if (world.getBlock(x - 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z - 2) != 3) return false; + if (world.getBlock(x - 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z - 4) != 3) return false; + if (world.getBlock(x, y - 3, z - 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z - 5) != 4) return false; + if (world.getBlock(x + 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z - 4) != 5) return false; + if (world.getBlock(x + 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z - 2) != 5) return false; + if (world.getBlock(x + 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x + 5, y - 3, z) != 6) return false; + if (world.getBlock(x + 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z + 2) != 7) return false; + if (world.getBlock(x + 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z + 4) != 7) return false; + if (world.getBlock(x, y - 3, z + 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z + 5) != 0) return false; + if (world.getBlock(x - 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z + 4) != 1) return false; + return true; + } + + /** + * @param world + * @param x + * @param y + * @param z + */ + public void addData(World world, int x, int y, int z) + { + pedestalItems.clear(); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z - 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z + 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z + 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z + 4)); + } + + /** + * @param pedestal + */ + public void addPedestalInfo(TileEntityHandPedestal pedestal) + { + ItemStack heldItemStack; + if (pedestal != null && (heldItemStack = pedestal.getHeldItemStack()) != null){ + if (pedestalItems.isEmpty()) pedestalItems.add(heldItemStack.copy()); + else{ + boolean hasItem = false; + int index = 0; + for(int ind = 0; ind < pedestalItems.size() && !hasItem; ind++) + if (heldItemStack.getItem().equals(pedestalItems.get(ind).getItem()) && heldItemStack.getItemDamage() == pedestalItems.get(ind).getItemDamage()){ + index = ind; + hasItem = true; + if (heldItemStack.hasTagCompound() && pedestalItems.get(ind).hasTagCompound() && !heldItemStack.getTagCompound().equals(pedestalItems.get(ind).getTagCompound())) hasItem = false; + } + if (!hasItem) pedestalItems.add(heldItemStack.copy()); + else{ + ItemStack object = pedestalItems.get(index).copy(); + object.stackSize++; + pedestalItems.set(index, object); + } + } + pedestal.removeHeldItemStack(); + pedestal.openHand(); + } + else if(pedestal != null && target != null) JewelrycraftUtil.addCursePoints(target, 20); + } + + /** + * @return + */ + @Override + public Packet getDescriptionPacket() + { + NBTTagCompound nbttagcompound = new NBTTagCompound(); + writeToNBT(nbttagcompound); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 1, nbttagcompound); + } + + /** + * @param net + * @param packet + */ + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet) + { + readFromNBT(packet.func_148857_g()); + worldObj.func_147479_m(xCoord, yCoord, zCoord); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/20a0a61c84d000141a1fb02abca5ff55 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/20a0a61c84d000141a1fb02abca5ff55 deleted file mode 100644 index 5c223aa..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/20a0a61c84d000141a1fb02abca5ff55 +++ /dev/null @@ -1,13 +0,0 @@ -package darkknight.jewelrycraft.block; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; - -public class BlockJCOre extends Block -{ - protected BlockJCOre() - { - super(Material.rock); - setHarvestLevel("pickaxe", 3); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/20bea20c21cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/20bea20c21cf00141c41f52413db5e31 deleted file mode 100644 index 4e56fc1..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/20bea20c21cf00141c41f52413db5e31 +++ /dev/null @@ -1,36 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player, Entity target) - { - if (!world.isRemote && !(target instanceof EntityMob)){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.getFloat("BlackHeart") < 20f && rand.nextInt(5) == 0){ - playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 2.0F); - player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() - 2.0F); - } - JewelrycraftUtil.addCursePoints(player, 10); - } - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/405c7f377ecf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/405c7f377ecf00141de78e4a85bb2469 deleted file mode 100644 index a129467..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/405c7f377ecf00141de78e4a85bb2469 +++ /dev/null @@ -1,13 +0,0 @@ -package darkknight.jewelrycraft; - -/** - * The Class CommonProxy. - */ -public class CommonProxy -{ - /** - * Register renderers. - */ - public void preInit() - {} -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/90de45a1bbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/90de45a1bbd000141b65e2fc7f94332d deleted file mode 100644 index 0a83583..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/90de45a1bbd000141b65e2fc7f94332d +++ /dev/null @@ -1,114 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/a055ddd2bbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/a055ddd2bbd000141b65e2fc7f94332d deleted file mode 100644 index 5c7fc7a..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/a055ddd2bbd000141b65e2fc7f94332d +++ /dev/null @@ -1,115 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - GL11.glTranslatef(0F, 1.2F, 0F); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/b07b909e26de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/b07b909e26de00141043c3025ec60dfc new file mode 100644 index 0000000..1ed30a1 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/b07b909e26de00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.5f, 0.5f, 0.0f); + drawTexturedModalRect(20, 20 + (size + 12) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 20, 7 + (size + 6) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/d0c27ea5f6cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/d0c27ea5f6cf0014170de422db399e8d deleted file mode 100644 index 94f79d9..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4b/d0c27ea5f6cf0014170de422db399e8d +++ /dev/null @@ -1,66 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && rand.nextInt(30) == 0) player.setPositionAndUpdate(player.posX + rand.nextInt(30)*(rand.nextBoolean()?-1:1), player.posY + rand.nextInt(5)*(rand.nextBoolean()?-1:1), player.posZ + rand.nextInt(30)*(rand.nextBoolean()?-1:1)); - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/1031dd2dbbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/1031dd2dbbd000141b65e2fc7f94332d deleted file mode 100644 index 703495d..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/1031dd2dbbd000141b65e2fc7f94332d +++ /dev/null @@ -1,112 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 25, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/70c9f176f2cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/70c9f176f2cf0014170de422db399e8d deleted file mode 100644 index 802343e..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4c/70c9f176f2cf0014170de422db399e8d +++ /dev/null @@ -1,64 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX -= 0.01D*Math.signum((double)chunkposition.chunkPosX); - Minecraft.getMinecraft().thePlayer.motionZ -= 0.01D*Math.signum((double)chunkposition.chunkPosZ); - System.out.println((double)chunkposition.chunkPosX + " " + player.posX); -// player.addChatMessage(new ChatComponentText("You hear a faint whisper telling you: \"You are getting closer, just " + (int)player.getDistance((double)chunkposition.chunkPosX, (double)chunkposition.chunkPosY, (double)chunkposition.chunkPosZ) + " more blocks to go.\"")); - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); -// if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4d/f08f115612cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4d/f08f115612cf00141c41f52413db5e31 deleted file mode 100644 index eecce2f..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4d/f08f115612cf00141c41f52413db5e31 +++ /dev/null @@ -1,24 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void action(World world, EntityPlayer player) - { - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4e/b0576841f2cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4e/b0576841f2cf0014170de422db399e8d deleted file mode 100644 index 5e7a241..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4e/b0576841f2cf0014170de422db399e8d +++ /dev/null @@ -1,64 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX = 0.01D*Math.signum((double)chunkposition.chunkPosX); - Minecraft.getMinecraft().thePlayer.motionZ = 0.01D*Math.signum((double)chunkposition.chunkPosZ); - System.out.println((double)chunkposition.chunkPosX + " " + (double)chunkposition.chunkPosZ); -// player.addChatMessage(new ChatComponentText("You hear a faint whisper telling you: \"You are getting closer, just " + (int)player.getDistance((double)chunkposition.chunkPosX, (double)chunkposition.chunkPosY, (double)chunkposition.chunkPosZ) + " more blocks to go.\"")); - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); -// if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4f/007bc83ab6d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4f/007bc83ab6d000141b65e2fc7f94332d deleted file mode 100644 index 9c481c8..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4f/007bc83ab6d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 145, 150, 35, 30); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, 10, 20); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4f/402d4daebcd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4f/402d4daebcd000141b65e2fc7f94332d deleted file mode 100644 index 1a73edd..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4f/402d4daebcd000141b65e2fc7f94332d +++ /dev/null @@ -1,246 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_LIGHT0); - GL11.glEnable(GL11.GL_LIGHT1); - } - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - RenderHelper.enableStandardItemLighting(); - GL11.glDisable(GL11.GL_LIGHT1); - GL11.glDisable(GL11.GL_LIGHT0); - GL11.glDisable(GL11.GL_LIGHTING); - } - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4f/e0d9514683d000141a1fb02abca5ff55 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4f/e0d9514683d000141a1fb02abca5ff55 deleted file mode 100644 index 28be82b..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/4f/e0d9514683d000141a1fb02abca5ff55 +++ /dev/null @@ -1,79 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.settings.GameSettings.Options; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - private boolean originalVD = false; - private float originalViewDistance; - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && rand.nextInt(500) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30)*(rand.nextBoolean()?-1:1), player.posY, player.posZ + rand.nextInt(30)*(rand.nextBoolean()?-1:1)); - if (jewelry instanceof ItemRing && pos != -1){ - if(!originalVD){ - originalViewDistance = Minecraft.getMinecraft().gameSettings.getOptionFloatValue(Options.RENDER_DISTANCE); - originalVD = true; - } - Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 1.0F); - } - else if(originalVD){ - Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, originalViewDistance); - originalVD = false; - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5/f00c439cb7d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5/f00c439cb7d000141b65e2fc7f94332d deleted file mode 100644 index bad5b6a..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5/f00c439cb7d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 153, 12, 12); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() - 20, gui.getTop() + 15); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 15, y + 25, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/10b548dabad000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/10b548dabad000141b65e2fc7f94332d deleted file mode 100644 index ab28319..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/10b548dabad000141b65e2fc7f94332d +++ /dev/null @@ -1,112 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -135, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/70986997b7d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/70986997b7d000141b65e2fc7f94332d deleted file mode 100644 index bad5b6a..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/50/70986997b7d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 153, 12, 12); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() - 20, gui.getTop() + 15); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 15, y + 25, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/52/c0326ecba5ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/52/c0326ecba5ce00141801ff0972626827 deleted file mode 100644 index f20b813..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/52/c0326ecba5ce00141801ff0972626827 +++ /dev/null @@ -1,448 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if(entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - playerInfo.setBoolean("stunned", true); - playerInfo.setInteger("stunTime", 50); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if(playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - // for(Curse curse: Curse.getCurseList()) - // if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if(((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); -// int grade = 1 + player.worldObj.rand.nextInt(2); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if(entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); -// if (!entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/52/e06a0851bdd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/52/e06a0851bdd000141b65e2fc7f94332d deleted file mode 100644 index 9bb83d4..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/52/e06a0851bdd000141b65e2fc7f94332d +++ /dev/null @@ -1,125 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.shadowEye), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - - case 5: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_slab, 1, 5), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.shadowEye), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - break; - } - } - - @Override - public int getMaxPages() - { - return 5; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/53/90cafa5d14cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/53/90cafa5d14cf00141c41f52413db5e31 deleted file mode 100644 index 98427f5..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/53/90cafa5d14cf00141c41f52413db5e31 +++ /dev/null @@ -1,35 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import darkknight.jewelrycraft.util.PlayerUtils; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void deathAction(World world, EntityPlayer player) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.getFloat("BlackHeart") < 20f) playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 2.0F); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.getFloat("BlackHeart") < 20f) playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 2.0F); - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/53/e0ac941eccdf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/53/e0ac941eccdf00141dc6c962aec96210 new file mode 100644 index 0000000..7b86357 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/53/e0ac941eccdf00141dc6c962aec96210 @@ -0,0 +1,96 @@ +package darkknight.jewelrycraft.effects; + +import java.util.Iterator; +import java.util.List; +import net.minecraft.entity.Entity; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class EffectFeather extends ModifierEffects +{ + public EffectFeather() + { + super(new ItemStack(Items.feather)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive earrings + if (jewelry instanceof ItemEarrings && exists){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); + List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); + if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ + Iterator iterator = list.iterator(); + while (iterator.hasNext()){ + EntityArrow arrow = (EntityArrow)iterator.next(); + if ((arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0) && rand.nextInt(2 + JewelryNBT.numberOfModifiers(item)) == 0) arrow.setDead(); + } + } + } + if (jewelry instanceof ItemBracelet && exists){ + // Positive bracelet + if (player.motionY < 0) player.motionY *= (0.6D + (JewelryNBT.numberOfModifiers(item) - 1) * 0.03D); + if (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0) player.fallDistance = 0F; + // Negative bracelet + if (!player.isPotionActive(Potion.moveSlowdown) || player.getActivePotionEffect(Potion.moveSlowdown).getDuration() < 30) player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 80 + JewelryNBT.numberOfModifiers(item) * 10, 1 + JewelryNBT.numberOfModifiers(item) / 4)); + } + } + + @Override + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + NBTTagCompound enemyData = target.getEntityData(); + if (jewelry instanceof ItemRing && exists && enemyData.getInteger("reAttacked") == 0){ + // Negative ring + enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); + target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); + // Positive ring + if (rand.nextInt(2) == 0){ + enemyData.setInteger("stunTime", 50); + enemyData.setBoolean("stunned", true); + } + playerInfo.setBoolean("weakDamage", true); + } + if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ + player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); + playerInfo.setBoolean("negateDamage", true); + } + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); + // Negative earrings + if (jewelry instanceof ItemEarrings && exists && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/8048f9edb6d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/8048f9edb6d000141b65e2fc7f94332d deleted file mode 100644 index 0dfc842..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/8048f9edb6d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 149, 150, 30, 30); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() - 20, gui.getTop() + 15); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/a09b425fbbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/a09b425fbbd000141b65e2fc7f94332d deleted file mode 100644 index 1f4f5f2..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/54/a09b425fbbd000141b65e2fc7f94332d +++ /dev/null @@ -1,114 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 180, -90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/55/509f12b8cfdf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/55/509f12b8cfdf00141dc6c962aec96210 new file mode 100644 index 0000000..c04ae60 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/55/509f12b8cfdf00141dc6c962aec96210 @@ -0,0 +1,102 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); +// if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(130, (size + 26) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); +// } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 0 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlueHeart")) / 2.0F), 15 + 35*count, resolution.getScaledHeight() - 16, 16777215); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("BlackHeart") > 0){ + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 1 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlackHeart")) / 2.0F), 15 + 35*count, resolution.getScaledHeight() - 16, 16777215); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/55/70eb2ca3ccdf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/55/70eb2ca3ccdf00141dc6c962aec96210 new file mode 100644 index 0000000..b3976ba --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/55/70eb2ca3ccdf00141dc6c962aec96210 @@ -0,0 +1,96 @@ +package darkknight.jewelrycraft.effects; + +import java.util.Iterator; +import java.util.List; +import net.minecraft.entity.Entity; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class EffectFeather extends ModifierEffects +{ + public EffectFeather() + { + super(new ItemStack(Items.feather)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive earrings + if (jewelry instanceof ItemEarrings && exists){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); + List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); + if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ + Iterator iterator = list.iterator(); + while (iterator.hasNext()){ + EntityArrow arrow = (EntityArrow)iterator.next(); + if ((arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0) && rand.nextInt(2 + JewelryNBT.numberOfModifiers(item)) == 0) arrow.setDead(); + } + } + } + if (jewelry instanceof ItemBracelet && exists){ + // Positive bracelet + if (player.motionY < 0) player.motionY *= (0.6D + (JewelryNBT.numberOfModifiers(item) - 1) * 0.03D); + if (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0) player.fallDistance = 0F; + // Negative bracelet + if (!player.isPotionActive(Potion.moveSlowdown) || player.getActivePotionEffect(Potion.moveSlowdown).getDuration() < 30) player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 80 + JewelryNBT.numberOfModifiers(item) * 10, 1 + JewelryNBT.numberOfModifiers(item) / 4)); + } + } + + @Override + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + NBTTagCompound enemyData = target.getEntityData(); + if (jewelry instanceof ItemRing && exists && enemyData.getInteger("reAttacked") == 0){ + // Negative ring + enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); + target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / (2F + (JewelryNBT.numberOfModifiers(item)-1)*0.1F)); + // Positive ring + if (rand.nextInt(2) == 0){ + enemyData.setInteger("stunTime", 51 - JewelryNBT.numberOfModifiers(item)); + enemyData.setBoolean("stunned", true); + } + playerInfo.setBoolean("weakDamage", true); + } + if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && rand.nextInt(3 + JewelryNBT.numberOfModifiers(item)) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ + player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); + playerInfo.setBoolean("negateDamage", true); + } + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); + // Negative earrings + if (jewelry instanceof ItemEarrings && exists && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/56/90504c0bbbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/56/90504c0bbbd000141b65e2fc7f94332d deleted file mode 100644 index 9cca58c..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/56/90504c0bbbd000141b65e2fc7f94332d +++ /dev/null @@ -1,112 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/56/a0087dd116cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/56/a0087dd116cf00141c41f52413db5e31 deleted file mode 100644 index cf9b333..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/56/a0087dd116cf00141c41f52413db5e31 +++ /dev/null @@ -1,116 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import java.util.ArrayList; -import java.util.Random; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; - -public class Curse -{ - protected int id, texturepack; - protected String name, description; - protected Random rand = new Random(); - private static ArrayList curses = new ArrayList(); - public static ArrayList availableCurses = new ArrayList(); - - /** - * @param id the ID of the curse - * @param name the name of the curse - * @param texturepack the ID of the pack the texture is located in - */ - protected Curse(int id, String name, int texturepack) - { - this.id = id; - this.name = name; - this.texturepack = texturepack; - curses.add(this); - availableCurses.add(this); - } - - /** - * @return the name of the curse - */ - public String getName() - { - return name; - } - - /** - * @return the description of the curse - */ - public String getDescription() - { - return description; - } - - public Curse setDescription(String desc) - { - description = desc; - return this; - } - - /** - * @return the curse ID - */ - public int getID() - { - return id; - } - - /** - * @return the texture pack ID - */ - public int getTexturePack() - { - return texturepack; - } - - /** - * @param world - * @param player - */ - public void action(World world, EntityPlayer player) - {} - - /** - * @param world - * @param player - */ - public void deathAction(World world, EntityPlayer player) - {} - - /** - * @param world - * @param player - */ - public void respawnAction(World world, EntityPlayer player) - {} - - /** - * @param world - * @param player - */ - public void attackedAction(World world, EntityPlayer player) - {} - - /** - * @param world - * @param player - */ - public void attackedByPlayerAction(World world, EntityPlayer player, EntityLiving target) - {} - - public boolean itemToss() - { - return false; - } - - /** - * @return - */ - public static ArrayList getCurseList() - { - return curses; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/20ddfa7621cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/20ddfa7621cf00141c41f52413db5e31 deleted file mode 100644 index 73985da..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/20ddfa7621cf00141c41f52413db5e31 +++ /dev/null @@ -1,36 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player, Entity target) - { - if (!world.isRemote && !(target instanceof EntityMob)){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (rand.nextInt(2) == 0){ - playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 1.0F); - player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() - 1.0F); - } - JewelrycraftUtil.addCursePoints(player, 10); - } - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/90a153b367dd001412dce27813e7be4a b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/90a153b367dd001412dce27813e7be4a new file mode 100644 index 0000000..2424491 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/90a153b367dd001412dce27813e7be4a @@ -0,0 +1,123 @@ +package darkknight.jewelrycraft.events; + +import java.util.Iterator; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderPlayerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.entities.renders.RenderHelper; +import darkknight.jewelrycraft.item.render.BraceletRender; +import darkknight.jewelrycraft.item.render.EarringsRender; +import darkknight.jewelrycraft.item.render.MaskRender; +import darkknight.jewelrycraft.model.ModelBracelet; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class PlayerRenderHandler +{ + MaskRender mask = new MaskRender(); + EarringsRender earrings = new EarringsRender(); + BraceletRender bracelet = new BraceletRender(); + public static String[] infamyCache = new String[]{}; + + @SubscribeEvent + public void renderScreen(RenderPlayerEvent.Specials.Post event) + { + ModelBiped main = event.renderer.modelBipedMain; + Iterator players = event.entityPlayer.worldObj.playerEntities.iterator(); + if (infamyCache != null){ + while (players.hasNext()){ + EntityPlayer player = players.next(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); +// System.out.println(playerInfo); + if (checkPlayerInfamy(player.getDisplayName()) && event.entityPlayer.getDisplayName().equals(player.getDisplayName())){ + float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick; + float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick; + float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick; + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glRotatef(yawOffset, 0, -1, 0); + GL11.glRotatef(yaw - 90, 0, 1, 0); + GL11.glRotatef(pitch, 0, 0, -1); + GL11.glRotatef(90F, 0, 1F, 0F); + RenderHelper.translateToHeadLevel(player); + GL11.glScalef(1.6f, 1.6f, 1.6f); + GL11.glTranslatef(-0.25F, -0.25F, -0.25F); + mask.doRender(event.entityPlayer, 0F, 0F, 0F, 0F, 0F); + GL11.glPopMatrix(); + } + if (playerInfo.hasKey("ext17") && player == event.entityPlayer){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext17"); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick; + float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick; + float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick; + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glRotatef(yawOffset, 0, -1, 0); + GL11.glRotatef(yaw - 90, 0, 1, 0); + GL11.glRotatef(pitch, 0, 0, -1); + GL11.glRotatef(90F, 0, 1F, 0F); + RenderHelper.translateToHeadLevel(player); + GL11.glScalef(0.07f, 0.07f, 0.07f); + GL11.glTranslatef(0.0F, 3.0F, -2.0F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + earrings.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0F); + GL11.glPopMatrix(); + } + for(int i = 10; i <= 13; i++) + if (playerInfo.hasKey("ext" + i) && player == event.entityPlayer){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glTranslatef((i / 12 == 1) ? -0.275F : 0.475F, 0.2F + ((i / 12 == 1) ? (i - 12) * 0.08F : (i - 10) * 0.08F), 0F); + if (player.isSneaking()) GL11.glTranslatef(0F, 0F, -((i == 10 || i == 12) ? (0.1F) : 0.05F)); + if (i / 12 == 1){ + GL11.glScalef(0.05f, 0.03f, 0.05f); + GL11.glRotatef(main.bipedRightArm.rotateAngleX * (180F / (float)Math.PI), 1F, 0F, 0F); + GL11.glRotatef(main.bipedRightArm.rotateAngleY * (180F / (float)Math.PI), 0F, 1F, 0F); + GL11.glRotatef(main.bipedRightArm.rotateAngleZ * (180F / (float)Math.PI), 0F, 0F, 1F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + bracelet.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0.0F); + }else{ + GL11.glScalef(0.05f, 0.03f, 0.05f); + GL11.glRotatef(main.bipedLeftArm.rotateAngleX * (180F / (float)Math.PI), 1F, 0F, 0F); + GL11.glRotatef(main.bipedLeftArm.rotateAngleY * (180F / (float)Math.PI), 0F, 1F, 0F); + GL11.glRotatef(main.bipedLeftArm.rotateAngleZ * (180F / (float)Math.PI), 0F, 0F, 1F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + bracelet.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0F); + } + GL11.glPopMatrix(); + } + } + } + } + + /** + * @param string + * @return + */ + private boolean checkPlayerInfamy(String string) + { + for(int i = 0; i < infamyCache.length; i++) + if (infamyCache[i].equals(string)) return true; + return false; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/a04f0c50a4ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/a04f0c50a4ce00141801ff0972626827 deleted file mode 100644 index 32db913..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/a04f0c50a4ce00141801ff0972626827 +++ /dev/null @@ -1,435 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if(entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - } - if (entity.motionX == 0D && entity.motionY == 0D && entity.motionZ == 0D && entity.rotationPitch == entity.prevRotationPitch && entity.rotationYaw == entity.prevRotationYaw) entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - // for(Curse curse: Curse.getCurseList()) - // if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if(((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); -// int grade = 1 + player.worldObj.rand.nextInt(2); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if(entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); -// if (!entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/b095661a2ede00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/b095661a2ede00141043c3025ec60dfc new file mode 100644 index 0000000..9deff95 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/b095661a2ede00141043c3025ec60dfc @@ -0,0 +1,109 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ +// for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(5 + 16*count, resolution.getScaledHeight(), 0 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlackHeart")) / 2.0F), 15, resolution.getScaledHeight() - 45 + 16 * count, 16777215); +// if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("BlackHeart") > 0){ +// for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(5 + 16*count, resolution.getScaledHeight(), 1 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlackHeart")) / 2.0F), 15, resolution.getScaledHeight() - 45 + 16 * count, 16777215); +// if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(5 + 16*count, resolution.getScaledHeight() - 50, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/e0aa469384d000141a1fb02abca5ff55 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/e0aa469384d000141a1fb02abca5ff55 deleted file mode 100644 index 2b5c36a..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/57/e0aa469384d000141a1fb02abca5ff55 +++ /dev/null @@ -1,79 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.block.BlockOre; -import net.minecraft.client.Minecraft; -import net.minecraft.client.settings.GameSettings.Options; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - private boolean originalVD = false; - private float originalViewDistance; - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && rand.nextInt(500) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30)*(rand.nextBoolean()?-1:1), player.posY, player.posZ + rand.nextInt(30)*(rand.nextBoolean()?-1:1)); - if (jewelry instanceof ItemRing && pos != -1 && rand.nextInt(50) == 0){ - Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 1.0F); - for(int i = (int)player.posX - 2; i <= (int)player.posX + 2; i++) - for(int j = (int)player.posY - 2; j <= (int)player.posY + 2; j++) - for(int k = (int)player.posZ - 2; k <= (int)player.posZ + 2; k++) - if(player.worldObj.getBlock(i, j, k) instanceof BlockOre) - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "You sense some ore around you.")); - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/58/d07c98730ade00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/58/d07c98730ade00141043c3025ec60dfc new file mode 100644 index 0000000..5f2a423 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/58/d07c98730ade00141043c3025ec60dfc @@ -0,0 +1,185 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + System.out.println((int)f3); + if ((int)f3 != -1){ + int ingotColor = Math.abs((int)f3); + int red = (ingotColor >> 16) & 0xff; + int green = (ingotColor >> 8) & 0xff; + int blue = ingotColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/1044992a23cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/1044992a23cf00141c41f52413db5e31 deleted file mode 100644 index 52599de..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/1044992a23cf00141c41f52413db5e31 +++ /dev/null @@ -1,459 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/1048515cbbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/1048515cbbd000141b65e2fc7f94332d deleted file mode 100644 index 84f0d07..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/1048515cbbd000141b65e2fc7f94332d +++ /dev/null @@ -1,114 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/b085ddbd9ad000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/b085ddbd9ad000141b65e2fc7f94332d deleted file mode 100644 index 8e26620..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/b085ddbd9ad000141b65e2fc7f94332d +++ /dev/null @@ -1,74 +0,0 @@ -package darkknight.jewelrycraft.container; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabModifiers extends GuiTab -{ - int maxPages; - public GuiTabModifiers(int id) - { - super("Modifiers", id); - } - - /** - * @return - */ - @Override - public ItemStack getIcon() - { - return new ItemStack(Items.blaze_powder); - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - String text = ""; - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - text = "Although you can add anything as a modifier, only some objects have an effect. In this tab you can find all of modifiers that have a use and what they do, in the form of a story/riddle/poem. However different jewellery have different effects for the same modifier."; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - case 2: - text = "The ancient ones talked about a rising fire in your heart. Fret do not, for flames do not burn, but water might sting a turn. Watch your step, do not be cocky, for its protection is a bit sloppy."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), new ItemStack(Items.blaze_powder), text, 40f); - break; - case 3: - text = "Light and swift as a feather can be good all together. Enemies miss and get confused, this power can be abused. Against an arrow you can't compare, so move around, don't just stare. Fire is your enemy and weakness is the penalty."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), new ItemStack(Items.feather), text, 40f); - break; - case 4: - text = "Endermen may tolerate you, end portals are near too, you may find ore that is true. But be careful, for the power may make you dizzy, blind you if you're a sissy, worsen your vision if you're unaware and shift positions everywhere."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop() - 7, new ItemStack(Items.ender_eye), text, 40f); - break; - } - } - - /** - * @return - */ - @Override - public int getMaxPages() - { - return 4; - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/c078df6404de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/c078df6404de00141043c3025ec60dfc new file mode 100644 index 0000000..fa07b7e --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/c078df6404de00141043c3025ec60dfc @@ -0,0 +1,278 @@ +package darkknight.jewelrycraft.tileentity; + +import java.util.ArrayList; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import darkknight.jewelrycraft.block.BlockHandPedestal; +import darkknight.jewelrycraft.block.BlockList; +import darkknight.jewelrycraft.particles.EntityShadowsFX; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class TileEntityShadowEye extends TileEntity +{ + public int opening, timer, t = 20; + public boolean active; + public ArrayList pedestalItems = new ArrayList(); + ResourceLocation particleTexture = new ResourceLocation(Variables.MODID, "textures/particle/shadows.png"); + public EntityPlayer target; + + public TileEntityShadowEye() + { + opening = 1; + timer = 20; + active = false; + } + + /** + * @param nbt + */ + @Override + public void writeToNBT(NBTTagCompound nbt) + { + super.writeToNBT(nbt); + nbt.setInteger("opening", opening); + nbt.setInteger("timer", timer); + nbt.setBoolean("active", active); + } + + /** + * @param nbt + */ + @Override + public void readFromNBT(NBTTagCompound nbt) + { + super.readFromNBT(nbt); + opening = nbt.getInteger("opening"); + timer = nbt.getInteger("timer"); + active = nbt.getBoolean("active"); + } + + /** + * + */ + @Override + public void updateEntity() + { + super.updateEntity(); + boolean valid = isValidStructure(worldObj, xCoord, yCoord, zCoord, blockMetadata); + if (active) timer--; + if (active && target != null && this.getDistanceFrom(target.posX, target.posY, target.posZ) > 27D){ + active = false; + timer = -1; + } + if (opening == 4 && timer <= 0) active = false; + if (!active && timer <= 0 && opening != 1){ + if (t > 0) t--; + if (t <= 0){ + opening--; + t = 20; + } + } + if (opening == 2 && timer <= 0 && t == 10){ + addData(worldObj, xCoord, yCoord, zCoord); + TileEntityHandPedestal target = (TileEntityHandPedestal)worldObj.getTileEntity(xCoord, yCoord - 3, zCoord); + if (target != null && target.getHeldItemStack() != null) JewelryNBT.addModifiers(target.getHeldItemStack(), pedestalItems); + } + if (active && timer <= 0){ + if (opening < 4){ + opening++; + timer = 20; + } + if (valid && opening == 4) timer = 1000; + else if (!valid){ + active = false; + timer = -1; + } + } + for(Object player: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(8D, 8D, 8D))) + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", false); + } + if (active && opening == 4){ + float din = 6F; + int i = Minecraft.getMinecraft().gameSettings.particleSetting; + for(float x = -din; x <= din; x += 0.2F) + for(float z = -din; z <= din; z += 0.2F) + if (x * x + z * z >= din * din - 1 && x * x + z * z <= din * din + 1) Minecraft.getMinecraft().effectRenderer.addEffect(new EntityShadowsFX(worldObj, xCoord + x + 0.5F, yCoord - 0.5F, zCoord + z + 0.5F, 15F, 0.04F - 0.01F * i, particleTexture)); + for(int l = 0; l <= 2 - i; l++) + worldObj.spawnParticle("depthsuspend", xCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), yCoord - 2F + worldObj.rand.nextFloat(), zCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), 0, 0, 0); + for(Object player: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(8D, 8D, 8D))) + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", true); + } + } + } + + /** + * @param world + * @param x + * @param y + * @param z + * @param metadata + * @return + */ + public boolean isValidStructure(World world, int x, int y, int z, int metadata) + { + if (world.getBlockMetadata(x, y, z) == 0 || world.getBlockMetadata(x, y, z) == 2){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x + 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x + 1, y + 1, z) != 5) return false; + if (world.getBlock(x - 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x - 1, y + 1, z) != 5) return false; + // 2nd Layer + if (world.getBlock(x + 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 2, y, z) != 1) return false; + if (world.getBlock(x + 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 1, y, z) != 4) return false; + if (world.getBlock(x - 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 1, y, z) != 5) return false; + if (world.getBlock(x - 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 2, y, z) != 0) return false; + // 3rd Layer + if (world.getBlock(x + 2, y - 1, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 1, z) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x + 2, y - 2, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 2, z) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x + 2, y - 3, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 3, z) != Blocks.stonebrick) return false; + }else if (world.getBlockMetadata(x, y, z) == 1 || world.getBlockMetadata(x, y, z) == 3){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x, y + 1, z + 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z + 1) != 5) return false; + if (world.getBlock(x, y + 1, z - 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z - 1) != 5) return false; + // 2nd Layer + if (world.getBlock(x, y, z + 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 2) != 3) return false; + if (world.getBlock(x, y, z + 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 1) != 6) return false; + if (world.getBlock(x, y, z - 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 1) != 7) return false; + if (world.getBlock(x, y, z - 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 2) != 2) return false; + // 3rd Layer + if (world.getBlock(x, y - 1, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 1, z - 2) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x, y - 2, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 2, z - 2) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x, y - 3, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 3, z - 2) != Blocks.stonebrick) return false; + } + // 3rd Layer + if (world.getBlock(x - 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x - 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + // 4th Layer + if (world.getBlock(x - 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 2, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z + 4) != Blocks.stonebrick) return false; + // 5th Layer + // Pillars + if (world.getBlock(x - 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 3, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z + 4) != Blocks.stonebrick) return false; + // Pedestals + if (!(world.getBlock(x, y - 3, z) instanceof BlockHandPedestal)) return false; + if (world.getBlock(x - 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z + 2) != 1) return false; + if (world.getBlock(x - 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x - 5, y - 3, z) != 2) return false; + if (world.getBlock(x - 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z - 2) != 3) return false; + if (world.getBlock(x - 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z - 4) != 3) return false; + if (world.getBlock(x, y - 3, z - 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z - 5) != 4) return false; + if (world.getBlock(x + 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z - 4) != 5) return false; + if (world.getBlock(x + 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z - 2) != 5) return false; + if (world.getBlock(x + 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x + 5, y - 3, z) != 6) return false; + if (world.getBlock(x + 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z + 2) != 7) return false; + if (world.getBlock(x + 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z + 4) != 7) return false; + if (world.getBlock(x, y - 3, z + 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z + 5) != 0) return false; + if (world.getBlock(x - 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z + 4) != 1) return false; + return true; + } + + /** + * @param world + * @param x + * @param y + * @param z + */ + public void addData(World world, int x, int y, int z) + { + pedestalItems.clear(); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z - 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z + 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z + 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z + 4)); + } + + /** + * @param pedestal + */ + public void addPedestalInfo(TileEntityHandPedestal pedestal) + { + ItemStack heldItemStack; + if (pedestal != null && (heldItemStack = pedestal.getHeldItemStack()) != null){ + if (pedestalItems.isEmpty()) pedestalItems.add(heldItemStack.copy()); + else{ + boolean hasItem = false; + int index = 0; + for(int ind = 0; ind < pedestalItems.size() && !hasItem; ind++) + if (heldItemStack.getItem().equals(pedestalItems.get(ind).getItem()) && heldItemStack.getItemDamage() == pedestalItems.get(ind).getItemDamage()){ + index = ind; + hasItem = true; + if (heldItemStack.hasTagCompound() && pedestalItems.get(ind).hasTagCompound() && !heldItemStack.getTagCompound().equals(pedestalItems.get(ind).getTagCompound())) hasItem = false; + } + if (!hasItem) pedestalItems.add(heldItemStack.copy()); + else{ + ItemStack object = pedestalItems.get(index).copy(); + object.stackSize++; + pedestalItems.set(index, object); + } + } + pedestal.removeHeldItemStack(); + pedestal.openHand(); + } + else if(pedestal != null && target != null) JewelrycraftUtil.addCursePoints(target, 20); + } + + /** + * @return + */ + @Override + public Packet getDescriptionPacket() + { + NBTTagCompound nbttagcompound = new NBTTagCompound(); + writeToNBT(nbttagcompound); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 1, nbttagcompound); + } + + /** + * @param net + * @param packet + */ + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet) + { + readFromNBT(packet.func_148857_g()); + worldObj.func_147479_m(xCoord, yCoord, zCoord); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/c07baaa5bcd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/c07baaa5bcd000141b65e2fc7f94332d deleted file mode 100644 index 20c32d2..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/c07baaa5bcd000141b65e2fc7f94332d +++ /dev/null @@ -1,245 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_LIGHT0); - GL11.glEnable(GL11.GL_LIGHT1); - } - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - GL11.glDisable(GL11.GL_LIGHT1); - GL11.glDisable(GL11.GL_LIGHT0); - GL11.glDisable(GL11.GL_LIGHTING); - } - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/e0e84e2dbdd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/e0e84e2dbdd000141b65e2fc7f94332d deleted file mode 100644 index 4b22e01..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/59/e0e84e2dbdd000141b65e2fc7f94332d +++ /dev/null @@ -1,115 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.shadowEye), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/40a922fbcddf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/40a922fbcddf00141dc6c962aec96210 new file mode 100644 index 0000000..67c996f --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/40a922fbcddf00141dc6c962aec96210 @@ -0,0 +1,87 @@ +package darkknight.jewelrycraft.effects; + +import net.minecraft.block.BlockOre; +import net.minecraft.client.Minecraft; +import net.minecraft.client.settings.GameSettings.Options; +import net.minecraft.entity.monster.EntityEnderman; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.biome.BiomeGenBase; +import cpw.mods.fml.relauncher.ReflectionHelper; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; + +public class EffectEnderEye extends ModifierEffects +{ + private boolean originalVD = false; + private float originalViewDistance; + + public EffectEnderEye() + { + super(new ItemStack(Items.ender_eye)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemEarrings && exists && !player.worldObj.isRemote){ + for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ + EntityEnderman enderman = (EntityEnderman)e; + ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); + Vec3 vec3 = player.getLook(1.0F).normalize(); + Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); + double d0 = vec31.lengthVector(); + vec31 = vec31.normalize(); + double d1 = vec3.dotProduct(vec31); + if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ + // Positive earrings + enderman.setTarget(null); + // Negative earrings + if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); + } + } + } + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote){ + ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); + if (chunkposition != null){ + Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); + Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); + } + } + // Positive bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); + // Negative bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && rand.nextInt(500) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1), player.posY, player.posZ + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1)); + if (jewelry instanceof ItemRing && exists && rand.nextInt(200) == 12){ + // Negative ring + Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 1.0F); + // Positive ring + for(int i = (int)player.posX - 2; i <= (int)player.posX + 2; i++) + for(int j = (int)player.posY - 2; j <= (int)player.posY + 2; j++) + for(int k = (int)player.posZ - 2; k <= (int)player.posZ + 2; k++) + if (player.worldObj.getBlock(i, j, k) instanceof BlockOre) player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "You sense some " + player.worldObj.getBlock(i, j, k).getLocalizedName() + " around you.")); + } + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/5029f1a804de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/5029f1a804de00141043c3025ec60dfc new file mode 100644 index 0000000..efc4169 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/5029f1a804de00141043c3025ec60dfc @@ -0,0 +1,278 @@ +package darkknight.jewelrycraft.tileentity; + +import java.util.ArrayList; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import darkknight.jewelrycraft.block.BlockHandPedestal; +import darkknight.jewelrycraft.block.BlockList; +import darkknight.jewelrycraft.particles.EntityShadowsFX; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class TileEntityShadowEye extends TileEntity +{ + public int opening, timer, t = 20; + public boolean active; + public ArrayList pedestalItems = new ArrayList(); + ResourceLocation particleTexture = new ResourceLocation(Variables.MODID, "textures/particle/shadows.png"); + public EntityPlayer target; + + public TileEntityShadowEye() + { + opening = 1; + timer = 20; + active = false; + } + + /** + * @param nbt + */ + @Override + public void writeToNBT(NBTTagCompound nbt) + { + super.writeToNBT(nbt); + nbt.setInteger("opening", opening); + nbt.setInteger("timer", timer); + nbt.setBoolean("active", active); + } + + /** + * @param nbt + */ + @Override + public void readFromNBT(NBTTagCompound nbt) + { + super.readFromNBT(nbt); + opening = nbt.getInteger("opening"); + timer = nbt.getInteger("timer"); + active = nbt.getBoolean("active"); + } + + /** + * + */ + @Override + public void updateEntity() + { + super.updateEntity(); + boolean valid = isValidStructure(worldObj, xCoord, yCoord, zCoord, blockMetadata); + if (active) timer--; + if (active && target != null && this.getDistanceFrom(target.posX, target.posY, target.posZ) > 30D){ + active = false; + timer = -1; + } + if (opening == 4 && timer <= 0) active = false; + if (!active && timer <= 0 && opening != 1){ + if (t > 0) t--; + if (t <= 0){ + opening--; + t = 20; + } + } + if (opening == 2 && timer <= 0 && t == 10){ + addData(worldObj, xCoord, yCoord, zCoord); + TileEntityHandPedestal target = (TileEntityHandPedestal)worldObj.getTileEntity(xCoord, yCoord - 3, zCoord); + if (target != null && target.getHeldItemStack() != null) JewelryNBT.addModifiers(target.getHeldItemStack(), pedestalItems); + } + if (active && timer <= 0){ + if (opening < 4){ + opening++; + timer = 20; + } + if (valid && opening == 4) timer = 1000; + else if (!valid){ + active = false; + timer = -1; + } + } + for(Object player: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(10D, 10D, 10D))) + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", false); + } + if (active && opening == 4){ + float din = 6F; + int i = Minecraft.getMinecraft().gameSettings.particleSetting; + for(float x = -din; x <= din; x += 0.2F) + for(float z = -din; z <= din; z += 0.2F) + if (x * x + z * z >= din * din - 1 && x * x + z * z <= din * din + 1) Minecraft.getMinecraft().effectRenderer.addEffect(new EntityShadowsFX(worldObj, xCoord + x + 0.5F, yCoord - 0.5F, zCoord + z + 0.5F, 15F, 0.04F - 0.01F * i, particleTexture)); + for(int l = 0; l <= 2 - i; l++) + worldObj.spawnParticle("depthsuspend", xCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), yCoord - 2F + worldObj.rand.nextFloat(), zCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), 0, 0, 0); + for(Object player: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(10D, 10D, 10D))) + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", true); + } + } + } + + /** + * @param world + * @param x + * @param y + * @param z + * @param metadata + * @return + */ + public boolean isValidStructure(World world, int x, int y, int z, int metadata) + { + if (world.getBlockMetadata(x, y, z) == 0 || world.getBlockMetadata(x, y, z) == 2){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x + 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x + 1, y + 1, z) != 5) return false; + if (world.getBlock(x - 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x - 1, y + 1, z) != 5) return false; + // 2nd Layer + if (world.getBlock(x + 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 2, y, z) != 1) return false; + if (world.getBlock(x + 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 1, y, z) != 4) return false; + if (world.getBlock(x - 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 1, y, z) != 5) return false; + if (world.getBlock(x - 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 2, y, z) != 0) return false; + // 3rd Layer + if (world.getBlock(x + 2, y - 1, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 1, z) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x + 2, y - 2, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 2, z) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x + 2, y - 3, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 3, z) != Blocks.stonebrick) return false; + }else if (world.getBlockMetadata(x, y, z) == 1 || world.getBlockMetadata(x, y, z) == 3){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x, y + 1, z + 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z + 1) != 5) return false; + if (world.getBlock(x, y + 1, z - 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z - 1) != 5) return false; + // 2nd Layer + if (world.getBlock(x, y, z + 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 2) != 3) return false; + if (world.getBlock(x, y, z + 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 1) != 6) return false; + if (world.getBlock(x, y, z - 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 1) != 7) return false; + if (world.getBlock(x, y, z - 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 2) != 2) return false; + // 3rd Layer + if (world.getBlock(x, y - 1, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 1, z - 2) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x, y - 2, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 2, z - 2) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x, y - 3, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 3, z - 2) != Blocks.stonebrick) return false; + } + // 3rd Layer + if (world.getBlock(x - 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x - 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + // 4th Layer + if (world.getBlock(x - 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 2, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z + 4) != Blocks.stonebrick) return false; + // 5th Layer + // Pillars + if (world.getBlock(x - 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 3, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z + 4) != Blocks.stonebrick) return false; + // Pedestals + if (!(world.getBlock(x, y - 3, z) instanceof BlockHandPedestal)) return false; + if (world.getBlock(x - 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z + 2) != 1) return false; + if (world.getBlock(x - 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x - 5, y - 3, z) != 2) return false; + if (world.getBlock(x - 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z - 2) != 3) return false; + if (world.getBlock(x - 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z - 4) != 3) return false; + if (world.getBlock(x, y - 3, z - 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z - 5) != 4) return false; + if (world.getBlock(x + 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z - 4) != 5) return false; + if (world.getBlock(x + 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z - 2) != 5) return false; + if (world.getBlock(x + 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x + 5, y - 3, z) != 6) return false; + if (world.getBlock(x + 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z + 2) != 7) return false; + if (world.getBlock(x + 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z + 4) != 7) return false; + if (world.getBlock(x, y - 3, z + 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z + 5) != 0) return false; + if (world.getBlock(x - 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z + 4) != 1) return false; + return true; + } + + /** + * @param world + * @param x + * @param y + * @param z + */ + public void addData(World world, int x, int y, int z) + { + pedestalItems.clear(); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z - 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z + 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z + 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z + 4)); + } + + /** + * @param pedestal + */ + public void addPedestalInfo(TileEntityHandPedestal pedestal) + { + ItemStack heldItemStack; + if (pedestal != null && (heldItemStack = pedestal.getHeldItemStack()) != null){ + if (pedestalItems.isEmpty()) pedestalItems.add(heldItemStack.copy()); + else{ + boolean hasItem = false; + int index = 0; + for(int ind = 0; ind < pedestalItems.size() && !hasItem; ind++) + if (heldItemStack.getItem().equals(pedestalItems.get(ind).getItem()) && heldItemStack.getItemDamage() == pedestalItems.get(ind).getItemDamage()){ + index = ind; + hasItem = true; + if (heldItemStack.hasTagCompound() && pedestalItems.get(ind).hasTagCompound() && !heldItemStack.getTagCompound().equals(pedestalItems.get(ind).getTagCompound())) hasItem = false; + } + if (!hasItem) pedestalItems.add(heldItemStack.copy()); + else{ + ItemStack object = pedestalItems.get(index).copy(); + object.stackSize++; + pedestalItems.set(index, object); + } + } + pedestal.removeHeldItemStack(); + pedestal.openHand(); + } + else if(pedestal != null && target != null) JewelrycraftUtil.addCursePoints(target, 20); + } + + /** + * @return + */ + @Override + public Packet getDescriptionPacket() + { + NBTTagCompound nbttagcompound = new NBTTagCompound(); + writeToNBT(nbttagcompound); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 1, nbttagcompound); + } + + /** + * @param net + * @param packet + */ + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet) + { + readFromNBT(packet.func_148857_g()); + worldObj.func_147479_m(xCoord, yCoord, zCoord); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/80f31216bbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/80f31216bbd000141b65e2fc7f94332d deleted file mode 100644 index 785a1f7..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/80f31216bbd000141b65e2fc7f94332d +++ /dev/null @@ -1,112 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 170, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/b0474f9184d000141a1fb02abca5ff55 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/b0474f9184d000141a1fb02abca5ff55 deleted file mode 100644 index 26bb87b..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/b0474f9184d000141a1fb02abca5ff55 +++ /dev/null @@ -1,79 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.block.BlockOre; -import net.minecraft.client.Minecraft; -import net.minecraft.client.settings.GameSettings.Options; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - private boolean originalVD = false; - private float originalViewDistance; - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && rand.nextInt(500) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30)*(rand.nextBoolean()?-1:1), player.posY, player.posZ + rand.nextInt(30)*(rand.nextBoolean()?-1:1)); - if (jewelry instanceof ItemRing && pos != -1 && rand.nextInt(5) == 0){ - Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 1.0F); - for(int i = (int)player.posX - 2; i <= (int)player.posX + 2; i++) - for(int j = (int)player.posY - 2; j <= (int)player.posY + 2; j++) - for(int k = (int)player.posZ - 2; k <= (int)player.posZ + 2; k++) - if(player.worldObj.getBlock(i, j, k) instanceof BlockOre) - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "You sense some ore around you.")); - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/b0a71b6116cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/b0a71b6116cf00141c41f52413db5e31 deleted file mode 100644 index 18a1053..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5b/b0a71b6116cf00141c41f52413db5e31 +++ /dev/null @@ -1,30 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.getFloat("BlackHeart") < 20f && rand.nextInt(5) == 0) playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 2.0F); - JewelrycraftUtil.addCursePoints(player, 10); - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/10e245fff3cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/10e245fff3cf0014170de422db399e8d deleted file mode 100644 index 339dd64..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/10e245fff3cf0014170de422db399e8d +++ /dev/null @@ -1,62 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D*Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D*Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); -// if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/407a4588cadf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/407a4588cadf00141dc6c962aec96210 new file mode 100644 index 0000000..f33178e --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/407a4588cadf00141dc6c962aec96210 @@ -0,0 +1,96 @@ +package darkknight.jewelrycraft.effects; + +import java.util.Iterator; +import java.util.List; +import net.minecraft.entity.Entity; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class EffectFeather extends ModifierEffects +{ + public EffectFeather() + { + super(new ItemStack(Items.feather)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive earrings + if (jewelry instanceof ItemEarrings && exists){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); + List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); + if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ + Iterator iterator = list.iterator(); + while (iterator.hasNext()){ + EntityArrow arrow = (EntityArrow)iterator.next(); + if (rand.nextInt(3) == 0 && (arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0)) arrow.setDead(); + } + } + } + // Positive bracelet + if (jewelry instanceof ItemBracelet && exists){ + if (player.motionY < 0) player.motionY *= 0.6D; +// player.capabilities.setPlayerWalkSpeed(0.1F); +// player.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.001D); + if (!player.isPotionActive(Potion.moveSlowdown) || player.getActivePotionEffect(Potion.moveSlowdown).getDuration() < 30) player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 80, 1)); + player.fallDistance = 0F; + } + } + + @Override + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + NBTTagCompound enemyData = target.getEntityData(); + // Positive ring + if (jewelry instanceof ItemRing && exists && enemyData.getInteger("reAttacked") == 0){ + enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); + target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); + if (rand.nextInt(2) == 0){ + enemyData.setInteger("stunTime", 50); + enemyData.setBoolean("stunned", true); + } + playerInfo.setBoolean("weakDamage", true); + } + if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ + player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); + playerInfo.setBoolean("negateDamage", true); + } + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); + // Negative earrings + if (jewelry instanceof ItemEarrings && exists && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/d08f32069cd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/d08f32069cd000141b65e2fc7f94332d deleted file mode 100644 index 3158ee3..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/d08f32069cd000141b65e2fc7f94332d +++ /dev/null @@ -1,44 +0,0 @@ -package darkknight.jewelrycraft.container; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import darkknight.jewelrycraft.client.GuiGuide; -import darkknight.jewelrycraft.item.ItemList; - -public class GuiTabIntroduction extends GuiTab -{ - public GuiTabIntroduction(int id) - { - super("Introduction", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(ItemList.ring); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - String text = ""; - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - text = "Welcome to Jewelrycraft 2! This mod is about making jewelry that you can modify to your own will. To find out how to create a jewelry, please consult the book and look at the Smelter block. To add modifiers to it you need to perform a ritual. To see how to do that, look at the Cursed Eye block in the book."; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/f0e98566a7ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/f0e98566a7ce00141801ff0972626827 deleted file mode 100644 index c16d16e..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5c/f0e98566a7ce00141801ff0972626827 +++ /dev/null @@ -1,116 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import java.util.Iterator; -import java.util.List; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class EffectFeather extends ModifierEffects -{ - public EffectFeather() - { - super(new ItemStack(Items.feather)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - // Positive earrings - if (jewelry instanceof ItemEarrings && pos != -1){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); - List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); - if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ - Iterator iterator = list.iterator(); - while (iterator.hasNext()){ - EntityArrow arrow = (EntityArrow)iterator.next(); - if (rand.nextInt(3) == 0 && (arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0)) arrow.setDead(); - } - } - } - // Positive bracelet - if (jewelry instanceof ItemBracelet && pos != -1){ - if (player.motionY < 0) player.motionY *= 0.6D; - player.setAIMoveSpeed(player.getAIMoveSpeed() / 2); - player.fallDistance = 0F; - } - } - - @Override - public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - NBTTagCompound enemyData = target.getEntityData(); - if (jewelry instanceof ItemRing && pos != -1){ - if (target instanceof EntityPlayer){ - NBTTagCompound enemyInfo = PlayerUtils.getModPlayerPersistTag((EntityPlayer)target, "Jewelrycraft"); - if (enemyInfo.getInteger("reAttacked") == 0){ - enemyInfo.setInteger("reAttacked", enemyInfo.getInteger("reAttacked") + 1); - target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); - if (rand.nextInt(2) == 0){ - enemyInfo.setInteger("stunTime", 50); - enemyInfo.setBoolean("stunned", true); - } - } - }else if (enemyData.getInteger("reAttacked") == 0){ - enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); - if (rand.nextInt(2) == 0){ - enemyData.setInteger("stunTime", 50); - enemyData.setBoolean("stunned", true); - } - } - playerInfo.setBoolean("weakDamage", true); - } - if (target instanceof EntityPlayer){ - NBTTagCompound enemyInfo = PlayerUtils.getModPlayerPersistTag((EntityPlayer)target, "Jewelrycraft"); - if (enemyInfo.getInteger("reAttacked") == 1) enemyInfo.setInteger("reAttacked", 0); - }else if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (jewelry instanceof ItemNecklace && pos != -1 && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); - playerInfo.setBoolean("negateDamage", true); - } - // Negative necklace - if (jewelry instanceof ItemNecklace && pos != -1 && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); - // Negative earrings - if (jewelry instanceof ItemEarrings && pos != -1 && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5d/00fa2de0a6ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5d/00fa2de0a6ce00141801ff0972626827 deleted file mode 100644 index 712d032..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5d/00fa2de0a6ce00141801ff0972626827 +++ /dev/null @@ -1,106 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import java.util.Iterator; -import java.util.List; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class EffectFeather extends ModifierEffects -{ - public EffectFeather() - { - super(new ItemStack(Items.feather)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - // Positive earrings - if (jewelry instanceof ItemEarrings && pos != -1){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); - List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); - if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ - Iterator iterator = list.iterator(); - while (iterator.hasNext()){ - EntityArrow arrow = (EntityArrow)iterator.next(); - if (rand.nextInt(3) == 0 && (arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0)) arrow.setDead(); - } - } - } - // Positive bracelet - if (jewelry instanceof ItemBracelet && pos != -1){ - if (player.motionY < 0) player.motionY *= 0.6D; - player.setAIMoveSpeed(player.getAIMoveSpeed() / 2); - player.fallDistance = 0F; - } - } - - @Override - public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - NBTTagCompound enemyData = target.getEntityData(); - if (jewelry instanceof ItemRing && pos != -1 && enemyData.getInteger("reAttacked") == 0){ - enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); - target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); - if (target instanceof EntityPlayer && rand.nextInt(2) == 0){ - NBTTagCompound enemyInfo = PlayerUtils.getModPlayerPersistTag((EntityPlayer)target, "Jewelrycraft"); - enemyInfo.setInteger("stunTime", 50); - enemyInfo.setBoolean("stunned", true); - }else if (rand.nextInt(2) == 0){ - enemyData.setInteger("stunTime", 50); - enemyData.setBoolean("stunned", true); - } - playerInfo.setBoolean("weakDamage", true); - } - if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (jewelry instanceof ItemNecklace && pos != -1 && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); - playerInfo.setBoolean("negateDamage", true); - } - // Negative necklace - if (jewelry instanceof ItemNecklace && pos != -1 && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); - // Negative earrings - if (jewelry instanceof ItemEarrings && pos != -1 && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5e/f0abea277dcf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5e/f0abea277dcf00141de78e4a85bb2469 deleted file mode 100644 index ff732a4..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5e/f0abea277dcf00141de78e4a85bb2469 +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Mod made by DarkKnight during the Modjam 3 - * It's an awesome mod - * I love me! :D - */ -package darkknight.jewelrycraft; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.logging.Logger; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.gen.structure.MapGenStructureIO; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.oredict.OreDictionary; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.Mod; -import cpw.mods.fml.common.Mod.EventHandler; -import cpw.mods.fml.common.Mod.Instance; -import cpw.mods.fml.common.ModMetadata; -import cpw.mods.fml.common.SidedProxy; -import cpw.mods.fml.common.event.FMLInitializationEvent; -import cpw.mods.fml.common.event.FMLPostInitializationEvent; -import cpw.mods.fml.common.event.FMLPreInitializationEvent; -import cpw.mods.fml.common.event.FMLServerStartingEvent; -import cpw.mods.fml.common.network.NetworkRegistry; -import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper; -import cpw.mods.fml.common.registry.EntityRegistry; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.common.registry.VillagerRegistry; -import cpw.mods.fml.relauncher.Side; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.commands.JewelrycraftCommands; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.container.GuiHandler; -import darkknight.jewelrycraft.curses.CurseList; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.effects.EffectsList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.events.BucketHandler; -import darkknight.jewelrycraft.events.EntityEventHandler; -import darkknight.jewelrycraft.events.KeyBindings; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketKeyPressEvent; -import darkknight.jewelrycraft.network.PacketRequestLiquidData; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendLiquidData; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.recipes.CraftingRecipes; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.worldGen.Generation; -import darkknight.jewelrycraft.worldGen.village.ComponentJewelry; -import darkknight.jewelrycraft.worldGen.village.JCTrades; -import darkknight.jewelrycraft.worldGen.village.VillageJewelryHandler; - -@Mod (modid = Reference.MODID, name = Reference.MODNAME, version = Reference.VERSION) -public class JewelrycraftMod -{ - @Instance (Reference.MODID) - public static JewelrycraftMod instance; - @SidedProxy (clientSide = "darkknight.jewelrycraft.client.ClientProxy", serverSide = "darkknight.jewelrycraft.CommonProxy") - public static CommonProxy proxy; - public static final Logger logger = Logger.getLogger("Jewelrycraft"); - public static File dir; - public static CreativeTabs jewelrycraft = new CreativeTabs("JewelryCraft"){ - @Override - public Item getTabIconItem() - { - return Item.getItemFromBlock(BlockList.jewelCraftingTable); - } - }; - public static CreativeTabs liquids = new CreativeTabLiquids("Liquids"); - public static NBTTagCompound saveData = new NBTTagCompound(); - public static NBTTagCompound clientData = new NBTTagCompound(); - public static File liquidsConf; - public static SimpleNetworkWrapper netWrapper; - public static boolean fancyRender; - public static final int MAX_CURSES = 10; - - /** - * Pre initialization of mod stuff. - * - * @param e FMLPreInitializationEvent - * @throws IOException Signals that an I/O exception has occurred. - */ - @EventHandler - public void preInit(FMLPreInitializationEvent e) throws IOException - { - ConfigHandler.preInit(e); - BlockList.preInit(e); - ItemList.preInit(e); - CraftingRecipes.preInit(e); - CurseList.preInit(e); - OreDictionary.registerOre("ingotShadow", new ItemStack(ItemList.shadowIngot)); - OreDictionary.registerOre("oreShadow", new ItemStack(BlockList.shadowOre)); - VillagerRegistry.instance().registerVillagerId(3000); - VillagerRegistry.instance().registerVillageTradeHandler(3000, new JCTrades()); - VillagerRegistry.instance().registerVillageCreationHandler(new VillageJewelryHandler()); - try{ - MapGenStructureIO.func_143031_a(ComponentJewelry.class, "Jewelrycraft:Jewelry"); - } - catch(Throwable e2){ - logger.severe("Error registering Jewelrycraft Structures with Vanilla Minecraft: this is expected in versions earlier than 1.7.10"); - } - MinecraftForge.EVENT_BUS.register(new EntityEventHandler()); - MinecraftForge.EVENT_BUS.register(BucketHandler.INSTANCE); - BucketHandler.INSTANCE.buckets.put(BlockList.moltenMetal, ItemList.bucket); - - ModMetadata metadata = e.getModMetadata(); - List authorList = new ArrayList(); - - authorList.add("DarkKnight (or sor1n)"); - authorList.add("bspkrs"); - authorList.add("domi1819"); - - dir = e.getModConfigurationDirectory(); - proxy.registerRenderers(); - netWrapper = NetworkRegistry.INSTANCE.newSimpleChannel(Reference.MODID); - netWrapper.registerMessage(PacketRequestLiquidData.class, PacketRequestLiquidData.class, 0, Side.SERVER); - netWrapper.registerMessage(PacketSendLiquidData.class, PacketSendLiquidData.class, 1, Side.CLIENT); - netWrapper.registerMessage(PacketClearColorCache.class, PacketClearColorCache.class, 2, Side.CLIENT); - netWrapper.registerMessage(PacketKeyPressEvent.class, PacketKeyPressEvent.class, 3, Side.SERVER); - netWrapper.registerMessage(PacketRequestPlayerInfo.class, PacketRequestPlayerInfo.class, 4, Side.SERVER); - netWrapper.registerMessage(PacketSendPlayerInfo.class, PacketSendPlayerInfo.class, 5, Side.CLIENT); - netWrapper.registerMessage(PacketSendCurseStats.class, PacketSendCurseStats.class, 6, Side.CLIENT); - metadata.autogenerated = false; - metadata.authorList = authorList; - metadata.url = "https://github.com/sor1n/Jewelrycraft"; - - createEntity(EntityHeart.class, "Heart", 0x000000, 0xFF0000, true); - createEntity(EntityHalfHeart.class, "Half-Heart", 0x000000, 0xFF0000, true); - -// EntityRegistry.addSpawn(EntityMob.class, 5, 2, 3, EnumCreatureType.creature, BiomeGenBase.forest, BiomeGenBase.forestHills, BiomeGenBase.birchForest, BiomeGenBase.birchForestHills, BiomeGenBase.plains, BiomeGenBase.beach, BiomeGenBase.coldBeach, BiomeGenBase.frozenRiver); - } - - public void createEntity(Class entity, String entityName, int solidColor, int spotColor, boolean hasSpawnEgg) - { - int randomID = EntityRegistry.findGlobalUniqueEntityId(); - if(hasSpawnEgg) EntityRegistry.registerGlobalEntityID(entity, entityName, randomID, solidColor, spotColor); - else EntityRegistry.registerGlobalEntityID(entity, entityName, randomID); - EntityRegistry.registerModEntity(entity, entityName, randomID, this, 40, 3, true); - } - - /** - * Initializes the world generation and key bindings. - * - * @param e FMLInitializationEvent - */ - @EventHandler - public void init(FMLInitializationEvent e) - { - GameRegistry.registerWorldGenerator(new Generation(), 0); - if (FMLCommonHandler.instance().getSide() == Side.CLIENT) FMLCommonHandler.instance().bus().register(new KeyBindings()); - new GuiHandler(); - } - - /** - * Post initialization of metals, modifiers and others. - * - * @param e FMLPostInitializationEvent - */ - @EventHandler - public void postInit(FMLPostInitializationEvent e) - { - JewelrycraftUtil.addMetals(); - JewelrycraftUtil.addStuff(); - JewelrycraftUtil.jamcrafters(); - EffectsList.postInit(e); - DamageSourceList.postInit(e); - } - - @Mod.EventHandler - public void serverLoad(FMLServerStartingEvent event) - { - event.registerServerCommand(new JewelrycraftCommands()); - } - -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/30d8062da0ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/30d8062da0ce00141801ff0972626827 deleted file mode 100644 index 3457235..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/30d8062da0ce00141801ff0972626827 +++ /dev/null @@ -1,71 +0,0 @@ -/** - * - */ -package darkknight.jewelrycraft.network; - -import java.util.Iterator; -import java.util.List; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import io.netty.buffer.ByteBuf; -import cpw.mods.fml.common.network.ByteBufUtils; -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import darkknight.jewelrycraft.events.PlayerRenderHandler; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * @author Sorin - * - */ -public class PacketSendCurseStats implements IMessage, IMessageHandler -{ - public PacketSendCurseStats() - { - - } - - /** - * @param message - * @param ctx - * @return - */ - @Override - public IMessage onMessage(PacketSendCurseStats message, MessageContext ctx) - { - return null; - } - - /** - * @param buf - */ - @Override - public void fromBytes(ByteBuf buf) - { - String temp = ByteBufUtils.readUTF8String(buf); - if (temp != "") - PlayerRenderHandler.infamyCache = temp.split(";"); - else - PlayerRenderHandler.infamyCache = new String[] { }; - } - - /** - * @param buf - */ - @Override - public void toBytes(ByteBuf buf) - { - Iterator players = MinecraftServer.getServer().getConfigurationManager().playerEntityList.iterator(); - String infamyPlayers = ""; - while (players.hasNext()) - { - EntityPlayer current = players.next(); - if(PlayerUtils.getModPlayerPersistTag(current, "Jewelrycraft").getInteger(Reference.MODNAME + ":" + "Infamy") > 0) - infamyPlayers = infamyPlayers + (infamyPlayers == "" ? "" : ";") + current.getDisplayName(); - } - ByteBufUtils.writeUTF8String(buf, infamyPlayers); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/30e8b2dea5ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/30e8b2dea5ce00141801ff0972626827 deleted file mode 100644 index d9be141..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/30e8b2dea5ce00141801ff0972626827 +++ /dev/null @@ -1,102 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import java.util.Iterator; -import java.util.List; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class EffectFeather extends ModifierEffects -{ - public EffectFeather() - { - super(new ItemStack(Items.feather)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - // Positive earrings - if (jewelry instanceof ItemEarrings && pos != -1){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); - List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); - if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ - Iterator iterator = list.iterator(); - while (iterator.hasNext()){ - EntityArrow arrow = (EntityArrow)iterator.next(); - if (rand.nextInt(3) == 0 && (arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0)) arrow.setDead(); - } - } - } - // Positive bracelet - if (jewelry instanceof ItemBracelet && pos != -1){ - if (player.motionY < 0) player.motionY *= 0.6D; - player.setAIMoveSpeed(player.getAIMoveSpeed() / 2); - player.fallDistance = 0F; - } - } - - @Override - public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - NBTTagCompound enemyData = target.getEntityData(); - if (jewelry instanceof ItemRing && pos != -1 && enemyData.getInteger("reAttacked") == 0){ - enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); - target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); - if (rand.nextInt(2) == 0){ - enemyData.setInteger("stunTime", 50); - enemyData.setBoolean("stunned", true); - } - playerInfo.setBoolean("weakDamage", true); - } - if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (jewelry instanceof ItemNecklace && pos != -1 && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); - playerInfo.setBoolean("negateDamage", true); - } - // Negative necklace - if (jewelry instanceof ItemNecklace && pos != -1 && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); - // Negative earrings - if (jewelry instanceof ItemEarrings && pos != -1 && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/30f9e59108de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/30f9e59108de00141043c3025ec60dfc new file mode 100644 index 0000000..7faaa17 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/30f9e59108de00141043c3025ec60dfc @@ -0,0 +1,184 @@ +package darkknight.jewelrycraft.model; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + System.out.println((int)f3); + if ((int)f3 != -1){ + int ingotColor = (int)f3; + int red = ingotColor >> 16 & 0xff; + int green = ingotColor >> 8 & 0xff; + int blue = ingotColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/50b15c9812cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/50b15c9812cf00141c41f52413db5e31 deleted file mode 100644 index d9be141..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/50b15c9812cf00141c41f52413db5e31 +++ /dev/null @@ -1,102 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import java.util.Iterator; -import java.util.List; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class EffectFeather extends ModifierEffects -{ - public EffectFeather() - { - super(new ItemStack(Items.feather)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - // Positive earrings - if (jewelry instanceof ItemEarrings && pos != -1){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); - List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); - if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ - Iterator iterator = list.iterator(); - while (iterator.hasNext()){ - EntityArrow arrow = (EntityArrow)iterator.next(); - if (rand.nextInt(3) == 0 && (arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0)) arrow.setDead(); - } - } - } - // Positive bracelet - if (jewelry instanceof ItemBracelet && pos != -1){ - if (player.motionY < 0) player.motionY *= 0.6D; - player.setAIMoveSpeed(player.getAIMoveSpeed() / 2); - player.fallDistance = 0F; - } - } - - @Override - public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - NBTTagCompound enemyData = target.getEntityData(); - if (jewelry instanceof ItemRing && pos != -1 && enemyData.getInteger("reAttacked") == 0){ - enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); - target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); - if (rand.nextInt(2) == 0){ - enemyData.setInteger("stunTime", 50); - enemyData.setBoolean("stunned", true); - } - playerInfo.setBoolean("weakDamage", true); - } - if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (jewelry instanceof ItemNecklace && pos != -1 && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); - playerInfo.setBoolean("negateDamage", true); - } - // Negative necklace - if (jewelry instanceof ItemNecklace && pos != -1 && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); - // Negative earrings - if (jewelry instanceof ItemEarrings && pos != -1 && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/60bc25dabdd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/60bc25dabdd000141b65e2fc7f94332d deleted file mode 100644 index 9e5a035..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/5f/60bc25dabdd000141b65e2fc7f94332d +++ /dev/null @@ -1,236 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6/40b159950ade00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6/40b159950ade00141043c3025ec60dfc new file mode 100644 index 0000000..b276345 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6/40b159950ade00141043c3025ec60dfc @@ -0,0 +1,186 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + System.out.println((int)f3); + if ((int)f3 != -1){ + int ingotColor = Math.abs((int)f3); + int alpha = (ingotColor >> 24) & 0xff; + int red = (ingotColor >> 16) & 0xff; + int green = (ingotColor >> 8) & 0xff; + int blue = ingotColor & 0xff; + GL11.glColor4f((float)red / 255, (float)green / 255, (float)blue / 255, (float)alpha / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6/d0a52e0212cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6/d0a52e0212cf00141c41f52413db5e31 deleted file mode 100644 index 5ee1677..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6/d0a52e0212cf00141c41f52413db5e31 +++ /dev/null @@ -1,446 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if(entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if(playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - // for(Curse curse: Curse.getCurseList()) - // if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if(((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); -// int grade = 1 + player.worldObj.rand.nextInt(2); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if(entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); -// if (!entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/60/601a6034bcd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/60/601a6034bcd000141b65e2fc7f94332d deleted file mode 100644 index a57ee2f..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/60/601a6034bcd000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate, 0, 0, 0); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate, 0, 0, 0); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate, 0, 0, 0); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate, 0, 0, 0); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate, 0, 0, 0); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate, 0, 0, 0); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate, 0, 0, 0); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item, float xRot, float yRot, float zRot) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 153, 12, 12); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 22 && mouseY >= y + 20 && mouseY <= y + 32) gui.drawHoverString(name, x, y + 10); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 15, y + 25, 40f, false, xRot, yRot, zRot); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate, 0, 0, 0); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/60/c0d85da8b8d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/60/c0d85da8b8d000141b65e2fc7f94332d deleted file mode 100644 index 2db2bff..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/60/c0d85da8b8d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 153, 12, 12); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 15, y + 25, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/61/8023076d28de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/61/8023076d28de00141043c3025ec60dfc new file mode 100644 index 0000000..3a08f3c --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/61/8023076d28de00141043c3025ec60dfc @@ -0,0 +1,465 @@ +package darkknight.jewelrycraft.events; + +import ibxm.Player; +import java.io.EOFException; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Iterator; +import java.util.List; +import java.util.Random; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompressedStreamTools; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.MathHelper; +import net.minecraftforge.client.event.EntityViewRenderEvent; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.event.entity.item.ItemTossEvent; +import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.living.LivingDeathEvent; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingFallEvent; +import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; +import net.minecraftforge.event.world.WorldEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.config.ConfigHandler; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.entities.EntityHalfHeart; +import darkknight.jewelrycraft.entities.EntityHeart; +import darkknight.jewelrycraft.item.ItemBaseJewelry; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemList; +import darkknight.jewelrycraft.network.PacketClearColorCache; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.network.PacketSendCurseStats; +import darkknight.jewelrycraft.network.PacketSendPlayerInfo; +import darkknight.jewelrycraft.util.BlockUtils; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +/** + * Code taken from OpenBlocks + */ +public class EntityEventHandler +{ + /** + * @param event + */ + @SubscribeEvent + public void onEntityJoinWorld(EntityJoinWorldEvent event) + { + if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + final Entity entity = event.entity; + if (!event.world.isRemote && entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); + if (shouldGiveManual){ + ItemStack manual = new ItemStack(ItemList.guide); + if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); + persistTag.setBoolean("givenGuide", true); + } + boolean render = persistTag.getBoolean("fancyRender"); + JewelrycraftMod.fancyRender = render; + for(Curse curse: Curse.getCurseList()) + if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); + persistTag.setBoolean("sendInfo", true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityUpdate(LivingUpdateEvent event) + { + Entity entity = event.entity; + if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ + entity.motionX *= 0D; + entity.motionZ *= 0D; + entity.motionY *= 0D; + entity.rotationPitch = entity.prevRotationPitch; + entity.rotationYaw = entity.prevRotationYaw; + entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); + if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); + entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); + if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ + player.motionX *= 0D; + player.motionZ *= 0D; + player.motionY *= 0D; + player.rotationPitch = entity.prevRotationPitch; + player.rotationYaw = entity.prevRotationYaw; + playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); + if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); + player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); + } + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if(item != null) ((ItemBaseJewelry)item.getItem()).action(item, player); + } + if (!player.worldObj.isRemote){ + if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); + if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); + } + if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); + if (playerInfo.getBoolean("sendInfo")){ + JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); + playerInfo.setBoolean("sendInfo", false); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && playerInfo.getInteger("cursePoints") > 0) curse.action(player.worldObj, player); + } + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityAttacked(LivingAttackEvent event) + { + Entity entity = event.entityLiving; + if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); + if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("negateDamage")){ + playerInfo.setBoolean("negateDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); + } + if (player.getHealth() != player.prevHealth){ + if (playerInfo.getFloat("WhiteHeart") > 0){ + playerInfo.setFloat("WhiteHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getFloat("BlueHeart") > 0){ + float damage = playerInfo.getFloat("BlueHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlueHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlueHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + }else if (playerInfo.getFloat("BlackHeart") > 0){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); + List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); + if (enemies != null && !enemies.isEmpty()){ + Iterator iterator = enemies.iterator(); + while (iterator.hasNext()){ + Entity enemy = (Entity)iterator.next(); + enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); + } + } + float damage = playerInfo.getFloat("BlackHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlackHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlackHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + } + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && playerInfo.getInteger("cursePoints") > 0) curse.attackedAction(player.worldObj, player); + }else if (event.source.getEntity() instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.source.getEntity(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("weakDamage")){ + playerInfo.setBoolean("weakDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && playerInfo.getInteger("cursePoints") > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onPlayerRespawn(PlayerEvent.Clone event) + { + EntityPlayer player = event.entityPlayer; + if (!player.worldObj.isRemote){ + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + } + playerInfo.setBoolean("sendInfo", true); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && playerInfo.getInteger("cursePoints") > 0) curse.respawnAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param player + * @param playerInfo + * @param curse + */ + public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) + { + if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ + int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); + Curse cur = Curse.availableCurses.get(no); + playerInfo.setInteger(cur.getName(), 1); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) + { + Curse cur = Curse.getCurseList().get(curseID); + if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ + playerInfo.setInteger(cur.getName(), grade); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + @SubscribeEvent + public void itemToss(ItemTossEvent event) + { + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, Variables.MODID); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss() && playerInfo.getInteger("cursePoints") > 0){ + EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); + entityitem.motionX = 0; + entityitem.motionZ = 0; + entityitem.motionY = 0.11000000298023224D; + event.player.worldObj.spawnEntityInWorld(entityitem); + List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; + Iterator plrs = players.iterator(); + while (plrs.hasNext()) + ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); + event.setCanceled(true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void playerFileSave(PlayerEvent.SaveToFile event) + { + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityDead(LivingDeathEvent event) + { + final Entity entity = event.entity; + Random rand = new Random(); + String[] types = {"Red", "Blue", "White", "Black"}; + if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ + EntityLiving live = (EntityLiving)entity; + String type = types[rand.nextInt(4)]; + if (rand.nextInt(6) == 0){ + if (type == "White"){ + EntityHeart h = new EntityHalfHeart(live.worldObj); + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + }else{ + for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ + EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; + EntityHeart h = hearts[rand.nextInt(2)]; + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + } + } + } + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ + for(Curse l: Curse.getCurseList()){ + if (playerInfo.getInteger(l.getName()) == 1){ + playerInfo.setInteger(l.getName(), 0); + Curse.availableCurses.add(l); + }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); + } + if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + playerInfo.setBoolean("sendInfo", true); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldLoad(WorldEvent.Load event) + { + if (!event.world.isRemote){ + new File(JewelrycraftMod.dir + File.separator + Variables.MODID).mkdirs(); + JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + Variables.MODID, "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); + try{ + if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldSave(WorldEvent.Save event) + { + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogColors(EntityViewRenderEvent.FogColors event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + event.red = 0f; + event.green = 0f; + event.blue = 0f; + } + } + if (event.isCancelable()) event.setCanceled(true); + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogDensity(EntityViewRenderEvent.FogDensity event) + {} + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void renderFog(EntityViewRenderEvent.RenderFogEvent event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); + GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); + } + } + if (event.isCancelable()) event.setCanceled(true); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/61/d0d1c7060cde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/61/d0d1c7060cde00141043c3025ec60dfc new file mode 100644 index 0000000..b81fb7c --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/61/d0d1c7060cde00141043c3025ec60dfc @@ -0,0 +1,186 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + if ((int)f3 != -1){ + int ingotColor = (int)f3; + int red = (ingotColor >> 16) & 0xff; + int green = (ingotColor >> 8) & 0xff; + int blue = ingotColor & 0xff; +// System.out.println(red + " " + green + " " + blue); + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glColorMask(true, false, true, true); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/2069867dbbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/2069867dbbd000141b65e2fc7f94332d deleted file mode 100644 index 77446e3..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/2069867dbbd000141b65e2fc7f94332d +++ /dev/null @@ -1,114 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 180, -90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 90, 90, 90); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/30a210a5bbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/30a210a5bbd000141b65e2fc7f94332d deleted file mode 100644 index 9c9770a..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/30a210a5bbd000141b65e2fc7f94332d +++ /dev/null @@ -1,114 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 45, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/507f105a2ede00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/507f105a2ede00141043c3025ec60dfc new file mode 100644 index 0000000..52da51e --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/507f105a2ede00141043c3025ec60dfc @@ -0,0 +1,109 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ +// for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 0 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlackHeart")) / 2.0F), 15 + 35*count, resolution.getScaledHeight() - 16, 16777215); +// if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("BlackHeart") > 0){ +// for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 1 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlackHeart")) / 2.0F), 15 + 35*count, resolution.getScaledHeight() - 16, 16777215); +// if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/c01a61492ede00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/c01a61492ede00141043c3025ec60dfc new file mode 100644 index 0000000..f9979fc --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/c01a61492ede00141043c3025ec60dfc @@ -0,0 +1,109 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ +// for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(5 + 24*count, resolution.getScaledHeight() - 20, 0 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlackHeart")) / 2.0F), 15 + 24*count, resolution.getScaledHeight() - 20, 16777215); +// if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("BlackHeart") > 0){ +// for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(5 + 24*count, resolution.getScaledHeight() - 20, 1 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlackHeart")) / 2.0F), 15 + 24*count, resolution.getScaledHeight() - 20, 16777215); +// if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(5 + 24*count, resolution.getScaledHeight() - 20, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/f0beebb39ad000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/f0beebb39ad000141b65e2fc7f94332d deleted file mode 100644 index 2ba8fc2..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/62/f0beebb39ad000141b65e2fc7f94332d +++ /dev/null @@ -1,74 +0,0 @@ -package darkknight.jewelrycraft.container; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabModifiers extends GuiTab -{ - int maxPages; - public GuiTabModifiers(int id) - { - super("Modifiers", id); - } - - /** - * @return - */ - @Override - public ItemStack getIcon() - { - return new ItemStack(Items.blaze_powder); - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - String text = ""; - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - text = "Although you can add anything as a modifier, only some objects have an effect. In this tab you can find all of modifiers that have a use and what they do, in the form of a story/riddle/poem. However different jewellery have different effects for the same modifier."; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - case 2: - text = "The ancient ones talked about a rising fire in your heart. Fret do not, for flames do not burn, but water might sting a turn. Watch your step, do not be cocky, for its protection is a bit sloppy."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), new ItemStack(Items.blaze_powder), text, 40f); - break; - case 3: - text = "Light and swift as a feather can be good all together. Enemies miss and get confused, this power can be abused. Against an arrow you can't compare, so move around, don't just stare. Fire is your enemy and weakness is the penalty."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), new ItemStack(Items.feather), text, 40f); - break; - case 4: - text = "Endermen may tolerate you, end portals are near too, you may find ore that is true. But be careful, for the power may make you dizzy, blind you if you're a sissy, worsen your vision if you're unaware and shift positions everywhere."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop() - 10, new ItemStack(Items.ender_eye), text, 40f); - break; - } - } - - /** - * @return - */ - @Override - public int getMaxPages() - { - return 4; - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/204cfa240ade00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/204cfa240ade00141043c3025ec60dfc new file mode 100644 index 0000000..6dc7a84 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/204cfa240ade00141043c3025ec60dfc @@ -0,0 +1,185 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + System.out.println((int)f3); + if ((int)f3 != -1){ + int ingotColor = Math.abs((int)f3); + int red = ingotColor >> 16 & 0xff; + int green = ingotColor >> 8 & 0xff; + int blue = ingotColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/60dd45d1a5ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/60dd45d1a5ce00141801ff0972626827 deleted file mode 100644 index 1493067..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/60dd45d1a5ce00141801ff0972626827 +++ /dev/null @@ -1,448 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if(entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - playerInfo.setBoolean("stunned", true); - playerInfo.setInteger("stunTime", 50); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if(playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 1F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - // for(Curse curse: Curse.getCurseList()) - // if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if(((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); -// int grade = 1 + player.worldObj.rand.nextInt(2); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if(entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); -// if (!entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/a0890abe02de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/a0890abe02de00141043c3025ec60dfc new file mode 100644 index 0000000..7e13246 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/a0890abe02de00141043c3025ec60dfc @@ -0,0 +1,272 @@ +package darkknight.jewelrycraft.tileentity; + +import java.util.ArrayList; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import darkknight.jewelrycraft.block.BlockHandPedestal; +import darkknight.jewelrycraft.block.BlockList; +import darkknight.jewelrycraft.particles.EntityShadowsFX; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class TileEntityShadowEye extends TileEntity +{ + public int opening, timer, t = 20; + public boolean active; + public ArrayList pedestalItems = new ArrayList(); + ResourceLocation particleTexture = new ResourceLocation(Variables.MODID, "textures/particle/shadows.png"); + public EntityPlayer target; + + public TileEntityShadowEye() + { + opening = 1; + timer = 20; + active = false; + } + + /** + * @param nbt + */ + @Override + public void writeToNBT(NBTTagCompound nbt) + { + super.writeToNBT(nbt); + nbt.setInteger("opening", opening); + nbt.setInteger("timer", timer); + nbt.setBoolean("active", active); + } + + /** + * @param nbt + */ + @Override + public void readFromNBT(NBTTagCompound nbt) + { + super.readFromNBT(nbt); + opening = nbt.getInteger("opening"); + timer = nbt.getInteger("timer"); + active = nbt.getBoolean("active"); + } + + /** + * + */ + @Override + public void updateEntity() + { + super.updateEntity(); + boolean valid = isValidStructure(worldObj, xCoord, yCoord, zCoord, blockMetadata); + if (active) timer--; + if (opening == 4 && timer <= 0) active = false; + if (!active && timer <= 0 && opening != 1){ + if (t > 0) t--; + if (t <= 0){ + opening--; + t = 20; + } + } + if (opening == 2 && timer <= 0 && t == 10){ + addData(worldObj, xCoord, yCoord, zCoord); + TileEntityHandPedestal target = (TileEntityHandPedestal)worldObj.getTileEntity(xCoord, yCoord - 3, zCoord); + if (target != null && target.getHeldItemStack() != null) JewelryNBT.addModifiers(target.getHeldItemStack(), pedestalItems); + } + if (active && timer <= 0){ + if (opening < 4){ + opening++; + timer = 20; + } + if (valid && opening == 4) timer = 1000; + else if (!valid){ + active = false; + timer = -1; + } + } + for(Object player: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(8D, 8D, 8D))) + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", false); + } + if (active && opening == 4){ + float din = 6F; + int i = Minecraft.getMinecraft().gameSettings.particleSetting; + for(float x = -din; x <= din; x += 0.2F) + for(float z = -din; z <= din; z += 0.2F) + if (x * x + z * z >= din * din - 1 && x * x + z * z <= din * din + 1) Minecraft.getMinecraft().effectRenderer.addEffect(new EntityShadowsFX(worldObj, xCoord + x + 0.5F, yCoord - 0.5F, zCoord + z + 0.5F, 15F, 0.04F - 0.01F * i, particleTexture)); + for(int l = 0; l <= 2 - i; l++) + worldObj.spawnParticle("depthsuspend", xCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), yCoord - 2F + worldObj.rand.nextFloat(), zCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), 0, 0, 0); + for(Object player: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(8D, 8D, 8D))) + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", true); + } + } + } + + /** + * @param world + * @param x + * @param y + * @param z + * @param metadata + * @return + */ + public boolean isValidStructure(World world, int x, int y, int z, int metadata) + { + if (world.getBlockMetadata(x, y, z) == 0 || world.getBlockMetadata(x, y, z) == 2){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x + 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x + 1, y + 1, z) != 5) return false; + if (world.getBlock(x - 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x - 1, y + 1, z) != 5) return false; + // 2nd Layer + if (world.getBlock(x + 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 2, y, z) != 1) return false; + if (world.getBlock(x + 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 1, y, z) != 4) return false; + if (world.getBlock(x - 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 1, y, z) != 5) return false; + if (world.getBlock(x - 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 2, y, z) != 0) return false; + // 3rd Layer + if (world.getBlock(x + 2, y - 1, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 1, z) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x + 2, y - 2, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 2, z) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x + 2, y - 3, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 3, z) != Blocks.stonebrick) return false; + }else if (world.getBlockMetadata(x, y, z) == 1 || world.getBlockMetadata(x, y, z) == 3){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x, y + 1, z + 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z + 1) != 5) return false; + if (world.getBlock(x, y + 1, z - 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z - 1) != 5) return false; + // 2nd Layer + if (world.getBlock(x, y, z + 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 2) != 3) return false; + if (world.getBlock(x, y, z + 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 1) != 6) return false; + if (world.getBlock(x, y, z - 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 1) != 7) return false; + if (world.getBlock(x, y, z - 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 2) != 2) return false; + // 3rd Layer + if (world.getBlock(x, y - 1, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 1, z - 2) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x, y - 2, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 2, z - 2) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x, y - 3, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 3, z - 2) != Blocks.stonebrick) return false; + } + // 3rd Layer + if (world.getBlock(x - 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x - 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + // 4th Layer + if (world.getBlock(x - 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 2, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z + 4) != Blocks.stonebrick) return false; + // 5th Layer + // Pillars + if (world.getBlock(x - 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 3, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z + 4) != Blocks.stonebrick) return false; + // Pedestals + if (!(world.getBlock(x, y - 3, z) instanceof BlockHandPedestal)) return false; + if (world.getBlock(x - 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z + 2) != 1) return false; + if (world.getBlock(x - 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x - 5, y - 3, z) != 2) return false; + if (world.getBlock(x - 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z - 2) != 3) return false; + if (world.getBlock(x - 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z - 4) != 3) return false; + if (world.getBlock(x, y - 3, z - 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z - 5) != 4) return false; + if (world.getBlock(x + 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z - 4) != 5) return false; + if (world.getBlock(x + 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z - 2) != 5) return false; + if (world.getBlock(x + 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x + 5, y - 3, z) != 6) return false; + if (world.getBlock(x + 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z + 2) != 7) return false; + if (world.getBlock(x + 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z + 4) != 7) return false; + if (world.getBlock(x, y - 3, z + 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z + 5) != 0) return false; + if (world.getBlock(x - 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z + 4) != 1) return false; + return true; + } + + /** + * @param world + * @param x + * @param y + * @param z + */ + public void addData(World world, int x, int y, int z) + { + pedestalItems.clear(); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z - 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z + 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z + 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z + 4)); + } + + /** + * @param pedestal + */ + public void addPedestalInfo(TileEntityHandPedestal pedestal) + { + ItemStack heldItemStack; + if (pedestal != null && (heldItemStack = pedestal.getHeldItemStack()) != null){ + if (pedestalItems.isEmpty()) pedestalItems.add(heldItemStack.copy()); + else{ + boolean hasItem = false; + int index = 0; + for(int ind = 0; ind < pedestalItems.size() && !hasItem; ind++) + if (heldItemStack.getItem().equals(pedestalItems.get(ind).getItem()) && heldItemStack.getItemDamage() == pedestalItems.get(ind).getItemDamage()){ + index = ind; + hasItem = true; + if (heldItemStack.hasTagCompound() && pedestalItems.get(ind).hasTagCompound() && !heldItemStack.getTagCompound().equals(pedestalItems.get(ind).getTagCompound())) hasItem = false; + } + if (!hasItem) pedestalItems.add(heldItemStack.copy()); + else{ + ItemStack object = pedestalItems.get(index).copy(); + object.stackSize++; + pedestalItems.set(index, object); + } + } + pedestal.removeHeldItemStack(); + pedestal.openHand(); + } + } + + /** + * @return + */ + @Override + public Packet getDescriptionPacket() + { + NBTTagCompound nbttagcompound = new NBTTagCompound(); + writeToNBT(nbttagcompound); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 1, nbttagcompound); + } + + /** + * @param net + * @param packet + */ + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet) + { + readFromNBT(packet.func_148857_g()); + worldObj.func_147479_m(xCoord, yCoord, zCoord); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/d03963b82ede00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/d03963b82ede00141043c3025ec60dfc new file mode 100644 index 0000000..59c1a5b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/d03963b82ede00141043c3025ec60dfc @@ -0,0 +1,108 @@ +/** + * + */ +package darkknight.jewelrycraft.entities; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureAttribute; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.util.DamageSource; +import net.minecraft.world.World; + +/** + * @author Sorin + */ +public class EntityHeart extends EntityLiving +{ + public EntityHeart(World world) + { + super(world); + this.setSize(0.4F, 0.4F); + } + + public boolean isEntityInvulnerable() + { + return true; + } + + protected boolean canDespawn() + { + return false; + } + + @Override + public void onCollideWithPlayer(EntityPlayer player) + { + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (getType() == "Red" && player.getHealth() < player.getMaxHealth()){ + player.heal(2f); + this.setDead(); + } + else if (getType() != "Red" && playerInfo.getFloat(getType() + "Heart") < 20f){ + playerInfo.setFloat(getType() + "Heart", playerInfo.getFloat(getType() + "Heart") + 2.0F <= 20f ? playerInfo.getFloat(getType() + "Heart") + 2.0F : 20f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + this.setDead(); + } + } + + @Override + protected void updateEntityActionState() + { + } + + @SideOnly(Side.CLIENT) + public boolean canRenderOnFire() + { + return false; + } + + protected void entityInit() + { + super.entityInit(); + this.dataWatcher.addObject(16, "Red"); + } + + public void writeEntityToNBT(NBTTagCompound nbt) + { + super.writeEntityToNBT(nbt); + nbt.setString("Type", getType()); + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + public void readEntityFromNBT(NBTTagCompound nbt) + { + super.readEntityFromNBT(nbt); + setType(nbt.getString("Type")); + } + + public String getType() + { + return this.dataWatcher.getWatchableObjectString(16); + } + + public void setType(String type) + { + this.dataWatcher.updateObject(16, type); + } + + public EnumCreatureAttribute getCreatureAttribute() + { + return EnumCreatureAttribute.UNDEAD; + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/e00f48f3bdd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/e00f48f3bdd000141b65e2fc7f94332d deleted file mode 100644 index bedf20a..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/e00f48f3bdd000141b65e2fc7f94332d +++ /dev/null @@ -1,237 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.block.BlockShadowEye; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - if(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockShadowEye) GL11.glTranslatef(0F, 0F, 0.01F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/e0b3878d7dcf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/e0b3878d7dcf00141de78e4a85bb2469 deleted file mode 100644 index 69cf5fb..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/63/e0b3878d7dcf00141de78e4a85bb2469 +++ /dev/null @@ -1,223 +0,0 @@ -package darkknight.jewelrycraft.util; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Random; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.oredict.OreDictionary; -import cpw.mods.fml.common.registry.GameData; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.events.EntityEventHandler; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; - -public class JewelrycraftUtil -{ - public static ArrayList objects = new ArrayList(); - public static ArrayList gem = new ArrayList(); - public static ArrayList jewelry = new ArrayList(); - public static ArrayList metal = new ArrayList(); - public static ArrayList ores = new ArrayList(); - public static HashMap oreToIngot = new HashMap(); - public static ArrayList jamcraftPlayers = new ArrayList(); - public static Random rand = new Random(); - - /** - * Adds gems and jewelry to their appropriate list - */ - public static void addStuff() - { - // Jewels - for(int i = 0; i < 16; i++) - gem.add(new ItemStack(ItemList.crystal, 1, i)); - gem.add(new ItemStack(Blocks.redstone_block)); - gem.add(new ItemStack(Blocks.lapis_block)); - gem.add(new ItemStack(Blocks.obsidian)); - gem.add(new ItemStack(Items.diamond)); - gem.add(new ItemStack(Items.emerald)); - gem.add(new ItemStack(Items.ender_pearl)); - gem.add(new ItemStack(Items.nether_star)); - // Jewelry - jewelry.add(new ItemStack(ItemList.ring)); - jewelry.add(new ItemStack(ItemList.necklace)); - jewelry.add(new ItemStack(ItemList.bracelet)); - jewelry.add(new ItemStack(ItemList.earrings)); - for(Object item: GameData.getItemRegistry()){ - ArrayList items = new ArrayList(); - if (((Item)item).getHasSubtypes()) ((Item)item).getSubItems((Item)item, - null, - items); - else objects.add(new ItemStack((Item)item)); - - if (!items.isEmpty()) objects.addAll(items); - } - } - - /** - * Adds curse points to a player - * - * @param player the player to add the points to - * @param points amount of curse points - */ - public static void addCursePoints(EntityPlayer player, int points) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setInteger("cursePoints", playerInfo.hasKey("cursePoints") ? (playerInfo.getInteger("cursePoints") + points) : points); - playerInfo.setBoolean("playerCursePointsChanged", true); - } - - public static int getCursePoints(EntityPlayer player) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - return playerInfo.getInteger("cursePoints"); - } - - /** - * Adds the UUID's of the jamcrafters in a list - */ - public static void jamcrafters() - { - jamcraftPlayers.add("d3214311-7550-4c9c-a372-d9292c10b8a6"); - jamcraftPlayers.add("a690119f-c4a2-4bd6-a99d-d63679abb328"); - jamcraftPlayers.add("de7c9903-51fa-4a24-88cd-48faf122ca36"); - jamcraftPlayers.add("70aeb298-3a7b-46da-a393-ab10df9359f2"); - jamcraftPlayers.add("6fbe603c-14bf-4085-afdd-abe592c26e7c"); - jamcraftPlayers.add("b0d21306-36bf-4d85-84df-a956d183c45a"); - jamcraftPlayers.add("1733a31f-01f9-4f4d-82aa-7de30ca810d3"); - jamcraftPlayers.add("4833eacf-1d94-49a7-9f89-4cf88d69dcf9"); - jamcraftPlayers.add("718cf671-9084-4e78-b91f-033e80aa11bf"); - jamcraftPlayers.add("bea5e0c4-85c4-454d-a081-e1eaae6895ee"); - jamcraftPlayers.add("7ecf3e2f-fedf-4f7e-8d24-6731d078db4f"); - jamcraftPlayers.add("1b11ad3a-f0ca-4695-a019-2d7e5d83a5fd"); - jamcraftPlayers.add("3ec9ac58-2f1b-4d3f-b4eb-3b875da877ae"); - jamcraftPlayers.add("cf9fa23f-205e-4eed-aba3-9f2848cd6a4d"); - jamcraftPlayers.add("91880caa-b032-48e3-bfe8-c2c7ed31824e"); - jamcraftPlayers.add("8d0b3804-f71c-4219-897b-8c315448ea7c"); - jamcraftPlayers.add("bbb87dbe-690f-4205-bdc5-72ffb8ebc29d"); - } - - /** - * Adds a random amount of modifiers to a list - * - * @param randValue maximum number of modifiers - * @return a list containing the random modifiers - */ - public static ArrayList addRandomModifiers(int randValue) - { - ArrayList list = new ArrayList(); - for(int i = 0; i < 2 + randValue; i++){ - ItemStack item = objects.get(new Random().nextInt(objects.size())); - item.stackSize = 1 + new Random().nextInt(2); - list.add(item); - } - return list; - } - - /** - * Links ores with their appropriate ingot - */ - public static void addMetals() - { - int index = 0; - while (index < OreDictionary.getOreNames().length){ - Iterator i = OreDictionary.getOres(OreDictionary.getOreNames()[index]).iterator(); - while (i.hasNext()){ - ItemStack nextStack = i.next(); - if ((nextStack.getItem().getUnlocalizedName().toLowerCase().contains("ingot") || nextStack.getItem().getUnlocalizedName().toLowerCase().contains("alloy")) && !nextStack.getItem().getUnlocalizedName().toLowerCase().contains("powder") && !nextStack.getItem().getUnlocalizedName().toLowerCase().contains("dust") && !nextStack.getItem().getUnlocalizedName().toLowerCase().contains("block") && !metal.contains(nextStack)){ - metal.add(nextStack); - if (OreDictionary.getOres(OreDictionary.getOreNames()[index].replace("ingot", "ore")) != null){ - ores.addAll(OreDictionary.getOres(OreDictionary.getOreNames()[index].replace("ingot", "ore"))); - Iterator ores = OreDictionary.getOres(OreDictionary.getOreNames()[index].replace("ingot", "ore")).iterator(); - while (ores.hasNext()){ - ItemStack ore = ores.next(); - oreToIngot.put(ore.getItem(), nextStack); - } - } - } - } - index++; - } - } - - /** - * Checks to see if the specified item is a gem - * - * @param item ItemStack containing the item - * @return is the item a gem - */ - public static boolean isGem(ItemStack item) - { - Iterator i = gem.iterator(); - while (i.hasNext()){ - ItemStack temp = i.next(); - if (temp.getItem() == item.getItem() && temp.getItemDamage() == item.getItemDamage()) return true; - } - return false; - } - - /** - * Checks to see if the specified item is a metal - * - * @param item ItemStack containing the item - * @return is the item a metal - */ - public static boolean isMetal(ItemStack item) - { - Iterator i = metal.iterator(); - while (i.hasNext()){ - ItemStack temp = i.next(); - if (temp.getItem() == item.getItem() && temp.getItemDamage() == item.getItemDamage()) return true; - } - return false; - } - - /** - * Checks to see if the specified item is a piece of jewelry - * - * @param item ItemStack containing the item - * @return is the item a piece of jewelry - */ - public static boolean isJewelry(ItemStack item) - { - Iterator i = jewelry.iterator(); - while (i.hasNext()){ - ItemStack temp = i.next(); - if (temp.getItem() == item.getItem() && temp.getItemDamage() == item.getItemDamage()) return true; - } - return false; - } - - /** - * Checks to see if the specified item is an ore - * - * @param item ItemStack containing the item - * @return is the item an ore - */ - public static boolean isOre(ItemStack item) - { - Iterator i = ores.iterator(); - while (i.hasNext()){ - ItemStack temp = i.next(); - if (temp.getItem() == item.getItem() && temp.getItemDamage() == item.getItemDamage()) return true; - } - return false; - } - - /** - * Gets the ingot from the ore - * - * @param ore the ore - * @return the ingot - */ - public static ItemStack getIngotFromOre(Item ore) - { - return oreToIngot.get(ore); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/009346bd26de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/009346bd26de00141043c3025ec60dfc new file mode 100644 index 0000000..29e66f2 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/009346bd26de00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(20, 20 + (size + 20) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 20, 7 + (size + 6) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/50a406e982d000141a1fb02abca5ff55 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/50a406e982d000141a1fb02abca5ff55 deleted file mode 100644 index a6fee08..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/50a406e982d000141a1fb02abca5ff55 +++ /dev/null @@ -1,67 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.settings.GameSettings.Options; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && rand.nextInt(500) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30)*(rand.nextBoolean()?-1:1), player.posY, player.posZ + rand.nextInt(30)*(rand.nextBoolean()?-1:1)); - if (jewelry instanceof ItemRing && pos != -1) Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 1.0F); - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/905e928db7d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/905e928db7d000141b65e2fc7f94332d deleted file mode 100644 index a937672..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/905e928db7d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 153, 12, 12); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() - 20, gui.getTop() + 15); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 20, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/c06ac17c09de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/c06ac17c09de00141043c3025ec60dfc new file mode 100644 index 0000000..ffd2967 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/64/c06ac17c09de00141043c3025ec60dfc @@ -0,0 +1,184 @@ +package darkknight.jewelrycraft.model; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + System.out.println((int)f3); + if ((int)f3 != -1){ + int ingotColor = Math.abs((int)f3); + int red = ingotColor >> 16 & 0xff; + int green = ingotColor >> 8 & 0xff; + int blue = ingotColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/65/603844c615cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/65/603844c615cf00141c41f52413db5e31 deleted file mode 100644 index 5e901ea..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/65/603844c615cf00141c41f52413db5e31 +++ /dev/null @@ -1,460 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0 && playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - System.out.println("SendInfo"); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(player.worldObj, player); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/65/80ef4046bbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/65/80ef4046bbd000141b65e2fc7f94332d deleted file mode 100644 index 8f31fdf..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/65/80ef4046bbd000141b65e2fc7f94332d +++ /dev/null @@ -1,112 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/65/90070fc8cfdf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/65/90070fc8cfdf00141dc6c962aec96210 new file mode 100644 index 0000000..565997b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/65/90070fc8cfdf00141dc6c962aec96210 @@ -0,0 +1,102 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); +// if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(95, 5 + (size + 10) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); +// } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 0 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlueHeart")) / 2.0F), 15 + 35*count, resolution.getScaledHeight() - 16, 16777215); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("BlackHeart") > 0){ + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 1 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlackHeart")) / 2.0F), 15 + 35*count, resolution.getScaledHeight() - 16, 16777215); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/65/9039e7ea21cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/65/9039e7ea21cf00141c41f52413db5e31 deleted file mode 100644 index 52599de..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/65/9039e7ea21cf00141c41f52413db5e31 +++ /dev/null @@ -1,459 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/30591b0b27de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/30591b0b27de00141043c3025ec60dfc new file mode 100644 index 0000000..8335c2c --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/30591b0b27de00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 12 + (size + 6) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/702cdaf0ccdf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/702cdaf0ccdf00141dc6c962aec96210 new file mode 100644 index 0000000..a860652 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/702cdaf0ccdf00141dc6c962aec96210 @@ -0,0 +1,82 @@ +package darkknight.jewelrycraft.effects; + +import net.minecraft.block.BlockOre; +import net.minecraft.client.Minecraft; +import net.minecraft.client.settings.GameSettings.Options; +import net.minecraft.entity.monster.EntityEnderman; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.biome.BiomeGenBase; +import cpw.mods.fml.relauncher.ReflectionHelper; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; + +public class EffectEnderEye extends ModifierEffects +{ + private boolean originalVD = false; + private float originalViewDistance; + public EffectEnderEye() + { + super(new ItemStack(Items.ender_eye)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemEarrings && exists && !player.worldObj.isRemote){ + for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ + EntityEnderman enderman = (EntityEnderman)e; + ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); + Vec3 vec3 = player.getLook(1.0F).normalize(); + Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); + double d0 = vec31.lengthVector(); + vec31 = vec31.normalize(); + double d1 = vec3.dotProduct(vec31); + if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ + //Positive earrings + enderman.setTarget(null); + //Negative earrings + if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); + } + } + } + //Positive necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote){ + ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); + if (chunkposition != null){ + Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); + Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); + } + } + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && rand.nextInt(500) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30)*(rand.nextBoolean()?-1:1), player.posY, player.posZ + rand.nextInt(30)*(rand.nextBoolean()?-1:1)); + if (jewelry instanceof ItemRing && exists && rand.nextInt(200) == 12){ + Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 1.0F); + for(int i = (int)player.posX - 2; i <= (int)player.posX + 2; i++) + for(int j = (int)player.posY - 2; j <= (int)player.posY + 2; j++) + for(int k = (int)player.posZ - 2; k <= (int)player.posZ + 2; k++) + if(player.worldObj.getBlock(i, j, k) instanceof BlockOre) + player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "You sense some " + player.worldObj.getBlock(i, j, k).getLocalizedName() + " around you.")); + } + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/80f33350c9df00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/80f33350c9df00141dc6c962aec96210 new file mode 100644 index 0000000..a44d088 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/80f33350c9df00141dc6c962aec96210 @@ -0,0 +1,93 @@ +package darkknight.jewelrycraft.effects; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class EffectBlazePowder extends ModifierEffects +{ + public EffectBlazePowder() + { + super(new ItemStack(Items.blaze_powder)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemNecklace && exists){ + // Positive for necklace + if (player.isBurning() && rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0) player.extinguish(); + // Negative for necklace + if (player.isInWater()) player.attackEntityFrom(DamageSource.drown, 1f + (JewelryNBT.numberOfModifiers(item) - 1) * 0.1F); + } + // Negative for bracelet + if (jewelry instanceof ItemBracelet && exists && player.isInWater()){ + double slowAmount = 0.6D + (JewelryNBT.numberOfModifiers(item) - 1)*0.05D; + player.motionX *= slowAmount; + player.motionY *= slowAmount; + player.motionZ *= slowAmount; + player.motionY -= 0.02D; + if (player.isCollidedHorizontally) player.motionY = 0.30000001192092896D; + } + // Negative for earrings + if (jewelry instanceof ItemEarrings && exists){ + if (player.getAir() >= 300) player.setAir(player.getAir() / 2); + else player.setAir(player.getAir() - 1); + } + } + + @Override + public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + // Balanced for ring + if (jewelry instanceof ItemRing && exists && !player.isInWater()) target.setFire(2); + return false; + } + + @Override + public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + // int pos = JewelryNBT.doesModifierExist(item, modifier); + // if (jewelry instanceof ItemEarrings && pos != -1 && rand.nextInt(4) == 0) if (source == DamageSource.lava || source == DamageSource.inFire || source == DamageSource.onFire){ + // //Positive for earrings + // int stackSize = JewelryNBT.modifier(item).get(pos).stackSize; + // player.heal((float)(0.05 * stackSize)); + // return true; + // } + // //Positive for bracelet + // if (jewelry instanceof ItemBracelet && pos != -1) if (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava && player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY - 0.7, player.boundingBox.maxZ), Material.lava) && !player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY + 0.9, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY, player.boundingBox.maxZ), Material.lava)) return true; + return false; + } + + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + {} + + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (jewelry instanceof ItemEarrings && exists && rand.nextInt(4) == 0) if (source == DamageSource.lava || source == DamageSource.inFire || source == DamageSource.onFire){ + // Positive for earrings + int stackSize = JewelryNBT.modifierSize(item, modifier); + player.heal((float)(0.05 * stackSize)); + playerInfo.setBoolean("negateDamage", true); + } + // Positive for bracelet + if (jewelry instanceof ItemBracelet && exists) if (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava && player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY - 0.7, player.boundingBox.maxZ), Material.lava) && !player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY + 0.9, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY, player.boundingBox.maxZ), Material.lava)) playerInfo.setBoolean("negateDamage", true); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/b0813d41f3cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/b0813d41f3cf0014170de422db399e8d deleted file mode 100644 index 6f82faf..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/66/b0813d41f3cf0014170de422db399e8d +++ /dev/null @@ -1,64 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null && chunkposition.chunkPosX != (int)player.posX && chunkposition.chunkPosZ != (int)player.posZ){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D*Math.signum(player.posX - (double)chunkposition.chunkPosX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D*Math.signum(player.posZ - (double)chunkposition.chunkPosZ); - System.out.println(chunkposition.chunkPosX + " " + 0.01D*Math.signum(player.posX - (double)chunkposition.chunkPosX)); -// player.addChatMessage(new ChatComponentText("You hear a faint whisper telling you: \"You are getting closer, just " + (int)player.getDistance((double)chunkposition.chunkPosX, (double)chunkposition.chunkPosY, (double)chunkposition.chunkPosZ) + " more blocks to go.\"")); - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); -// if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/67/e0b3c0d50bde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/67/e0b3c0d50bde00141043c3025ec60dfc new file mode 100644 index 0000000..af2621b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/67/e0b3c0d50bde00141043c3025ec60dfc @@ -0,0 +1,185 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + if ((int)f3 != -1){ + int ingotColor = (int)f3; + int red = (ingotColor >> 16) & 0xff; + int green = (ingotColor >> 8) & 0xff; + int blue = ingotColor & 0xff; + System.out.println(red + " " + green + " " + blue); + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/68/00b782eca6ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/68/00b782eca6ce00141801ff0972626827 deleted file mode 100644 index 89d33ca..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/68/00b782eca6ce00141801ff0972626827 +++ /dev/null @@ -1,112 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import java.util.Iterator; -import java.util.List; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class EffectFeather extends ModifierEffects -{ - public EffectFeather() - { - super(new ItemStack(Items.feather)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - // Positive earrings - if (jewelry instanceof ItemEarrings && pos != -1){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); - List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); - if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ - Iterator iterator = list.iterator(); - while (iterator.hasNext()){ - EntityArrow arrow = (EntityArrow)iterator.next(); - if (rand.nextInt(3) == 0 && (arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0)) arrow.setDead(); - } - } - } - // Positive bracelet - if (jewelry instanceof ItemBracelet && pos != -1){ - if (player.motionY < 0) player.motionY *= 0.6D; - player.setAIMoveSpeed(player.getAIMoveSpeed() / 2); - player.fallDistance = 0F; - } - } - - @Override - public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - NBTTagCompound enemyData = target.getEntityData(); - if (jewelry instanceof ItemRing && pos != -1){ - if (target instanceof EntityPlayer){ - NBTTagCompound enemyInfo = PlayerUtils.getModPlayerPersistTag((EntityPlayer)target, "Jewelrycraft"); - enemyInfo.setInteger("reAttacked", enemyInfo.getInteger("reAttacked") + 1); - target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); - if (rand.nextInt(2) == 0){ - enemyInfo.setInteger("stunTime", 50); - enemyInfo.setBoolean("stunned", true); - } - }else if (enemyData.getInteger("reAttacked") == 0){ - enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); - target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); - if (rand.nextInt(2) == 0){ - enemyData.setInteger("stunTime", 50); - enemyData.setBoolean("stunned", true); - } - } - playerInfo.setBoolean("weakDamage", true); - } - if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (jewelry instanceof ItemNecklace && pos != -1 && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); - playerInfo.setBoolean("negateDamage", true); - } - // Negative necklace - if (jewelry instanceof ItemNecklace && pos != -1 && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); - // Negative earrings - if (jewelry instanceof ItemEarrings && pos != -1 && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/68/9054945503de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/68/9054945503de00141043c3025ec60dfc new file mode 100644 index 0000000..3bece77 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/68/9054945503de00141043c3025ec60dfc @@ -0,0 +1,94 @@ +package darkknight.jewelrycraft.effects; + +import java.util.Iterator; +import java.util.List; +import net.minecraft.entity.Entity; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class EffectFeather extends ModifierEffects +{ + public EffectFeather() + { + super(new ItemStack(Items.feather)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive earrings + if (jewelry instanceof ItemEarrings && pos != -1){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); + List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); + if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ + Iterator iterator = list.iterator(); + while (iterator.hasNext()){ + EntityArrow arrow = (EntityArrow)iterator.next(); + if (rand.nextInt(3) == 0 && (arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0)) arrow.setDead(); + } + } + } + // Positive bracelet + if (jewelry instanceof ItemBracelet && pos != -1){ + if (player.motionY < 0) player.motionY *= 0.6D; +// player.capabilities.setPlayerWalkSpeed(0.05F); +// player.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.001D); + if (!player.isPotionActive(Potion.moveSlowdown) || player.getActivePotionEffect(Potion.moveSlowdown).getDuration() < 30) player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 80, 1)); + player.fallDistance = 0F; + } + } + + @Override + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + NBTTagCompound enemyData = target.getEntityData(); + if (jewelry instanceof ItemRing && pos != -1 && enemyData.getInteger("reAttacked") == 0){ + enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); + target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); + if (rand.nextInt(2) == 0){ + enemyData.setInteger("stunTime", 50); + enemyData.setBoolean("stunned", true); + } + playerInfo.setBoolean("weakDamage", true); + } + if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (jewelry instanceof ItemNecklace && pos != -1 && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ + player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); + playerInfo.setBoolean("negateDamage", true); + } + // Negative necklace + if (jewelry instanceof ItemNecklace && pos != -1 && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); + // Negative earrings + if (jewelry instanceof ItemEarrings && pos != -1 && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/68/f05ddeeb99d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/68/f05ddeeb99d000141b65e2fc7f94332d deleted file mode 100644 index 3ef101b..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/68/f05ddeeb99d000141b65e2fc7f94332d +++ /dev/null @@ -1,79 +0,0 @@ -package darkknight.jewelrycraft.container; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabModifiers extends GuiTab -{ - int maxPages; - public GuiTabModifiers(int id) - { - super("Modifiers", id); - } - - /** - * @return - */ - @Override - public ItemStack getIcon() - { - return new ItemStack(Items.blaze_powder); - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - String text = ""; - int xPos = page % 2 == 0 ? 107 : -35; - maxPages = 0; - switch(page) - { - case 1: - text = "Although you can add anything as a modifier, only some objects have an effect. In this tab you can find all of modifiers that have a use and what they do, in the form of a story/riddle/poem. However different jewellery have different effects for the same modifier."; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - maxPages++; - break; - case 2: - text = "The ancient ones talked about a rising fire in your heart. Fret do not, for flames do not burn, but water might sting a turn. Watch your step, do not be cocky, for its protection is a bit sloppy."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), new ItemStack(Items.blaze_powder), text, 40f); - maxPages++; - break; - case 3: - text = "Light and swift as a feather can be good all together. Enemies miss and get confused, this power can be abused. Be aware, against an arrow you can't compare. Fire is your enemy and weakness is the penalty."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), new ItemStack(Items.feather), text, 40f); - maxPages++; - break; - case 4: - text = "Endermen may tolerate you, end portals are near too, you may find ore that is true. But be careful, for the power may make you dizzy, blind you if you're a sissy, worsen your vision if you're unaware and shift positions everywhere."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), new ItemStack(Items.ender_eye), text, 40f); - maxPages++; - break; - } - } - - /** - * @return - */ - @Override - public int getMaxPages() - { - return maxPages; - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/30a1d335b4d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/30a1d335b4d000141b65e2fc7f94332d deleted file mode 100644 index 2e801a7..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/30a1d335b4d000141b65e2fc7f94332d +++ /dev/null @@ -1,195 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 5, y + 25, 145, 150, 35, 30); - name.add(item.getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/4034bfb970cf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/4034bfb970cf00141de78e4a85bb2469 deleted file mode 100644 index 8e653ba..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/4034bfb970cf00141de78e4a85bb2469 +++ /dev/null @@ -1,462 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setFloat("BlueHeart", 0f); - playerInfo.setFloat("BlackHeart", 0f); - playerInfo.setFloat("WhiteHeart", 0f); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/80c87259cadf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/80c87259cadf00141dc6c962aec96210 new file mode 100644 index 0000000..2fc513f --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/80c87259cadf00141dc6c962aec96210 @@ -0,0 +1,84 @@ +package darkknight.jewelrycraft.effects; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class EffectBlazePowder extends ModifierEffects +{ + public EffectBlazePowder() + { + super(new ItemStack(Items.blaze_powder)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemNecklace && exists){ + // Positive for necklace + if (player.isBurning() && rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0) player.extinguish(); + // Negative for necklace + if (player.isInWater()) player.attackEntityFrom(DamageSource.drown, 1f + (JewelryNBT.numberOfModifiers(item) - 1) * 0.1F); + } + // Negative for bracelet + if (jewelry instanceof ItemBracelet && exists && player.isInWater()){ + double slowAmount = 0.6D + (JewelryNBT.numberOfModifiers(item) - 1)*0.05D; + player.motionX *= slowAmount; + player.motionY *= slowAmount; + player.motionZ *= slowAmount; + player.motionY -= (0.02D + (JewelryNBT.numberOfModifiers(item) - 1)*0.005D); + if (player.isCollidedHorizontally) player.motionY = 0.30000001192092896D; + } + // Negative for earrings + if (jewelry instanceof ItemEarrings && exists){ + if (player.getAir() >= 300) player.setAir(player.getAir() / 2); + else player.setAir(player.getAir() - JewelryNBT.numberOfModifiers(item)); + } + } + + @Override + public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + // Balanced for ring + if (jewelry instanceof ItemRing && exists && !player.isInWater() && rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0) target.setFire(2); + return false; + } + + @Override + public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + return false; + } + + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + {} + + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (jewelry instanceof ItemEarrings && exists && rand.nextInt(4) == 0) if (source == DamageSource.lava || source == DamageSource.inFire || source == DamageSource.onFire){ + // Positive for earrings + int stackSize = JewelryNBT.modifierSize(item, modifier); + player.heal((float)(0.05 * stackSize)); + playerInfo.setBoolean("negateDamage", true); + } + // Positive for bracelet + if (jewelry instanceof ItemBracelet && exists) if (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava && player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY - 0.7, player.boundingBox.maxZ), Material.lava) && !player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY + 0.9, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY, player.boundingBox.maxZ), Material.lava)) playerInfo.setBoolean("negateDamage", true); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/f0fb303b0bde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/f0fb303b0bde00141043c3025ec60dfc new file mode 100644 index 0000000..e77a62e --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/69/f0fb303b0bde00141043c3025ec60dfc @@ -0,0 +1,185 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + if ((int)f3 != -1){ + int ingotColor = Math.abs((int)f3); + int red = (ingotColor >> 16) & 0xff; + int green = (ingotColor >> 8) & 0xff; + int blue = ingotColor & 0xff; + System.out.println(red + " " + green + " " + blue); + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6a/00f1323d0cde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6a/00f1323d0cde00141043c3025ec60dfc new file mode 100644 index 0000000..4b30290 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6a/00f1323d0cde00141043c3025ec60dfc @@ -0,0 +1,186 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + if ((int)f3 != -1){ + int ingotColor = (int)f3; + int red = (ingotColor >> 16) & 0xff; + int green = (ingotColor >> 8) & 0xff; + int blue = ingotColor & 0xff; +// System.out.println(red + " " + green + " " + blue); + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glColorMask(false, false, false, false); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6b/b02224c467dd001412dce27813e7be4a b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6b/b02224c467dd001412dce27813e7be4a new file mode 100644 index 0000000..9621bb4 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6b/b02224c467dd001412dce27813e7be4a @@ -0,0 +1,123 @@ +package darkknight.jewelrycraft.events; + +import java.util.Iterator; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderPlayerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.entities.renders.RenderHelper; +import darkknight.jewelrycraft.item.render.BraceletRender; +import darkknight.jewelrycraft.item.render.EarringsRender; +import darkknight.jewelrycraft.item.render.MaskRender; +import darkknight.jewelrycraft.model.ModelBracelet; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class PlayerRenderHandler +{ + MaskRender mask = new MaskRender(); + EarringsRender earrings = new EarringsRender(); + BraceletRender bracelet = new BraceletRender(); + public static String[] infamyCache = new String[]{}; + + @SubscribeEvent + public void renderScreen(RenderPlayerEvent.Specials.Post event) + { + ModelBiped main = event.renderer.modelBipedMain; + Iterator players = event.entityPlayer.worldObj.playerEntities.iterator(); + if (infamyCache != null){ + while (players.hasNext()){ + EntityPlayer player = players.next(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + System.out.println(player + " | " + playerInfo); + if (checkPlayerInfamy(player.getDisplayName()) && event.entityPlayer.getDisplayName().equals(player.getDisplayName())){ + float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick; + float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick; + float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick; + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glRotatef(yawOffset, 0, -1, 0); + GL11.glRotatef(yaw - 90, 0, 1, 0); + GL11.glRotatef(pitch, 0, 0, -1); + GL11.glRotatef(90F, 0, 1F, 0F); + RenderHelper.translateToHeadLevel(player); + GL11.glScalef(1.6f, 1.6f, 1.6f); + GL11.glTranslatef(-0.25F, -0.25F, -0.25F); + mask.doRender(event.entityPlayer, 0F, 0F, 0F, 0F, 0F); + GL11.glPopMatrix(); + } + if (playerInfo.hasKey("ext17") && player == event.entityPlayer){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext17"); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick; + float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick; + float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick; + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glRotatef(yawOffset, 0, -1, 0); + GL11.glRotatef(yaw - 90, 0, 1, 0); + GL11.glRotatef(pitch, 0, 0, -1); + GL11.glRotatef(90F, 0, 1F, 0F); + RenderHelper.translateToHeadLevel(player); + GL11.glScalef(0.07f, 0.07f, 0.07f); + GL11.glTranslatef(0.0F, 3.0F, -2.0F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + earrings.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0F); + GL11.glPopMatrix(); + } + for(int i = 10; i <= 13; i++) + if (playerInfo.hasKey("ext" + i) && player == event.entityPlayer){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glTranslatef((i / 12 == 1) ? -0.275F : 0.475F, 0.2F + ((i / 12 == 1) ? (i - 12) * 0.08F : (i - 10) * 0.08F), 0F); + if (player.isSneaking()) GL11.glTranslatef(0F, 0F, -((i == 10 || i == 12) ? (0.1F) : 0.05F)); + if (i / 12 == 1){ + GL11.glScalef(0.05f, 0.03f, 0.05f); + GL11.glRotatef(main.bipedRightArm.rotateAngleX * (180F / (float)Math.PI), 1F, 0F, 0F); + GL11.glRotatef(main.bipedRightArm.rotateAngleY * (180F / (float)Math.PI), 0F, 1F, 0F); + GL11.glRotatef(main.bipedRightArm.rotateAngleZ * (180F / (float)Math.PI), 0F, 0F, 1F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + bracelet.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0.0F); + }else{ + GL11.glScalef(0.05f, 0.03f, 0.05f); + GL11.glRotatef(main.bipedLeftArm.rotateAngleX * (180F / (float)Math.PI), 1F, 0F, 0F); + GL11.glRotatef(main.bipedLeftArm.rotateAngleY * (180F / (float)Math.PI), 0F, 1F, 0F); + GL11.glRotatef(main.bipedLeftArm.rotateAngleZ * (180F / (float)Math.PI), 0F, 0F, 1F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + bracelet.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0F); + } + GL11.glPopMatrix(); + } + } + } + } + + /** + * @param string + * @return + */ + private boolean checkPlayerInfamy(String string) + { + for(int i = 0; i < infamyCache.length; i++) + if (infamyCache[i].equals(string)) return true; + return false; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6b/c0058039a3ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6b/c0058039a3ce00141801ff0972626827 deleted file mode 100644 index f7a6472..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6b/c0058039a3ce00141801ff0972626827 +++ /dev/null @@ -1,438 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if(entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - System.out.println("Packet sent"); - } - // for(Curse curse: Curse.getCurseList()) - // if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if(((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); -// int grade = 1 + player.worldObj.rand.nextInt(2); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if(entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); -// if (!entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6d/102be67fbbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6d/102be67fbbd000141b65e2fc7f94332d deleted file mode 100644 index cd8afc8..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6d/102be67fbbd000141b65e2fc7f94332d +++ /dev/null @@ -1,114 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 180, -90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 180, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6d/20760f8dbbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6d/20760f8dbbd000141b65e2fc7f94332d deleted file mode 100644 index a19656f..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6d/20760f8dbbd000141b65e2fc7f94332d +++ /dev/null @@ -1,114 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 180, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6e/a046bebfcfdf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6e/a046bebfcfdf00141dc6c962aec96210 new file mode 100644 index 0000000..fe6cb38 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6e/a046bebfcfdf00141dc6c962aec96210 @@ -0,0 +1,102 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); +// if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(100, 5 + (size + 10) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); +// } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 0 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlueHeart")) / 2.0F), 15 + 35*count, resolution.getScaledHeight() - 16, 16777215); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("BlackHeart") > 0){ + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 1 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlackHeart")) / 2.0F), 15 + 35*count, resolution.getScaledHeight() - 16, 16777215); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6e/d012947f9fce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6e/d012947f9fce00141801ff0972626827 deleted file mode 100644 index 0ce19db..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6e/d012947f9fce00141801ff0972626827 +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Mod made by DarkKnight during the Modjam 3 - * It's an awesome mod - * I love me! :D - */ -package darkknight.jewelrycraft; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.logging.Logger; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.gen.structure.MapGenStructureIO; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.oredict.OreDictionary; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.Mod; -import cpw.mods.fml.common.Mod.EventHandler; -import cpw.mods.fml.common.Mod.Instance; -import cpw.mods.fml.common.ModMetadata; -import cpw.mods.fml.common.SidedProxy; -import cpw.mods.fml.common.event.FMLInitializationEvent; -import cpw.mods.fml.common.event.FMLPostInitializationEvent; -import cpw.mods.fml.common.event.FMLPreInitializationEvent; -import cpw.mods.fml.common.event.FMLServerStartingEvent; -import cpw.mods.fml.common.network.NetworkRegistry; -import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper; -import cpw.mods.fml.common.registry.EntityRegistry; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.common.registry.VillagerRegistry; -import cpw.mods.fml.relauncher.Side; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.commands.JewelrycraftCommands; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.container.GuiHandler; -import darkknight.jewelrycraft.curses.CurseList; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.effects.EffectsList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.events.BucketHandler; -import darkknight.jewelrycraft.events.EntityEventHandler; -import darkknight.jewelrycraft.events.KeyBindings; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketKeyPressEvent; -import darkknight.jewelrycraft.network.PacketRequestLiquidData; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendLiquidData; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.recipes.CraftingRecipes; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.worldGen.Generation; -import darkknight.jewelrycraft.worldGen.village.ComponentJewelry; -import darkknight.jewelrycraft.worldGen.village.JCTrades; -import darkknight.jewelrycraft.worldGen.village.VillageJewelryHandler; - -@Mod (modid = Reference.MODID, name = Reference.MODNAME, version = Reference.VERSION) -public class JewelrycraftMod -{ - @Instance (Reference.MODID) - public static JewelrycraftMod instance; - @SidedProxy (clientSide = "darkknight.jewelrycraft.client.ClientProxy", serverSide = "darkknight.jewelrycraft.CommonProxy") - public static CommonProxy proxy; - public static final Logger logger = Logger.getLogger("Jewelrycraft"); - public static File dir; -// public static CreativeTabs jewelrycraft = new CreativeTabs("JewelryCraft"){ -// @Override -// public Item getTabIconItem() -// { -// return Item.getItemFromBlock(BlockList.jewelCraftingTable); -// } -// }; - public static CreativeTabs liquids = new CreativeTabLiquids("Liquids"); - public static NBTTagCompound saveData = new NBTTagCompound(); - public static NBTTagCompound clientData = new NBTTagCompound(); - public static File liquidsConf; - public static SimpleNetworkWrapper netWrapper; - public static boolean fancyRender; - public static final int MAX_CURSES = 10; - - /** - * Pre initialization of mod stuff. - * - * @param e FMLPreInitializationEvent - * @throws IOException Signals that an I/O exception has occurred. - */ - @EventHandler - public void preInit(FMLPreInitializationEvent e) throws IOException - { - ConfigHandler.preInit(e); - BlockList.preInit(e); - ItemList.preInit(e); - CraftingRecipes.preInit(e); - CurseList.preInit(e); - OreDictionary.registerOre("ingotShadow", new ItemStack(ItemList.shadowIngot)); - OreDictionary.registerOre("oreShadow", new ItemStack(BlockList.shadowOre)); - VillagerRegistry.instance().registerVillagerId(3000); - VillagerRegistry.instance().registerVillageTradeHandler(3000, new JCTrades()); - VillagerRegistry.instance().registerVillageCreationHandler(new VillageJewelryHandler()); - try{ - MapGenStructureIO.func_143031_a(ComponentJewelry.class, "Jewelrycraft:Jewelry"); - } - catch(Throwable e2){ - logger.severe("Error registering Jewelrycraft Structures with Vanilla Minecraft: this is expected in versions earlier than 1.7.10"); - } - MinecraftForge.EVENT_BUS.register(new EntityEventHandler()); - MinecraftForge.EVENT_BUS.register(BucketHandler.INSTANCE); - BucketHandler.INSTANCE.buckets.put(BlockList.moltenMetal, ItemList.bucket); - - ModMetadata metadata = e.getModMetadata(); - List authorList = new ArrayList(); - - authorList.add("DarkKnight (or sor1n)"); - authorList.add("bspkrs"); - authorList.add("domi1819"); - - dir = e.getModConfigurationDirectory(); - proxy.registerRenderers(); - netWrapper = NetworkRegistry.INSTANCE.newSimpleChannel(Reference.MODID); - netWrapper.registerMessage(PacketRequestLiquidData.class, PacketRequestLiquidData.class, 0, Side.SERVER); - netWrapper.registerMessage(PacketSendLiquidData.class, PacketSendLiquidData.class, 1, Side.CLIENT); - netWrapper.registerMessage(PacketClearColorCache.class, PacketClearColorCache.class, 2, Side.CLIENT); - netWrapper.registerMessage(PacketKeyPressEvent.class, PacketKeyPressEvent.class, 3, Side.SERVER); - netWrapper.registerMessage(PacketRequestPlayerInfo.class, PacketRequestPlayerInfo.class, 4, Side.SERVER); - netWrapper.registerMessage(PacketSendPlayerInfo.class, PacketSendPlayerInfo.class, 5, Side.CLIENT); - netWrapper.registerMessage(PacketSendCurseStats.class, PacketSendCurseStats.class, 6, Side.CLIENT); - metadata.autogenerated = false; - metadata.authorList = authorList; - metadata.url = "https://github.com/sor1n/Jewelrycraft"; - - createEntity(EntityHeart.class, "Heart", 0x000000, 0xFF0000, true); - createEntity(EntityHalfHeart.class, "Half-Heart", 0x000000, 0xFF0000, true); - -// EntityRegistry.addSpawn(EntityMob.class, 5, 2, 3, EnumCreatureType.creature, BiomeGenBase.forest, BiomeGenBase.forestHills, BiomeGenBase.birchForest, BiomeGenBase.birchForestHills, BiomeGenBase.plains, BiomeGenBase.beach, BiomeGenBase.coldBeach, BiomeGenBase.frozenRiver); - } - - public void createEntity(Class entity, String entityName, int solidColor, int spotColor, boolean hasSpawnEgg) - { - int randomID = EntityRegistry.findGlobalUniqueEntityId(); - if(hasSpawnEgg) EntityRegistry.registerGlobalEntityID(entity, entityName, randomID, solidColor, spotColor); - else EntityRegistry.registerGlobalEntityID(entity, entityName, randomID); - EntityRegistry.registerModEntity(entity, entityName, randomID, this, 40, 3, true); - } - - /** - * Initializes the world generation and key bindings. - * - * @param e FMLInitializationEvent - */ - @EventHandler - public void init(FMLInitializationEvent e) - { - GameRegistry.registerWorldGenerator(new Generation(), 0); - if (FMLCommonHandler.instance().getSide() == Side.CLIENT) FMLCommonHandler.instance().bus().register(new KeyBindings()); - new GuiHandler(); - } - - /** - * Post initialization of metals, modifiers and others. - * - * @param e FMLPostInitializationEvent - */ - @EventHandler - public void postInit(FMLPostInitializationEvent e) - { - JewelrycraftUtil.addMetals(); - JewelrycraftUtil.addStuff(); - JewelrycraftUtil.jamcrafters(); - EffectsList.postInit(e); - DamageSourceList.postInit(e); - } - - @Mod.EventHandler - public void serverLoad(FMLServerStartingEvent event) - { - event.registerServerCommand(new JewelrycraftCommands()); - } - -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6e/f0a4797968dd001412dce27813e7be4a b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6e/f0a4797968dd001412dce27813e7be4a new file mode 100644 index 0000000..02de1d7 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6e/f0a4797968dd001412dce27813e7be4a @@ -0,0 +1,123 @@ +package darkknight.jewelrycraft.events; + +import java.util.Iterator; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderPlayerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.entities.renders.RenderHelper; +import darkknight.jewelrycraft.item.render.BraceletRender; +import darkknight.jewelrycraft.item.render.EarringsRender; +import darkknight.jewelrycraft.item.render.MaskRender; +import darkknight.jewelrycraft.model.ModelBracelet; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class PlayerRenderHandler +{ + MaskRender mask = new MaskRender(); + EarringsRender earrings = new EarringsRender(); + BraceletRender bracelet = new BraceletRender(); + public static String[] infamyCache = new String[]{}; + + @SubscribeEvent + public void renderScreen(RenderPlayerEvent.Specials.Post event) + { + ModelBiped main = event.renderer.modelBipedMain; + Iterator players = event.entityPlayer.worldObj.playerEntities.iterator(); + if (infamyCache != null){ + while (players.hasNext()){ + EntityPlayer player = players.next(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); +// System.out.println(event.entityPlayer + " | " + player + " | " + playerInfo); + if (checkPlayerInfamy(player.getDisplayName()) && event.entityPlayer.getDisplayName().equals(player.getDisplayName())){ + float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick; + float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick; + float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick; + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glRotatef(yawOffset, 0, -1, 0); + GL11.glRotatef(yaw - 90, 0, 1, 0); + GL11.glRotatef(pitch, 0, 0, -1); + GL11.glRotatef(90F, 0, 1F, 0F); + RenderHelper.translateToHeadLevel(player); + GL11.glScalef(1.6f, 1.6f, 1.6f); + GL11.glTranslatef(-0.25F, -0.25F, -0.25F); + mask.doRender(event.entityPlayer, 0F, 0F, 0F, 0F, 0F); + GL11.glPopMatrix(); + } + if (playerInfo.hasKey("ext17") && player == event.entityPlayer){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext17"); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick; + float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick; + float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick; + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glRotatef(yawOffset, 0, -1, 0); + GL11.glRotatef(yaw - 90, 0, 1, 0); + GL11.glRotatef(pitch, 0, 0, -1); + GL11.glRotatef(90F, 0, 1F, 0F); + RenderHelper.translateToHeadLevel(player); + GL11.glScalef(0.07f, 0.07f, 0.07f); + GL11.glTranslatef(0.0F, 3.0F, -2.0F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + earrings.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0F); + GL11.glPopMatrix(); + } + for(int i = 10; i <= 13; i++) + if (playerInfo.hasKey("ext" + i) && player == event.entityPlayer){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glTranslatef((i / 12 == 1) ? -0.275F : 0.475F, 0.2F + ((i / 12 == 1) ? (i - 12) * 0.08F : (i - 10) * 0.08F), 0F); + if (player.isSneaking()) GL11.glTranslatef(0F, 0F, -((i == 10 || i == 12) ? (0.1F) : 0.05F)); + if (i / 12 == 1){ + GL11.glScalef(0.05f, 0.03f, 0.05f); + GL11.glRotatef(main.bipedRightArm.rotateAngleX * (180F / (float)Math.PI), 1F, 0F, 0F); + GL11.glRotatef(main.bipedRightArm.rotateAngleY * (180F / (float)Math.PI), 0F, 1F, 0F); + GL11.glRotatef(main.bipedRightArm.rotateAngleZ * (180F / (float)Math.PI), 0F, 0F, 1F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + bracelet.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0.0F); + }else{ + GL11.glScalef(0.05f, 0.03f, 0.05f); + GL11.glRotatef(main.bipedLeftArm.rotateAngleX * (180F / (float)Math.PI), 1F, 0F, 0F); + GL11.glRotatef(main.bipedLeftArm.rotateAngleY * (180F / (float)Math.PI), 0F, 1F, 0F); + GL11.glRotatef(main.bipedLeftArm.rotateAngleZ * (180F / (float)Math.PI), 0F, 0F, 1F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + bracelet.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0F); + } + GL11.glPopMatrix(); + } + } + } + } + + /** + * @param string + * @return + */ + private boolean checkPlayerInfamy(String string) + { + for(int i = 0; i < infamyCache.length; i++) + if (infamyCache[i].equals(string)) return true; + return false; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6f/b08cd803bcd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6f/b08cd803bcd000141b65e2fc7f94332d deleted file mode 100644 index 9db58c8..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6f/b08cd803bcd000141b65e2fc7f94332d +++ /dev/null @@ -1,236 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.5F, 0F); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6f/f0b063e3a3ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6f/f0b063e3a3ce00141801ff0972626827 deleted file mode 100644 index da7c0f8..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/6f/f0b063e3a3ce00141801ff0972626827 +++ /dev/null @@ -1,435 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if(entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - // for(Curse curse: Curse.getCurseList()) - // if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if(((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); -// int grade = 1 + player.worldObj.rand.nextInt(2); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if(entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); -// if (!entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/105eef10f4cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/105eef10f4cf0014170de422db399e8d deleted file mode 100644 index d3a9455..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/105eef10f4cf0014170de422db399e8d +++ /dev/null @@ -1,62 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.1D*Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.1D*Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); -// if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/80707ccf26de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/80707ccf26de00141043c3025ec60dfc new file mode 100644 index 0000000..7bf9867 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/80707ccf26de00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 20, 7 + (size + 6) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/90e15befbdd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/90e15befbdd000141b65e2fc7f94332d deleted file mode 100644 index a659f49..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/90e15befbdd000141b65e2fc7f94332d +++ /dev/null @@ -1,237 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.block.BlockShadowEye; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - if(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockShadowEye) GL11.glTranslatef(0F, 0F, 0.2F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/d09c58ed23cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/d09c58ed23cf00141c41f52413db5e31 deleted file mode 100644 index 1cfd815..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7/d09c58ed23cf00141c41f52413db5e31 +++ /dev/null @@ -1,99 +0,0 @@ -package darkknight.jewelrycraft.events; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.GuiChat; -import net.minecraft.client.gui.ScaledResolution; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.MathHelper; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.event.RenderGameOverlayEvent; -import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; -import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import darkknight.jewelrycraft.curses.Curse; - -public class ScreenHandler extends Gui -{ - private Minecraft mc; - public static NBTTagCompound tagCache = null; - public static int cooldown; - static ResourceLocation texture; - static ResourceLocation hearts = new ResourceLocation("jewelrycraft", "textures/gui/hearts.png"); - - public ScreenHandler(Minecraft mc, ResourceLocation tex) - { - super(); - this.mc = mc; - texture = tex; - } - - @SubscribeEvent - public void renderScreen(RenderGameOverlayEvent event) - { - if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; - Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); - if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ - int count = 0; - int size = 32; - ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); - if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ - mc.renderEngine.bindTexture(texture); - for(Curse curse: Curse.getCurseList()){ - if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ - Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); - Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); - count++; - } - } - count = 0; - for(Curse curse: Curse.getCurseList()) - if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ - int tag = curse.getID(); - GL11.glPushMatrix(); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glScalef(0.5f, 0.5f, 0.0f); - drawTexturedModalRect(4, 4 + (size + 12) * count, tag % size * size, tag / size * size, size, size); - GL11.glPopMatrix(); - count++; - } - count = 0; - size = 16; - for(Curse curse: Curse.getCurseList()) - if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ - int tag = curse.getID(); - mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 20, 7 + (size + 6) * count, 16777215); - if (tagCache.getInteger(curse.getName()) == 2){ - mc.renderEngine.bindTexture(hearts); - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - GL11.glColor4f(1f, 1f, 1f, 0.5f); - drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); - GL11.glPopMatrix(); - } - count++; - } - } - GL11.glColor4f(1f, 1f, 1f, 1.0f); - mc.renderEngine.bindTexture(hearts); - count = 0; - if (tagCache.getFloat("BlueHeart") > 0){ - for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) - drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); - if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); - } - count++; - if (tagCache.getFloat("BlackHeart") > 0){ - for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) - drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); - if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); - } - count++; - if (tagCache.getFloat("WhiteHeart") > 0) - drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); - } - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/408fefd316cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/408fefd316cf00141c41f52413db5e31 deleted file mode 100644 index 44cb917..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/408fefd316cf00141c41f52413db5e31 +++ /dev/null @@ -1,116 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import java.util.ArrayList; -import java.util.Random; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; - -public class Curse -{ - protected int id, texturepack; - protected String name, description; - protected Random rand = new Random(); - private static ArrayList curses = new ArrayList(); - public static ArrayList availableCurses = new ArrayList(); - - /** - * @param id the ID of the curse - * @param name the name of the curse - * @param texturepack the ID of the pack the texture is located in - */ - protected Curse(int id, String name, int texturepack) - { - this.id = id; - this.name = name; - this.texturepack = texturepack; - curses.add(this); - availableCurses.add(this); - } - - /** - * @return the name of the curse - */ - public String getName() - { - return name; - } - - /** - * @return the description of the curse - */ - public String getDescription() - { - return description; - } - - public Curse setDescription(String desc) - { - description = desc; - return this; - } - - /** - * @return the curse ID - */ - public int getID() - { - return id; - } - - /** - * @return the texture pack ID - */ - public int getTexturePack() - { - return texturepack; - } - - /** - * @param world - * @param player - */ - public void action(World world, EntityPlayer player) - {} - - /** - * @param world - * @param player - */ - public void deathAction(World world, EntityPlayer player) - {} - - /** - * @param world - * @param player - */ - public void respawnAction(World world, EntityPlayer player) - {} - - /** - * @param world - * @param player - */ - public void attackedAction(World world, EntityPlayer player) - {} - - /** - * @param world - * @param player - */ - public void attackedByPlayerAction(World world, EntityPlayer player, Entity target) - {} - - public boolean itemToss() - { - return false; - } - - /** - * @return - */ - public static ArrayList getCurseList() - { - return curses; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/5022fbd5b9d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/5022fbd5b9d000141b65e2fc7f94332d deleted file mode 100644 index 55b8a50..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/5022fbd5b9d000141b65e2fc7f94332d +++ /dev/null @@ -1,232 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ - GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/e09f38179cd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/e09f38179cd000141b65e2fc7f94332d deleted file mode 100644 index 08182af..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/70/e09f38179cd000141b65e2fc7f94332d +++ /dev/null @@ -1,48 +0,0 @@ -package darkknight.jewelrycraft.container; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import darkknight.jewelrycraft.client.GuiGuide; -import darkknight.jewelrycraft.item.ItemList; - -public class GuiTabIntroduction extends GuiTab -{ - public GuiTabIntroduction(int id) - { - super("Introduction", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(ItemList.ring); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - String text = ""; - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - text = "Welcome to Jewelrycraft 2! This mod is about making jewelry that you can modify to your own will. To find out how to create a jewelry, please consult the book and look at the Smelter block. To add modifiers to it you need to perform a ritual. To see how to do that, look at the Cursed Eye"; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - case 2: - text = "block in the book."; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/71/60317a00bad000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/71/60317a00bad000141b65e2fc7f94332d deleted file mode 100644 index 39acace..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/71/60317a00bad000141b65e2fc7f94332d +++ /dev/null @@ -1,232 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(180.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/72/00e8ece9b6d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/72/00e8ece9b6d000141b65e2fc7f94332d deleted file mode 100644 index 2792304..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/72/00e8ece9b6d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 147, 150, 30, 30); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() - 20, gui.getTop() + 15); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/72/a00659a981d000141a1fb02abca5ff55 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/72/a00659a981d000141a1fb02abca5ff55 deleted file mode 100644 index 7a4e63d..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/72/a00659a981d000141a1fb02abca5ff55 +++ /dev/null @@ -1,66 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && rand.nextInt(500) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30)*(rand.nextBoolean()?-1:1), player.posY, player.posZ + rand.nextInt(30)*(rand.nextBoolean()?-1:1)); - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/72/b01f1983b4d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/72/b01f1983b4d000141b65e2fc7f94332d deleted file mode 100644 index 259e36c..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/72/b01f1983b4d000141b65e2fc7f94332d +++ /dev/null @@ -1,195 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 145, 150, 35, 30); - name.add(item.getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/74/10c2166623cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/74/10c2166623cf00141c41f52413db5e31 deleted file mode 100644 index 3187d17..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/74/10c2166623cf00141c41f52413db5e31 +++ /dev/null @@ -1,461 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; -// System.out.println(event.isCancelable()); - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - System.out.println(event.isCancelable()); - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/74/20dad64f2ede00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/74/20dad64f2ede00141043c3025ec60dfc new file mode 100644 index 0000000..ade208a --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/74/20dad64f2ede00141043c3025ec60dfc @@ -0,0 +1,109 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ +// for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 0 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlackHeart")) / 2.0F), 15 + 35*count, resolution.getScaledHeight() - 10, 16777215); +// if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("BlackHeart") > 0){ +// for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 1 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlackHeart")) / 2.0F), 15 + 35*count, resolution.getScaledHeight() - 10, 16777215); +// if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/74/60d7e68b6edd001412dce27813e7be4a b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/74/60d7e68b6edd001412dce27813e7be4a new file mode 100644 index 0000000..62b7001 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/74/60d7e68b6edd001412dce27813e7be4a @@ -0,0 +1,46 @@ +/** + * + */ +package darkknight.jewelrycraft.entities; + +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.world.World; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +/** + * @author Sorin + */ +public class EntityHalfHeart extends EntityHeart +{ + public EntityHalfHeart(World world) + { + super(world); + } + + @Override + public void onCollideWithPlayer(EntityPlayer player) + { + if (!player.worldObj.isRemote){ + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (getType().equals("Red") && player.getHealth() < player.getMaxHealth()){ + player.heal(1f); + this.setDead(); + }else if (getType().equals("White") && playerInfo.getFloat("WhiteHeart") > 0.1F){ + playerInfo.setFloat(getType() + "Heart", 0F); + player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() + 2f); + this.setDead(); + }else if (!getType().equals("Red") && playerInfo.getFloat(getType() + "Heart") < 20f){ + playerInfo.setFloat(getType() + "Heart", playerInfo.getFloat(getType() + "Heart") + 1.0F <= 20f ? playerInfo.getFloat(getType() + "Heart") + 1.0F : 20f); + this.setDead(); + } + } + else JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo(player)); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/74/80e1a2afcbdf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/74/80e1a2afcbdf00141dc6c962aec96210 new file mode 100644 index 0000000..8e3b83e --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/74/80e1a2afcbdf00141dc6c962aec96210 @@ -0,0 +1,97 @@ +package darkknight.jewelrycraft.effects; + +import java.util.Iterator; +import java.util.List; +import net.minecraft.entity.Entity; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class EffectFeather extends ModifierEffects +{ + public EffectFeather() + { + super(new ItemStack(Items.feather)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive earrings + if (jewelry instanceof ItemEarrings && exists){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); + List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); + if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ + Iterator iterator = list.iterator(); + while (iterator.hasNext()){ + EntityArrow arrow = (EntityArrow)iterator.next(); + if ((arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0) && rand.nextInt(2 + JewelryNBT.numberOfModifiers(item)) == 0) arrow.setDead(); + } + } + } + + if (jewelry instanceof ItemBracelet && exists){ + // Positive bracelet + if (player.motionY < 0) player.motionY *= (0.6D + (JewelryNBT.numberOfModifiers(item) - 1)*0.03D); + // Negative bracelet + if (!player.isPotionActive(Potion.moveSlowdown) || player.getActivePotionEffect(Potion.moveSlowdown).getDuration() < 30) player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 80, 1)); + player.fallDistance = 0F; + } + } + + @Override + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + NBTTagCompound enemyData = target.getEntityData(); + if (jewelry instanceof ItemRing && exists && enemyData.getInteger("reAttacked") == 0){ + // Negative ring + enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); + target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); + // Positive ring + if (rand.nextInt(2) == 0){ + enemyData.setInteger("stunTime", 50); + enemyData.setBoolean("stunned", true); + } + playerInfo.setBoolean("weakDamage", true); + } + if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ + player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); + playerInfo.setBoolean("negateDamage", true); + } + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); + // Negative earrings + if (jewelry instanceof ItemEarrings && exists && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/75/20c0a81e70cf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/75/20c0a81e70cf00141de78e4a85bb2469 deleted file mode 100644 index 4063764..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/75/20c0a81e70cf00141de78e4a85bb2469 +++ /dev/null @@ -1,43 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player, Entity target) - { - if (!world.isRemote && !(target instanceof EntityMob) && target instanceof EntityLiving && !(target instanceof EntityHeart) && !(target instanceof EntityHalfHeart) && target.canAttackWithItem()){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (rand.nextInt(2) == 0){ - if(playerInfo.getFloat("BlackHeart") < 20F) playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 1.0F); - if(player.getMaxHealth() >= 3F){ - player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() - 1.0F); - player.setHealth(player.getHealth() - 1.0F); - } - } - JewelrycraftUtil.addCursePoints(player, 10); - } - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/75/d03da29126de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/75/d03da29126de00141043c3025ec60dfc new file mode 100644 index 0000000..6594b4f --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/75/d03da29126de00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.5f, 0.5f, 0.0f); + drawTexturedModalRect(20, 10 + (size + 12) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 20, 7 + (size + 6) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/76/b0ea8d2c7ccf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/76/b0ea8d2c7ccf00141de78e4a85bb2469 deleted file mode 100644 index 0732b36..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/76/b0ea8d2c7ccf00141de78e4a85bb2469 +++ /dev/null @@ -1,78 +0,0 @@ -package darkknight.jewelrycraft.container; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.client.GuiGuide; -import darkknight.jewelrycraft.util.JewelrycraftUtil; - -public class GuiTabGemsAndIngots extends GuiTab -{ - - /** - * @param id - */ - public GuiTabGemsAndIngots(int id) - { - super("Gems and ingots", id); - } - - /** - * @return - */ - @Override - public ItemStack getIcon() - { - return new ItemStack(Items.emerald); - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - for(int i = (page - 1) * 9; i < page * 9; i++) - if (i < JewelrycraftUtil.objects.size()){ - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Gems", gui.getLeft() + xPos + 40, gui.getTop(), 0); - gui.renderItem(JewelrycraftUtil.objects.get(i), gui.getLeft() + xPos + 10, gui.getTop() + 22 + 16 * (i - 9 * (page - 1)), 30f); - gui.getFont().drawString(String.format("%-1.18s", JewelrycraftUtil.objects.get(i).getDisplayName()), gui.getLeft() + xPos + 20, gui.getTop() + 12 + 16 * (i - 9 * (page - 1)), 0); - GL11.glDisable(GL11.GL_LIGHTING); - } - page -= JewelrycraftUtil.gem.size() / 9 + 1; - for(int i = (page - 1) * 9; i < page * 9; i++) - if (i < JewelrycraftUtil.metal.size() && page > 0){ - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Ingots", gui.getLeft() + xPos + 40, gui.getTop(), 0); - gui.renderItem(JewelrycraftUtil.metal.get(i).copy(), gui.getLeft() + xPos + 10, gui.getTop() + 22 + 16 * (i - 9 * (page - 1)), 30f); - gui.getFont().drawString(String.format("%-1.18s", JewelrycraftUtil.metal.get(i).copy().getDisplayName()), gui.getLeft() + xPos + 20, gui.getTop() + 12 + 16 * (i - 9 * (page - 1)), 0); - GL11.glDisable(GL11.GL_LIGHTING); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @return - */ - @Override - public int getMaxPages() - { - return JewelrycraftUtil.objects.size() / 9 + JewelrycraftUtil.metal.size() / 9 + 2; - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/78/9098c35323cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/78/9098c35323cf00141c41f52413db5e31 deleted file mode 100644 index 1b64933..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/78/9098c35323cf00141c41f52413db5e31 +++ /dev/null @@ -1,461 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - System.out.println(event.isCancelable()); - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - System.out.println(event.isCancelable()); - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/78/f0abd173d0df00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/78/f0abd173d0df00141dc6c962aec96210 new file mode 100644 index 0000000..4c36593 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/78/f0abd173d0df00141dc6c962aec96210 @@ -0,0 +1,87 @@ +package darkknight.jewelrycraft.effects; + +import net.minecraft.block.BlockOre; +import net.minecraft.client.Minecraft; +import net.minecraft.client.settings.GameSettings.Options; +import net.minecraft.entity.monster.EntityEnderman; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.biome.BiomeGenBase; +import cpw.mods.fml.relauncher.ReflectionHelper; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; + +public class EffectEnderEye extends ModifierEffects +{ + private boolean originalVD = false; + private float originalViewDistance; + + public EffectEnderEye() + { + super(new ItemStack(Items.ender_eye)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemEarrings && exists && !player.worldObj.isRemote){ + for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ + EntityEnderman enderman = (EntityEnderman)e; + ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); + Vec3 vec3 = player.getLook(1.0F).normalize(); + Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); + double d0 = vec31.lengthVector(); + vec31 = vec31.normalize(); + double d1 = vec3.dotProduct(vec31); + if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ + // Positive earrings + if (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0) enderman.setTarget(null); + // Negative earrings + if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2 + JewelryNBT.numberOfModifiers(item) / 4)); + } + } + } + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote){ + ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); + if (chunkposition != null){ + Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX) * (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0 ? 1 : -1); + Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ) * (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0 ? 1 : -1); + } + } + // Positive bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 150 - JewelryNBT.numberOfModifiers(item) * 10, 2 - JewelryNBT.numberOfModifiers(item) / 5)); + // Negative bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && rand.nextInt(520 - JewelryNBT.numberOfModifiers(item) * 20) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1), player.posY, player.posZ + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1)); + // Negative ring + if (jewelry instanceof ItemRing && exists) Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 2.2F - JewelryNBT.numberOfModifiers(item) * 0.1F); + // Positive ring + if (jewelry instanceof ItemRing && exists && rand.nextInt(180 + JewelryNBT.numberOfModifiers(item)*20) == 12){ + for(int i = (int)player.posX - 2; i <= (int)player.posX + 2; i++) + for(int j = (int)player.posY - 2; j <= (int)player.posY + 2; j++) + for(int k = (int)player.posZ - 2; k <= (int)player.posZ + 2; k++) + if (player.worldObj.getBlock(i, j, k) instanceof BlockOre) player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "You sense some " + player.worldObj.getBlock(i, j, k).getLocalizedName() + " around you.")); + } + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100 + JewelryNBT.numberOfModifiers(item)*30, 1)); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/79/f099510ebed000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/79/f099510ebed000141b65e2fc7f94332d deleted file mode 100644 index d2e1a90..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/79/f099510ebed000141b65e2fc7f94332d +++ /dev/null @@ -1,125 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.shadowEye,1 ,3), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - - case 5: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 5", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_slab, 1, 5), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_slab, 1, 5), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_slab, 1, 5), 0, 0, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 5; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/9000a4bccadf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/9000a4bccadf00141dc6c962aec96210 new file mode 100644 index 0000000..9f64cc8 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/9000a4bccadf00141dc6c962aec96210 @@ -0,0 +1,94 @@ +package darkknight.jewelrycraft.effects; + +import java.util.Iterator; +import java.util.List; +import net.minecraft.entity.Entity; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class EffectFeather extends ModifierEffects +{ + public EffectFeather() + { + super(new ItemStack(Items.feather)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive earrings + if (jewelry instanceof ItemEarrings && exists){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); + List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); + if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ + Iterator iterator = list.iterator(); + while (iterator.hasNext()){ + EntityArrow arrow = (EntityArrow)iterator.next(); + if (rand.nextInt(3) == 0 && (arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0)) arrow.setDead(); + } + } + } + // Positive bracelet + if (jewelry instanceof ItemBracelet && exists){ + if (player.motionY < 0) player.motionY *= 0.6D; + if (!player.isPotionActive(Potion.moveSlowdown) || player.getActivePotionEffect(Potion.moveSlowdown).getDuration() < 30) player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 80, 1)); + player.fallDistance = 0F; + } + } + + @Override + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + NBTTagCompound enemyData = target.getEntityData(); + // Positive ring + if (jewelry instanceof ItemRing && exists && enemyData.getInteger("reAttacked") == 0){ + enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); + target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); + if (rand.nextInt(2) == 0){ + enemyData.setInteger("stunTime", 50); + enemyData.setBoolean("stunned", true); + } + playerInfo.setBoolean("weakDamage", true); + } + if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ + player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); + playerInfo.setBoolean("negateDamage", true); + } + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); + // Negative earrings + if (jewelry instanceof ItemEarrings && exists && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/9031349f2dde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/9031349f2dde00141043c3025ec60dfc new file mode 100644 index 0000000..0b7afda --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/9031349f2dde00141043c3025ec60dfc @@ -0,0 +1,106 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() - 50 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ +// for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(5, resolution.getScaledHeight() - 50 + 16 * count, 1 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + tagCache.getFloat("BlackHeart") / 2.0F, 15, resolution.getScaledHeight() - 45 + 16 * count, 16777215); +// if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() - 50 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/f0dc16e6bad000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/f0dc16e6bad000141b65e2fc7f94332d deleted file mode 100644 index 68b527b..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7a/f0dc16e6bad000141b65e2fc7f94332d +++ /dev/null @@ -1,112 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7b/d08754d5a5ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7b/d08754d5a5ce00141801ff0972626827 deleted file mode 100644 index 9d8068e..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7b/d08754d5a5ce00141801ff0972626827 +++ /dev/null @@ -1,448 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if(entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - playerInfo.setBoolean("stunned", true); - playerInfo.setInteger("stunTime", 50); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if(playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.75F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - // for(Curse curse: Curse.getCurseList()) - // if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if(((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); -// int grade = 1 + player.worldObj.rand.nextInt(2); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if(entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); -// if (!entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7c/b0bc2130cbdf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7c/b0bc2130cbdf00141dc6c962aec96210 new file mode 100644 index 0000000..21bb8dc --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7c/b0bc2130cbdf00141dc6c962aec96210 @@ -0,0 +1,97 @@ +package darkknight.jewelrycraft.effects; + +import java.util.Iterator; +import java.util.List; +import net.minecraft.entity.Entity; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class EffectFeather extends ModifierEffects +{ + public EffectFeather() + { + super(new ItemStack(Items.feather)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive earrings + if (jewelry instanceof ItemEarrings && exists){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); + List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); + if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ + Iterator iterator = list.iterator(); + while (iterator.hasNext()){ + EntityArrow arrow = (EntityArrow)iterator.next(); + if (rand.nextInt(3) == 0 && (arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0)) arrow.setDead(); + } + } + } + + if (jewelry instanceof ItemBracelet && exists){ + // Positive bracelet + if (player.motionY < 0) player.motionY *= 0.6D; + // Negative bracelet + if (!player.isPotionActive(Potion.moveSlowdown) || player.getActivePotionEffect(Potion.moveSlowdown).getDuration() < 30) player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 80, 1)); + player.fallDistance = 0F; + } + } + + @Override + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + NBTTagCompound enemyData = target.getEntityData(); + if (jewelry instanceof ItemRing && exists && enemyData.getInteger("reAttacked") == 0){ + // Negative ring + enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); + target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); + // Positive ring + if (rand.nextInt(2) == 0){ + enemyData.setInteger("stunTime", 50); + enemyData.setBoolean("stunned", true); + } + playerInfo.setBoolean("weakDamage", true); + } + if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ + player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); + playerInfo.setBoolean("negateDamage", true); + } + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); + // Negative earrings + if (jewelry instanceof ItemEarrings && exists && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7c/f0f277a80ade00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7c/f0f277a80ade00141043c3025ec60dfc new file mode 100644 index 0000000..7a2ed10 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7c/f0f277a80ade00141043c3025ec60dfc @@ -0,0 +1,186 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + System.out.println((int)f3); + if ((int)f3 != -1){ + int ingotColor = Math.abs((int)f3); + int alpha = (ingotColor >> 24) & 0xff; + int red = (ingotColor >> 16) & 0xff; + int green = (ingotColor >> 8) & 0xff; + int blue = ingotColor & 0xff; + GL11.glColor4f((float)alpha / 255, (float)red / 255, (float)green / 255, (float)blue / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7d/408bce2c7ecf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7d/408bce2c7ecf00141de78e4a85bb2469 deleted file mode 100644 index 8a73fc3..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7d/408bce2c7ecf00141de78e4a85bb2469 +++ /dev/null @@ -1,13 +0,0 @@ -package darkknight.jewelrycraft; - -/** - * The Class CommonProxy. - */ -public class CommonProxy -{ - /** - * Register renderers. - */ -// public void registerRenderers() - {} -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7d/80a2ccf2b6d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7d/80a2ccf2b6d000141b65e2fc7f94332d deleted file mode 100644 index 53cd112..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7d/80a2ccf2b6d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 150, 30, 30); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() - 20, gui.getTop() + 15); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7d/c00b3a4e14cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7d/c00b3a4e14cf00141c41f52413db5e31 deleted file mode 100644 index 0616e02..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7d/c00b3a4e14cf00141c41f52413db5e31 +++ /dev/null @@ -1,113 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import java.util.ArrayList; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; - -public class Curse -{ - protected int id, texturepack; - protected String name, description; - private static ArrayList curses = new ArrayList(); - public static ArrayList availableCurses = new ArrayList(); - - /** - * @param id the ID of the curse - * @param name the name of the curse - * @param texturepack the ID of the pack the texture is located in - */ - protected Curse(int id, String name, int texturepack) - { - this.id = id; - this.name = name; - this.texturepack = texturepack; - curses.add(this); - availableCurses.add(this); - } - - /** - * @return the name of the curse - */ - public String getName() - { - return name; - } - - /** - * @return the description of the curse - */ - public String getDescription() - { - return description; - } - - public Curse setDescription(String desc) - { - description = desc; - return this; - } - - /** - * @return the curse ID - */ - public int getID() - { - return id; - } - - /** - * @return the texture pack ID - */ - public int getTexturePack() - { - return texturepack; - } - - /** - * @param world - * @param player - */ - public void action(World world, EntityPlayer player) - {} - - /** - * @param world - * @param player - */ - public void deathAction(World world, EntityPlayer player) - {} - - /** - * @param world - * @param player - */ - public void respawnAction(World world, EntityPlayer player) - {} - - /** - * @param world - * @param player - */ - public void attackedAction(World world, EntityPlayer player) - {} - - /** - * @param world - * @param player - */ - public void attackedByPlayerAction(World world, EntityPlayer player) - {} - - public boolean itemToss() - { - return false; - } - - /** - * @return - */ - public static ArrayList getCurseList() - { - return curses; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/0063cb09a4ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/0063cb09a4ce00141801ff0972626827 deleted file mode 100644 index 32db913..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/0063cb09a4ce00141801ff0972626827 +++ /dev/null @@ -1,435 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if(entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - } - if (entity.motionX == 0D && entity.motionY == 0D && entity.motionZ == 0D && entity.rotationPitch == entity.prevRotationPitch && entity.rotationYaw == entity.prevRotationYaw) entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - // for(Curse curse: Curse.getCurseList()) - // if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if(((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); -// int grade = 1 + player.worldObj.rand.nextInt(2); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if(entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); -// if (!entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/30c7389426de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/30c7389426de00141043c3025ec60dfc new file mode 100644 index 0000000..912f1ae --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/30c7389426de00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.5f, 0.5f, 0.0f); + drawTexturedModalRect(20, 16 + (size + 12) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 20, 7 + (size + 6) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/50b82d4b23cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/50b82d4b23cf00141c41f52413db5e31 deleted file mode 100644 index 7a984ad..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/50b82d4b23cf00141c41f52413db5e31 +++ /dev/null @@ -1,461 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - System.out.println(event.hasResult() + " " + event.getResult()); - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - System.out.println(event.hasResult() + " " + event.getResult()); - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/6040154608de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/6040154608de00141043c3025ec60dfc new file mode 100644 index 0000000..2edef74 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/6040154608de00141043c3025ec60dfc @@ -0,0 +1,184 @@ +package darkknight.jewelrycraft.model; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + System.out.println(f3); + if ((int)f3 != -1){ + int ingotColor = (int)f3; + int red = ingotColor >> 16 & 0xff; + int green = ingotColor >> 8 & 0xff; + int blue = ingotColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/90811e76bbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/90811e76bbd000141b65e2fc7f94332d deleted file mode 100644 index cd8afc8..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/90811e76bbd000141b65e2fc7f94332d +++ /dev/null @@ -1,114 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 180, -90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 180, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/d016443bbad000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/d016443bbad000141b65e2fc7f94332d deleted file mode 100644 index e569381..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/d016443bbad000141b65e2fc7f94332d +++ /dev/null @@ -1,232 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/e0cadf43f3cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/e0cadf43f3cf0014170de422db399e8d deleted file mode 100644 index 53fbce6..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7e/e0cadf43f3cf0014170de422db399e8d +++ /dev/null @@ -1,64 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null && chunkposition.chunkPosX != (int)player.posX && chunkposition.chunkPosZ != (int)player.posZ){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D*Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D*Math.signum((double)chunkposition.chunkPosZ - player.posZ); - System.out.println(chunkposition.chunkPosX + " " + 0.01D*Math.signum((double)chunkposition.chunkPosX) - player.posX); -// player.addChatMessage(new ChatComponentText("You hear a faint whisper telling you: \"You are getting closer, just " + (int)player.getDistance((double)chunkposition.chunkPosX, (double)chunkposition.chunkPosY, (double)chunkposition.chunkPosZ) + " more blocks to go.\"")); - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); -// if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7f/00b736a77dcf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7f/00b736a77dcf00141de78e4a85bb2469 deleted file mode 100644 index 6a6bced..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7f/00b736a77dcf00141de78e4a85bb2469 +++ /dev/null @@ -1,82 +0,0 @@ -package darkknight.jewelrycraft.client; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.Item; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.MinecraftForgeClient; -import net.minecraftforge.common.MinecraftForge; -import cpw.mods.fml.client.registry.ClientRegistry; -import cpw.mods.fml.client.registry.RenderingRegistry; -import cpw.mods.fml.common.registry.VillagerRegistry; -import darkknight.jewelrycraft.CommonProxy; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.entities.renders.HeartRender; -import darkknight.jewelrycraft.events.PlayerRenderHandler; -import darkknight.jewelrycraft.events.ScreenHandler; -import darkknight.jewelrycraft.model.ModelDisplayer; -import darkknight.jewelrycraft.model.ModelHalfHeart; -import darkknight.jewelrycraft.model.ModelHandPedestal; -import darkknight.jewelrycraft.model.ModelHeart; -import darkknight.jewelrycraft.model.ModelJewlersCraftingBench; -import darkknight.jewelrycraft.model.ModelMolder; -import darkknight.jewelrycraft.model.ModelShadowEye; -import darkknight.jewelrycraft.model.ModelShadowHand; -import darkknight.jewelrycraft.model.ModelSmelter; -import darkknight.jewelrycraft.tileentity.TileEntityDisplayer; -import darkknight.jewelrycraft.tileentity.TileEntityHandPedestal; -import darkknight.jewelrycraft.tileentity.TileEntityJewelrsCraftingTable; -import darkknight.jewelrycraft.tileentity.TileEntityMolder; -import darkknight.jewelrycraft.tileentity.TileEntityShadowEye; -import darkknight.jewelrycraft.tileentity.TileEntityShadowHand; -import darkknight.jewelrycraft.tileentity.TileEntitySmelter; -import darkknight.jewelrycraft.tileentity.renders.ItemRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityDisplayerRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityHandPedestalRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityJewelrsCraftingTableRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityMolderRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityShadowEyeRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityShadowHandRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntitySmelterRender; -import darkknight.jewelrycraft.util.JewelrycraftUtil; - -public class ClientProxy extends CommonProxy -{ - @Override - public void registerRenderers() - { - ResourceLocation pedestalResourceLocation = new ResourceLocation("jewelrycraft", "textures/tileentities/BricksPedestal.png"); - TileEntityHandPedestalRender pedestalRender = new TileEntityHandPedestalRender(new ModelHandPedestal(pedestalResourceLocation), pedestalResourceLocation); - ResourceLocation shadowResourceLocation = new ResourceLocation("jewelrycraft", "textures/tileentities/ShadowHand.png"); - TileEntityShadowHandRender shadowHandRender = new TileEntityShadowHandRender(new ModelShadowHand(shadowResourceLocation), shadowResourceLocation); - - ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySmelter.class, new TileEntitySmelterRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMolder.class, new TileEntityMolderRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityJewelrsCraftingTable.class, new TileEntityJewelrsCraftingTableRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDisplayer.class, new TileEntityDisplayerRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityShadowEye.class, new TileEntityShadowEyeRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHandPedestal.class, pedestalRender); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityShadowHand.class, shadowHandRender); - - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.displayer), new ItemRender(new TileEntityDisplayerRender(), new TileEntityDisplayer(), new ModelDisplayer())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.jewelCraftingTable), new ItemRender(new TileEntityJewelrsCraftingTableRender(), new TileEntityJewelrsCraftingTable(), new ModelJewlersCraftingBench())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.smelter), new ItemRender(new TileEntitySmelterRender(), new TileEntitySmelter(), new ModelSmelter())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.molder), new ItemRender(new TileEntityMolderRender(), new TileEntityMolder(), new ModelMolder())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.shadowEye), new ItemRender(new TileEntityShadowEyeRender(), new TileEntityShadowEye(), new ModelShadowEye())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.handPedestal), new ItemRender(pedestalRender, new TileEntityHandPedestal(), new ModelHandPedestal(pedestalResourceLocation))); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.shadowHand), new ItemRender(shadowHandRender, new TileEntityShadowHand(), new ModelShadowHand(shadowResourceLocation))); - VillagerRegistry.instance().registerVillagerSkin(3000, new ResourceLocation("jewelrycraft", "textures/entities/jeweler.png")); - - RenderingRegistry.registerEntityRenderingHandler(EntityHeart.class, new HeartRender(new ModelHeart(), 0.25F)); - RenderingRegistry.registerEntityRenderingHandler(EntityHalfHeart.class, new HeartRender(new ModelHalfHeart(), 0.25F)); - - TabRegistry.registerTab(new InventoryTabVanilla()); - TabRegistry.registerTab(new TabJewelry()); - MinecraftForge.EVENT_BUS.register(new TabRegistry()); - MinecraftForge.EVENT_BUS.register(new PlayerRenderHandler()); - ResourceLocation jeweleryTexture = new ResourceLocation("jewelrycraft", "textures/gui/curses.png"); - MinecraftForge.EVENT_BUS.register(new ScreenHandler(Minecraft.getMinecraft(), jeweleryTexture)); - JewelrycraftUtil.addStuff(); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7f/c0c31c6bf2cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7f/c0c31c6bf2cf0014170de422db399e8d deleted file mode 100644 index 4b7e544..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7f/c0c31c6bf2cf0014170de422db399e8d +++ /dev/null @@ -1,64 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX -= 0.01D*Math.signum((double)chunkposition.chunkPosX); - Minecraft.getMinecraft().thePlayer.motionZ -= 0.01D*Math.signum((double)chunkposition.chunkPosZ); - System.out.println((double)chunkposition.chunkPosX + " " + (double)chunkposition.chunkPosZ); -// player.addChatMessage(new ChatComponentText("You hear a faint whisper telling you: \"You are getting closer, just " + (int)player.getDistance((double)chunkposition.chunkPosX, (double)chunkposition.chunkPosY, (double)chunkposition.chunkPosZ) + " more blocks to go.\"")); - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); -// if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7f/e05bccf47ecf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7f/e05bccf47ecf00141de78e4a85bb2469 deleted file mode 100644 index 948469f..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/7f/e05bccf47ecf00141de78e4a85bb2469 +++ /dev/null @@ -1,78 +0,0 @@ -package darkknight.jewelrycraft.container; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.client.GuiGuide; -import darkknight.jewelrycraft.util.JewelrycraftUtil; - -public class GuiTabGemsAndIngots extends GuiTab -{ - - /** - * @param id - */ - public GuiTabGemsAndIngots(int id) - { - super("Gems and ingots", id); - } - - /** - * @return - */ - @Override - public ItemStack getIcon() - { - return new ItemStack(Items.emerald); - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - for(int i = (page - 1) * 9; i < page * 9; i++) - if (i < JewelrycraftUtil.objects.size()){ - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Gems", gui.getLeft() + xPos + 40, gui.getTop(), 0); - gui.renderItem(JewelrycraftUtil.objects.get(i), gui.getLeft() + xPos + 10, gui.getTop() + 22 + 16 * (i - 9 * (page - 1)), 30f); - gui.getFont().drawString(String.format("%-1.18s", JewelrycraftUtil.objects.get(i).getDisplayName()), gui.getLeft() + xPos + 20, gui.getTop() + 12 + 16 * (i - 9 * (page - 1)), 0); - GL11.glDisable(GL11.GL_LIGHTING); - } - page -= JewelrycraftUtil.objects.size() / 9 + 1; - for(int i = (page - 1) * 9; i < page * 9; i++) - if (i < JewelrycraftUtil.metal.size() && page > 0){ - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Ingots", gui.getLeft() + xPos + 40, gui.getTop(), 0); - gui.renderItem(JewelrycraftUtil.metal.get(i).copy(), gui.getLeft() + xPos + 10, gui.getTop() + 22 + 16 * (i - 9 * (page - 1)), 30f); - gui.getFont().drawString(String.format("%-1.18s", JewelrycraftUtil.metal.get(i).copy().getDisplayName()), gui.getLeft() + xPos + 20, gui.getTop() + 12 + 16 * (i - 9 * (page - 1)), 0); - GL11.glDisable(GL11.GL_LIGHTING); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @return - */ - @Override - public int getMaxPages() - { - return JewelrycraftUtil.objects.size() / 9 + JewelrycraftUtil.metal.size() / 9 + 2; - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8/60685a7322cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8/60685a7322cf00141c41f52413db5e31 deleted file mode 100644 index 6a12145..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8/60685a7322cf00141c41f52413db5e31 +++ /dev/null @@ -1,463 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - event.setCanceled(true); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - event.setCanceled(true); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - event.setCanceled(true); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - event.setCanceled(true); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8/b04fbcf8bbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8/b04fbcf8bbd000141b65e2fc7f94332d deleted file mode 100644 index 873cc63..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8/b04fbcf8bbd000141b65e2fc7f94332d +++ /dev/null @@ -1,236 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.5F, 0F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/406867c2a5ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/406867c2a5ce00141801ff0972626827 deleted file mode 100644 index 855d5af..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/406867c2a5ce00141801ff0972626827 +++ /dev/null @@ -1,448 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if(entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - playerInfo.setBoolean("stunned", true); - playerInfo.setInteger("stunTime", 50); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if(playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - // for(Curse curse: Curse.getCurseList()) - // if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if(((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); -// int grade = 1 + player.worldObj.rand.nextInt(2); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if(entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); -// if (!entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/d0f4feb20ade00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/d0f4feb20ade00141043c3025ec60dfc new file mode 100644 index 0000000..8ac423f --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/d0f4feb20ade00141043c3025ec60dfc @@ -0,0 +1,186 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + System.out.println((int)f3); + if ((int)f3 != -1){ + int ingotColor = Math.abs((int)f3); + int alpha = (ingotColor >> 24) & 0xff; + int red = (ingotColor >> 16) & 0xff; + int green = (ingotColor >> 8) & 0xff; + int blue = ingotColor & 0xff; + GL11.glColor4f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/e0c8a1d614cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/e0c8a1d614cf00141c41f52413db5e31 deleted file mode 100644 index 632112b..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/e0c8a1d614cf00141c41f52413db5e31 +++ /dev/null @@ -1,460 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0 && playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(player.worldObj, player); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - // if (!entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/e0f236a626de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/e0f236a626de00141043c3025ec60dfc new file mode 100644 index 0000000..5bdfb8f --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/80/e0f236a626de00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.5f, 0.5f, 0.0f); + drawTexturedModalRect(20, 16 + (size + 20) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 20, 7 + (size + 6) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/82/a027f35412cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/82/a027f35412cf00141c41f52413db5e31 deleted file mode 100644 index bbb5728..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/82/a027f35412cf00141c41f52413db5e31 +++ /dev/null @@ -1,447 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - // int grade = 1 + player.worldObj.rand.nextInt(2); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - // if (!entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/83/50fcae8bd0df00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/83/50fcae8bd0df00141dc6c962aec96210 new file mode 100644 index 0000000..4c36593 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/83/50fcae8bd0df00141dc6c962aec96210 @@ -0,0 +1,87 @@ +package darkknight.jewelrycraft.effects; + +import net.minecraft.block.BlockOre; +import net.minecraft.client.Minecraft; +import net.minecraft.client.settings.GameSettings.Options; +import net.minecraft.entity.monster.EntityEnderman; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.biome.BiomeGenBase; +import cpw.mods.fml.relauncher.ReflectionHelper; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; + +public class EffectEnderEye extends ModifierEffects +{ + private boolean originalVD = false; + private float originalViewDistance; + + public EffectEnderEye() + { + super(new ItemStack(Items.ender_eye)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemEarrings && exists && !player.worldObj.isRemote){ + for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ + EntityEnderman enderman = (EntityEnderman)e; + ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); + Vec3 vec3 = player.getLook(1.0F).normalize(); + Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); + double d0 = vec31.lengthVector(); + vec31 = vec31.normalize(); + double d1 = vec3.dotProduct(vec31); + if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ + // Positive earrings + if (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0) enderman.setTarget(null); + // Negative earrings + if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2 + JewelryNBT.numberOfModifiers(item) / 4)); + } + } + } + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote){ + ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); + if (chunkposition != null){ + Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX) * (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0 ? 1 : -1); + Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ) * (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0 ? 1 : -1); + } + } + // Positive bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 150 - JewelryNBT.numberOfModifiers(item) * 10, 2 - JewelryNBT.numberOfModifiers(item) / 5)); + // Negative bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && rand.nextInt(520 - JewelryNBT.numberOfModifiers(item) * 20) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1), player.posY, player.posZ + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1)); + // Negative ring + if (jewelry instanceof ItemRing && exists) Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 2.2F - JewelryNBT.numberOfModifiers(item) * 0.1F); + // Positive ring + if (jewelry instanceof ItemRing && exists && rand.nextInt(180 + JewelryNBT.numberOfModifiers(item)*20) == 12){ + for(int i = (int)player.posX - 2; i <= (int)player.posX + 2; i++) + for(int j = (int)player.posY - 2; j <= (int)player.posY + 2; j++) + for(int k = (int)player.posZ - 2; k <= (int)player.posZ + 2; k++) + if (player.worldObj.getBlock(i, j, k) instanceof BlockOre) player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "You sense some " + player.worldObj.getBlock(i, j, k).getLocalizedName() + " around you.")); + } + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100 + JewelryNBT.numberOfModifiers(item)*30, 1)); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/83/a05c8663b7d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/83/a05c8663b7d000141b65e2fc7f94332d deleted file mode 100644 index 5abaee0..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/83/a05c8663b7d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 153, 16, 16); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() - 20, gui.getTop() + 15); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/00a3c9260cde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/00a3c9260cde00141043c3025ec60dfc new file mode 100644 index 0000000..25c567e --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/00a3c9260cde00141043c3025ec60dfc @@ -0,0 +1,186 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + if ((int)f3 != -1){ + int ingotColor = (int)f3; + int red = (ingotColor >> 16) & 0xff; + int green = (ingotColor >> 8) & 0xff; + int blue = ingotColor & 0xff; +// System.out.println(red + " " + green + " " + blue); + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glColorMask(false, true, true, false); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/1025655c2bde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/1025655c2bde00141043c3025ec60dfc new file mode 100644 index 0000000..67ff07e --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/1025655c2bde00141043c3025ec60dfc @@ -0,0 +1,466 @@ +package darkknight.jewelrycraft.events; + +import ibxm.Player; +import java.io.EOFException; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Iterator; +import java.util.List; +import java.util.Random; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompressedStreamTools; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.MathHelper; +import net.minecraftforge.client.event.EntityViewRenderEvent; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.event.entity.item.ItemTossEvent; +import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.living.LivingDeathEvent; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingFallEvent; +import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; +import net.minecraftforge.event.world.WorldEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.config.ConfigHandler; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.entities.EntityHalfHeart; +import darkknight.jewelrycraft.entities.EntityHeart; +import darkknight.jewelrycraft.item.ItemBaseJewelry; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemList; +import darkknight.jewelrycraft.network.PacketClearColorCache; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.network.PacketSendCurseStats; +import darkknight.jewelrycraft.network.PacketSendPlayerInfo; +import darkknight.jewelrycraft.util.BlockUtils; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +/** + * Code taken from OpenBlocks + */ +public class EntityEventHandler +{ + /** + * @param event + */ + @SubscribeEvent + public void onEntityJoinWorld(EntityJoinWorldEvent event) + { + if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + final Entity entity = event.entity; + if (!event.world.isRemote && entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); + if (shouldGiveManual){ + ItemStack manual = new ItemStack(ItemList.guide); + if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); + persistTag.setBoolean("givenGuide", true); + } + boolean render = persistTag.getBoolean("fancyRender"); + JewelrycraftMod.fancyRender = render; + for(Curse curse: Curse.getCurseList()) + if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); + persistTag.setBoolean("sendInfo", true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityUpdate(LivingUpdateEvent event) + { + Entity entity = event.entity; + if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ + entity.motionX *= 0D; + entity.motionZ *= 0D; + entity.motionY *= 0D; + entity.rotationPitch = entity.prevRotationPitch; + entity.rotationYaw = entity.prevRotationYaw; + entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); + if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); + entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); + if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ + player.motionX *= 0D; + player.motionZ *= 0D; + player.motionY *= 0D; + player.rotationPitch = entity.prevRotationPitch; + player.rotationYaw = entity.prevRotationYaw; + playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); + if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); + player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); + } + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if(item != null) ((ItemBaseJewelry)item.getItem()).action(item, player); + } + if (!player.worldObj.isRemote){ + if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); + if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); + } + if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); + if (playerInfo.getBoolean("sendInfo")){ + JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); + playerInfo.setBoolean("sendInfo", false); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); + } + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityAttacked(LivingAttackEvent event) + { + Entity entity = event.entityLiving; + if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); + if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("negateDamage")){ + playerInfo.setBoolean("negateDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); + } + if (player.getHealth() != player.prevHealth){ + if (playerInfo.getFloat("WhiteHeart") > 0){ + playerInfo.setFloat("WhiteHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getFloat("BlueHeart") > 0){ + float damage = playerInfo.getFloat("BlueHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlueHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlueHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + }else if (playerInfo.getFloat("BlackHeart") > 0){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); + List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); + if (enemies != null && !enemies.isEmpty()){ + Iterator iterator = enemies.iterator(); + while (iterator.hasNext()){ + Entity enemy = (Entity)iterator.next(); + enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); + } + } + float damage = playerInfo.getFloat("BlackHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlackHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlackHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + } + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); + }else if (event.source.getEntity() instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.source.getEntity(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("weakDamage")){ + playerInfo.setBoolean("weakDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onPlayerRespawn(PlayerEvent.Clone event) + { + EntityPlayer player = event.entityPlayer; + if (!player.worldObj.isRemote){ + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (playerInfo.hasKey("cursePoints")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + } + playerInfo.setBoolean("sendInfo", true); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param player + * @param playerInfo + * @param curse + */ + public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) + { + System.out.println(curseNo + " " + Curse.availableCurses); + if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ + int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); + Curse cur = Curse.availableCurses.get(no); + playerInfo.setInteger(cur.getName(), 1); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) + { + Curse cur = Curse.getCurseList().get(curseID); + if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ + playerInfo.setInteger(cur.getName(), grade); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + @SubscribeEvent + public void itemToss(ItemTossEvent event) + { + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, Variables.MODID); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ + EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); + entityitem.motionX = 0; + entityitem.motionZ = 0; + entityitem.motionY = 0.11000000298023224D; + event.player.worldObj.spawnEntityInWorld(entityitem); + List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; + Iterator plrs = players.iterator(); + while (plrs.hasNext()) + ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); + event.setCanceled(true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void playerFileSave(PlayerEvent.SaveToFile event) + { + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityDead(LivingDeathEvent event) + { + final Entity entity = event.entity; + Random rand = new Random(); + String[] types = {"Red", "Blue", "White", "Black"}; + if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ + EntityLiving live = (EntityLiving)entity; + String type = types[rand.nextInt(4)]; + if (rand.nextInt(6) == 0){ + if (type == "White"){ + EntityHeart h = new EntityHalfHeart(live.worldObj); + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + }else{ + for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ + EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; + EntityHeart h = hearts[rand.nextInt(2)]; + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + } + } + } + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ + for(Curse l: Curse.getCurseList()){ + if (playerInfo.getInteger(l.getName()) == 1){ + playerInfo.setInteger(l.getName(), 0); + Curse.availableCurses.add(l); + }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); + } + if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + playerInfo.setBoolean("sendInfo", true); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldLoad(WorldEvent.Load event) + { + if (!event.world.isRemote){ + new File(JewelrycraftMod.dir + File.separator + Variables.MODID).mkdirs(); + JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + Variables.MODID, "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); + try{ + if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldSave(WorldEvent.Save event) + { + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogColors(EntityViewRenderEvent.FogColors event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + event.red = 0f; + event.green = 0f; + event.blue = 0f; + } + } + if (event.isCancelable()) event.setCanceled(true); + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogDensity(EntityViewRenderEvent.FogDensity event) + {} + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void renderFog(EntityViewRenderEvent.RenderFogEvent event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); + GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); + } + } + if (event.isCancelable()) event.setCanceled(true); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/80aeb7fb26de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/80aeb7fb26de00141043c3025ec60dfc new file mode 100644 index 0000000..7bf9867 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/80aeb7fb26de00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 20, 7 + (size + 6) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/c023ecaca5ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/c023ecaca5ce00141801ff0972626827 deleted file mode 100644 index 6243b1d..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/84/c023ecaca5ce00141801ff0972626827 +++ /dev/null @@ -1,448 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if(entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - playerInfo.setBoolean("stunned", true); - playerInfo.setInteger("stunTime", 50); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if(playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - // for(Curse curse: Curse.getCurseList()) - // if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if(((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); -// int grade = 1 + player.worldObj.rand.nextInt(2); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if(entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); -// if (!entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/85/20a25d63bbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/85/20a25d63bbd000141b65e2fc7f94332d deleted file mode 100644 index 862811c..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/85/20a25d63bbd000141b65e2fc7f94332d +++ /dev/null @@ -1,114 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 180, -90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/85/20ce4e77a0ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/85/20ce4e77a0ce00141801ff0972626827 deleted file mode 100644 index e69de29..0000000 diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/85/8013b6e1bdd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/85/8013b6e1bdd000141b65e2fc7f94332d deleted file mode 100644 index 4bf0be3..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/85/8013b6e1bdd000141b65e2fc7f94332d +++ /dev/null @@ -1,237 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.block.BlockShadowEye; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - if((Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockShadowEye) GL11.glTranslatef(-0.2F, 0F, 0F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/85/902f5c8116cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/85/902f5c8116cf00141c41f52413db5e31 deleted file mode 100644 index d7d8d9b..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/85/902f5c8116cf00141c41f52413db5e31 +++ /dev/null @@ -1,32 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player) - { - if (!world.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.getFloat("BlackHeart") < 20f && rand.nextInt(5) == 0) playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 2.0F); - JewelrycraftUtil.addCursePoints(player, 10); - } - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/86/407ff7ab81d000141a1fb02abca5ff55 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/86/407ff7ab81d000141a1fb02abca5ff55 deleted file mode 100644 index 2ea2b2d..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/86/407ff7ab81d000141a1fb02abca5ff55 +++ /dev/null @@ -1,67 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && rand.nextInt(500) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30)*(rand.nextBoolean()?-1:1), player.posY, player.posZ + rand.nextInt(30)*(rand.nextBoolean()?-1:1)); - if (jewelry instanceof ItemRing && pos != -1); - Minecraft.getMinecraft().gameSettings.renderDistanceChunks = 0; - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/87/0090d02f23cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/87/0090d02f23cf00141c41f52413db5e31 deleted file mode 100644 index cee1728..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/87/0090d02f23cf00141c41f52413db5e31 +++ /dev/null @@ -1,460 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - System.out.println(event.hasResult() + " " + event.getResult()); - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/87/108b25f9b6d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/87/108b25f9b6d000141b65e2fc7f94332d deleted file mode 100644 index f3f6d25..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/87/108b25f9b6d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 153, 30, 30); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() - 20, gui.getTop() + 15); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/88/902740e1bad000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/88/902740e1bad000141b65e2fc7f94332d deleted file mode 100644 index df04e06..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/88/902740e1bad000141b65e2fc7f94332d +++ /dev/null @@ -1,112 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 75, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/88/d084e8b4f2cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/88/d084e8b4f2cf0014170de422db399e8d deleted file mode 100644 index 791f19e..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/88/d084e8b4f2cf0014170de422db399e8d +++ /dev/null @@ -1,64 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null && chunkposition.chunkPosX != player.posX && chunkposition.chunkPosZ != player.posZ){ - Minecraft.getMinecraft().thePlayer.motionX -= 0.01D*Math.signum((double)chunkposition.chunkPosX); - Minecraft.getMinecraft().thePlayer.motionZ -= 0.01D*Math.signum((double)chunkposition.chunkPosZ); - System.out.println(chunkposition.chunkPosX + " " + chunkposition.chunkPosZ); -// player.addChatMessage(new ChatComponentText("You hear a faint whisper telling you: \"You are getting closer, just " + (int)player.getDistance((double)chunkposition.chunkPosX, (double)chunkposition.chunkPosY, (double)chunkposition.chunkPosZ) + " more blocks to go.\"")); - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); -// if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/1013dbafccdf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/1013dbafccdf00141dc6c962aec96210 new file mode 100644 index 0000000..00f72b9 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/1013dbafccdf00141dc6c962aec96210 @@ -0,0 +1,96 @@ +package darkknight.jewelrycraft.effects; + +import java.util.Iterator; +import java.util.List; +import net.minecraft.entity.Entity; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class EffectFeather extends ModifierEffects +{ + public EffectFeather() + { + super(new ItemStack(Items.feather)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive earrings + if (jewelry instanceof ItemEarrings && exists){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); + List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); + if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ + Iterator iterator = list.iterator(); + while (iterator.hasNext()){ + EntityArrow arrow = (EntityArrow)iterator.next(); + if ((arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0) && rand.nextInt(2 + JewelryNBT.numberOfModifiers(item)) == 0) arrow.setDead(); + } + } + } + if (jewelry instanceof ItemBracelet && exists){ + // Positive bracelet + if (player.motionY < 0) player.motionY *= (0.6D + (JewelryNBT.numberOfModifiers(item) - 1) * 0.03D); + if (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0) player.fallDistance = 0F; + // Negative bracelet + if (!player.isPotionActive(Potion.moveSlowdown) || player.getActivePotionEffect(Potion.moveSlowdown).getDuration() < 30) player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 80 + JewelryNBT.numberOfModifiers(item) * 10, 1 + JewelryNBT.numberOfModifiers(item) / 4)); + } + } + + @Override + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + NBTTagCompound enemyData = target.getEntityData(); + if (jewelry instanceof ItemRing && exists && enemyData.getInteger("reAttacked") == 0){ + // Negative ring + enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); + target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / (2F + (JewelryNBT.numberOfModifiers(item)-1)*0.1F)); + // Positive ring + if (rand.nextInt(2) == 0){ + enemyData.setInteger("stunTime", 51 - JewelryNBT.numberOfModifiers(item)); + enemyData.setBoolean("stunned", true); + } + playerInfo.setBoolean("weakDamage", true); + } + if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && rand.nextInt(3 + JewelryNBT.numberOfModifiers(item)) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ + player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); + playerInfo.setBoolean("negateDamage", true); + } + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * (3F + JewelryNBT.numberOfModifiers(item)*0.1F)); + // Negative earrings + if (jewelry instanceof ItemEarrings && exists && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * (2F + JewelryNBT.numberOfModifiers(item)*0.1F)); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/1058a217f5cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/1058a217f5cf0014170de422db399e8d deleted file mode 100644 index 3363e80..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/89/1058a217f5cf0014170de422db399e8d +++ /dev/null @@ -1,69 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D*Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D*Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote){ - if (player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky){ - player.setAIMoveSpeed(20f); - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8a/20753b7905de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8a/20753b7905de00141043c3025ec60dfc new file mode 100644 index 0000000..8b055a8 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8a/20753b7905de00141043c3025ec60dfc @@ -0,0 +1,23 @@ +package darkknight.jewelrycraft.item; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import darkknight.jewelrycraft.JewelrycraftMod; + +public class ItemJewelryModifier extends Item +{ + public ItemJewelryModifier() + { + super(); + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) + { + if (!world.isRemote) player.openGui(JewelrycraftMod.instance, 3, world, 0, 0, 0); + return stack; + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8a/708b72abbbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8a/708b72abbbd000141b65e2fc7f94332d deleted file mode 100644 index afd9dd3..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8a/708b72abbbd000141b65e2fc7f94332d +++ /dev/null @@ -1,114 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8c/109be73121cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8c/109be73121cf00141c41f52413db5e31 deleted file mode 100644 index c0f720a..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8c/109be73121cf00141c41f52413db5e31 +++ /dev/null @@ -1,36 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player, Entity target) - { - if (!world.isRemote && !(target instanceof EntityMob)){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (rand.nextInt(2) == 0){ - playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 2.0F); - player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() - 2.0F); - } - JewelrycraftUtil.addCursePoints(player, 10); - } - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/20884d44b4d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/20884d44b4d000141b65e2fc7f94332d deleted file mode 100644 index b578e53..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/20884d44b4d000141b65e2fc7f94332d +++ /dev/null @@ -1,195 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 20, 145, 150, 35, 30); - name.add(item.getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/d01b82df0bde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/d01b82df0bde00141043c3025ec60dfc new file mode 100644 index 0000000..81760c9 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/d01b82df0bde00141043c3025ec60dfc @@ -0,0 +1,186 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + if ((int)f3 != -1){ + int ingotColor = (int)f3; + int red = (ingotColor >> 16) & 0xff; + int green = (ingotColor >> 8) & 0xff; + int blue = ingotColor & 0xff; + System.out.println(red + " " + green + " " + blue); + GL11.glClearColor(1F, 1F, 1F, 1F); + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/f0467f9a2bde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/f0467f9a2bde00141043c3025ec60dfc new file mode 100644 index 0000000..1667bd7 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8d/f0467f9a2bde00141043c3025ec60dfc @@ -0,0 +1,466 @@ +package darkknight.jewelrycraft.events; + +import ibxm.Player; +import java.io.EOFException; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Iterator; +import java.util.List; +import java.util.Random; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompressedStreamTools; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.MathHelper; +import net.minecraftforge.client.event.EntityViewRenderEvent; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.event.entity.item.ItemTossEvent; +import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.living.LivingDeathEvent; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingFallEvent; +import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; +import net.minecraftforge.event.world.WorldEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.config.ConfigHandler; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.entities.EntityHalfHeart; +import darkknight.jewelrycraft.entities.EntityHeart; +import darkknight.jewelrycraft.item.ItemBaseJewelry; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemList; +import darkknight.jewelrycraft.network.PacketClearColorCache; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.network.PacketSendCurseStats; +import darkknight.jewelrycraft.network.PacketSendPlayerInfo; +import darkknight.jewelrycraft.util.BlockUtils; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +/** + * Code taken from OpenBlocks + */ +public class EntityEventHandler +{ + /** + * @param event + */ + @SubscribeEvent + public void onEntityJoinWorld(EntityJoinWorldEvent event) + { + if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + final Entity entity = event.entity; + if (!event.world.isRemote && entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); + if (shouldGiveManual){ + ItemStack manual = new ItemStack(ItemList.guide); + if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); + persistTag.setBoolean("givenGuide", true); + } + boolean render = persistTag.getBoolean("fancyRender"); + JewelrycraftMod.fancyRender = render; + for(Curse curse: Curse.getCurseList()) + if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); + persistTag.setBoolean("sendInfo", true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityUpdate(LivingUpdateEvent event) + { + Entity entity = event.entity; + if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ + entity.motionX *= 0D; + entity.motionZ *= 0D; + entity.motionY *= 0D; + entity.rotationPitch = entity.prevRotationPitch; + entity.rotationYaw = entity.prevRotationYaw; + entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); + if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); + entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); + if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ + player.motionX *= 0D; + player.motionZ *= 0D; + player.motionY *= 0D; + player.rotationPitch = entity.prevRotationPitch; + player.rotationYaw = entity.prevRotationYaw; + playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); + if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); + player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); + } + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if(item != null) ((ItemBaseJewelry)item.getItem()).action(item, player); + } + if (!player.worldObj.isRemote){ + if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); + if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); + } + if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); + if (playerInfo.getBoolean("sendInfo")){ + JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); + playerInfo.setBoolean("sendInfo", false); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); + } + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityAttacked(LivingAttackEvent event) + { + Entity entity = event.entityLiving; + if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); + if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("negateDamage")){ + playerInfo.setBoolean("negateDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); + } + if (player.getHealth() != player.prevHealth){ + if (playerInfo.getFloat("WhiteHeart") > 0){ + playerInfo.setFloat("WhiteHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getFloat("BlueHeart") > 0){ + float damage = playerInfo.getFloat("BlueHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlueHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlueHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + }else if (playerInfo.getFloat("BlackHeart") > 0){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); + List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); + if (enemies != null && !enemies.isEmpty()){ + Iterator iterator = enemies.iterator(); + while (iterator.hasNext()){ + Entity enemy = (Entity)iterator.next(); + enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); + } + } + float damage = playerInfo.getFloat("BlackHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlackHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlackHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + } + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); + }else if (event.source.getEntity() instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.source.getEntity(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("weakDamage")){ + playerInfo.setBoolean("weakDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onPlayerRespawn(PlayerEvent.Clone event) + { + EntityPlayer player = event.entityPlayer; + if (!player.worldObj.isRemote){ + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (playerInfo.hasKey("cursePoints")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + } + playerInfo.setBoolean("sendInfo", true); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param player + * @param playerInfo + * @param curse + */ + public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) + { + System.out.println(curseNo + " " + Curse.availableCurses); + if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ + int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); + Curse cur = Curse.availableCurses.get(no); + playerInfo.setInteger(cur.getName(), 1); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) + { + Curse cur = Curse.getCurseList().get(curseID); + if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ + playerInfo.setInteger(cur.getName(), grade); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + @SubscribeEvent + public void itemToss(ItemTossEvent event) + { + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, Variables.MODID); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ + EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); + entityitem.motionX = 0; + entityitem.motionZ = 0; + entityitem.motionY = 0.11000000298023224D; + event.player.worldObj.spawnEntityInWorld(entityitem); + List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; + Iterator plrs = players.iterator(); + while (plrs.hasNext()) + ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); + event.setCanceled(true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void playerFileSave(PlayerEvent.SaveToFile event) + { + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityDead(LivingDeathEvent event) + { + final Entity entity = event.entity; + Random rand = new Random(); + String[] types = {"Red", "Blue", "White", "Black"}; + if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ + EntityLiving live = (EntityLiving)entity; + String type = types[rand.nextInt(4)]; + if (rand.nextInt(6) == 0){ + if (type == "White"){ + EntityHeart h = new EntityHalfHeart(live.worldObj); + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + }else{ + for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ + EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; + EntityHeart h = hearts[rand.nextInt(2)]; + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + } + } + } + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ + for(Curse l: Curse.getCurseList()){ + if (playerInfo.getInteger(l.getName()) == 1){ + playerInfo.setInteger(l.getName(), 0); + if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); + }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); + } + if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + playerInfo.setBoolean("sendInfo", true); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldLoad(WorldEvent.Load event) + { + if (!event.world.isRemote){ + new File(JewelrycraftMod.dir + File.separator + Variables.MODID).mkdirs(); + JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + Variables.MODID, "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); + try{ + if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldSave(WorldEvent.Save event) + { + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogColors(EntityViewRenderEvent.FogColors event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + event.red = 0f; + event.green = 0f; + event.blue = 0f; + } + } + if (event.isCancelable()) event.setCanceled(true); + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogDensity(EntityViewRenderEvent.FogDensity event) + {} + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void renderFog(EntityViewRenderEvent.RenderFogEvent event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); + GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); + } + } + if (event.isCancelable()) event.setCanceled(true); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8e/30bf1d4c2dde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8e/30bf1d4c2dde00141043c3025ec60dfc new file mode 100644 index 0000000..52497e5 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8e/30bf1d4c2dde00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() - 50 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() - 50 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() - 50 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8f/602f81f1b9d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8f/602f81f1b9d000141b65e2fc7f94332d deleted file mode 100644 index e569381..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8f/602f81f1b9d000141b65e2fc7f94332d +++ /dev/null @@ -1,232 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8f/907dbd0a2ede00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8f/907dbd0a2ede00141043c3025ec60dfc new file mode 100644 index 0000000..3d1dd46 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/8f/907dbd0a2ede00141043c3025ec60dfc @@ -0,0 +1,109 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ +// for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(5, resolution.getScaledHeight() - 50 + 16 * count, 0 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlackHeart")) / 2.0F), 15, resolution.getScaledHeight() - 45 + 16 * count, 16777215); +// if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("BlackHeart") > 0){ +// for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(5, resolution.getScaledHeight() - 50 + 16 * count, 1 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlackHeart")) / 2.0F), 15, resolution.getScaledHeight() - 45 + 16 * count, 16777215); +// if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() - 50 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9/704de242b6d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9/704de242b6d000141b65e2fc7f94332d deleted file mode 100644 index d817166..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9/704de242b6d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 145, 150, 35, 30); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft(), gui.getTop()); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/902c91fbf5cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/902c91fbf5cf0014170de422db399e8d deleted file mode 100644 index 6c48ef2..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/902c91fbf5cf0014170de422db399e8d +++ /dev/null @@ -1,69 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D*Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D*Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote){ - if (player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky){ - if (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/90e4273eb4d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/90e4273eb4d000141b65e2fc7f94332d deleted file mode 100644 index 3af779d..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/90e4273eb4d000141b65e2fc7f94332d +++ /dev/null @@ -1,195 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 7, y + 20, 145, 150, 35, 30); - name.add(item.getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/b0804ec7bbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/b0804ec7bbd000141b65e2fc7f94332d deleted file mode 100644 index afd9dd3..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/90/b0804ec7bbd000141b65e2fc7f94332d +++ /dev/null @@ -1,114 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/91/00916edebad000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/91/00916edebad000141b65e2fc7f94332d deleted file mode 100644 index 18a37bb..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/91/00916edebad000141b65e2fc7f94332d +++ /dev/null @@ -1,112 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/91/7094473ba5ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/91/7094473ba5ce00141801ff0972626827 deleted file mode 100644 index 1d69f07..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/91/7094473ba5ce00141801ff0972626827 +++ /dev/null @@ -1,436 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if(entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - // for(Curse curse: Curse.getCurseList()) - // if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if(((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); -// int grade = 1 + player.worldObj.rand.nextInt(2); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if(entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); -// if (!entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/91/a05f8b8d6edd001412dce27813e7be4a b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/91/a05f8b8d6edd001412dce27813e7be4a new file mode 100644 index 0000000..ca1efa3 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/91/a05f8b8d6edd001412dce27813e7be4a @@ -0,0 +1,121 @@ +/** + * + */ +package darkknight.jewelrycraft.commands; + +/** + * @author Sorin + * + */ +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.command.WrongUsageException; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IChatComponent; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.events.EntityEventHandler; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; + +public class JewelrycraftCommands extends CommandBase +{ + private List aliases; + + public JewelrycraftCommands() + { + this.aliases = new ArrayList(); + this.aliases.add("jw"); + this.aliases.add("jewelry"); + } + + @Override + public String getCommandName() + { + return "jewelrycraft"; + } + + @Override + public String getCommandUsage(ICommandSender var1) + { + String use = "/jewelrycraft [points] | "; + use += "/jewelrycraft |"; + use += "/jewelrycraft "; + return use; + } + + @Override + public List getCommandAliases() + { + return aliases; + } + + @Override + public void processCommand(ICommandSender commandSender, String[] astring) + { + if (astring.length == 0 || astring[0].equals("help")) throw new WrongUsageException(getCommandUsage(commandSender)); + if (astring[0].equals("getCursePoints")){ + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + commandSender.addChatMessage(new ChatComponentTranslation(Integer.toString(JewelrycraftUtil.getCursePoints(entityplayermp)))); + }else if (astring[0].equals("addCursePoints")){ + int points = CommandBase.parseIntWithMin(commandSender, astring[2], 0); + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + JewelrycraftUtil.addCursePoints(entityplayermp, points); + }else if (astring[0].equals("setCursePoints")){ + int points = CommandBase.parseIntWithMin(commandSender, astring[2], 0); + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + JewelrycraftUtil.addCursePoints(entityplayermp, points - JewelrycraftUtil.getCursePoints(entityplayermp)); + }else if (astring[0].equals("addModifier")){ + ItemStack item = new ItemStack(CommandBase.getItemByText(commandSender, astring[1])); + EntityPlayerMP entityplayermp = getPlayer(commandSender, commandSender.getCommandSenderName()); + ArrayList modifier = new ArrayList(); + modifier.add(item); + JewelryNBT.addModifiers(entityplayermp.getCurrentEquippedItem(), modifier); + }else if (astring[0].equals("addCurse")){ + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + int curse = Integer.valueOf(astring[2]); + int grade = Integer.valueOf(astring[3]); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(entityplayermp, "Jewelrycraft"); + if(curse < Curse.getCurseList().size() && grade <= 2) + { + EntityEventHandler.addCurse(entityplayermp, playerInfo, curse, grade); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo(entityplayermp)); + } + else if(curse >= Curse.getCurseList().size()) entityplayermp.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Curse ID exceedes the maximum value of " + (Curse.getCurseList().size() - 1))); + else entityplayermp.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Curse grade exceedes the maximum value of 2")); + + } + } + + @Override + public List addTabCompletionOptions(ICommandSender icommandsender, String[] astring) + { + final List MATCHES = new LinkedList(); + final String ARG_LC = astring[astring.length - 1].toLowerCase(); + if (astring.length == 1){ + if ("addCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addCursePoints"); + if ("getCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("getCursePoints"); + if ("setCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("setCursePoints"); + if ("addModifier".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addModifier"); + if ("addCurse".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addCurse"); + }else if (astring.length == 2){ + if (!astring[0].equals("addModifier")){ + for(String un: MinecraftServer.getServer().getAllUsernames()) + if (un.toLowerCase().startsWith(ARG_LC)) MATCHES.add(un); + }else if (!astring[0].equals("addCurse")) return getListOfStringsFromIterableMatchingLastWord(astring, Item.itemRegistry.getKeys()); + } + return MATCHES.isEmpty() ? null : MATCHES; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/92/0012daebb6d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/92/0012daebb6d000141b65e2fc7f94332d deleted file mode 100644 index 53cd112..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/92/0012daebb6d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 150, 30, 30); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() - 20, gui.getTop() + 15); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/92/5027d4627dcf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/92/5027d4627dcf00141de78e4a85bb2469 deleted file mode 100644 index b50b132..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/92/5027d4627dcf00141de78e4a85bb2469 +++ /dev/null @@ -1,221 +0,0 @@ -package darkknight.jewelrycraft.util; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Random; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.oredict.OreDictionary; -import cpw.mods.fml.common.registry.GameData; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.events.EntityEventHandler; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; - -public class JewelrycraftUtil -{ - public static ArrayList objects = new ArrayList(); - public static ArrayList gem = new ArrayList(); - public static ArrayList jewelry = new ArrayList(); - public static ArrayList metal = new ArrayList(); - public static ArrayList ores = new ArrayList(); - public static HashMap oreToIngot = new HashMap(); - public static ArrayList jamcraftPlayers = new ArrayList(); - public static Random rand = new Random(); - - /** - * Adds gems and jewelry to their appropriate list - */ - public static void addStuff() - { - // Jewels - for(int i = 0; i < 16; i++) - gem.add(new ItemStack(ItemList.crystal, 1, i)); - gem.add(new ItemStack(Blocks.redstone_block)); - gem.add(new ItemStack(Blocks.lapis_block)); - gem.add(new ItemStack(Blocks.obsidian)); - gem.add(new ItemStack(Items.diamond)); - gem.add(new ItemStack(Items.emerald)); - gem.add(new ItemStack(Items.ender_pearl)); - gem.add(new ItemStack(Items.nether_star)); - // Jewelry - jewelry.add(new ItemStack(ItemList.ring)); - jewelry.add(new ItemStack(ItemList.necklace)); - jewelry.add(new ItemStack(ItemList.bracelet)); - jewelry.add(new ItemStack(ItemList.earrings)); - for(Object item: GameData.getItemRegistry()){ - ArrayList items = new ArrayList(); - if (((Item)item).getHasSubtypes()) ((Item)item).getSubItems((Item)item, null, items); - else objects.add(new ItemStack((Item)item)); - - if (!items.isEmpty()) objects.addAll(items); - } - } - - /** - * Adds curse points to a player - * - * @param player the player to add the points to - * @param points amount of curse points - */ - public static void addCursePoints(EntityPlayer player, int points) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setInteger("cursePoints", playerInfo.hasKey("cursePoints") ? (playerInfo.getInteger("cursePoints") + points) : points); - playerInfo.setBoolean("playerCursePointsChanged", true); - } - - public static int getCursePoints(EntityPlayer player) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - return playerInfo.getInteger("cursePoints"); - } - - /** - * Adds the UUID's of the jamcrafters in a list - */ - public static void jamcrafters() - { - jamcraftPlayers.add("d3214311-7550-4c9c-a372-d9292c10b8a6"); - jamcraftPlayers.add("a690119f-c4a2-4bd6-a99d-d63679abb328"); - jamcraftPlayers.add("de7c9903-51fa-4a24-88cd-48faf122ca36"); - jamcraftPlayers.add("70aeb298-3a7b-46da-a393-ab10df9359f2"); - jamcraftPlayers.add("6fbe603c-14bf-4085-afdd-abe592c26e7c"); - jamcraftPlayers.add("b0d21306-36bf-4d85-84df-a956d183c45a"); - jamcraftPlayers.add("1733a31f-01f9-4f4d-82aa-7de30ca810d3"); - jamcraftPlayers.add("4833eacf-1d94-49a7-9f89-4cf88d69dcf9"); - jamcraftPlayers.add("718cf671-9084-4e78-b91f-033e80aa11bf"); - jamcraftPlayers.add("bea5e0c4-85c4-454d-a081-e1eaae6895ee"); - jamcraftPlayers.add("7ecf3e2f-fedf-4f7e-8d24-6731d078db4f"); - jamcraftPlayers.add("1b11ad3a-f0ca-4695-a019-2d7e5d83a5fd"); - jamcraftPlayers.add("3ec9ac58-2f1b-4d3f-b4eb-3b875da877ae"); - jamcraftPlayers.add("cf9fa23f-205e-4eed-aba3-9f2848cd6a4d"); - jamcraftPlayers.add("91880caa-b032-48e3-bfe8-c2c7ed31824e"); - jamcraftPlayers.add("8d0b3804-f71c-4219-897b-8c315448ea7c"); - jamcraftPlayers.add("bbb87dbe-690f-4205-bdc5-72ffb8ebc29d"); - } - - /** - * Adds a random amount of modifiers to a list - * - * @param randValue maximum number of modifiers - * @return a list containing the random modifiers - */ - public static ArrayList addRandomModifiers(int randValue) - { - ArrayList list = new ArrayList(); - for(int i = 0; i < 2 + randValue; i++){ - ItemStack item = objects.get(new Random().nextInt(objects.size())); - item.stackSize = 1 + new Random().nextInt(2); - list.add(item); - } - return list; - } - - /** - * Links ores with their appropriate ingot - */ - public static void addMetals() - { - int index = 0; - while (index < OreDictionary.getOreNames().length){ - Iterator i = OreDictionary.getOres(OreDictionary.getOreNames()[index]).iterator(); - while (i.hasNext()){ - ItemStack nextStack = i.next(); - if ((nextStack.getItem().getUnlocalizedName().toLowerCase().contains("ingot") || nextStack.getItem().getUnlocalizedName().toLowerCase().contains("alloy")) && !nextStack.getItem().getUnlocalizedName().toLowerCase().contains("powder") && !nextStack.getItem().getUnlocalizedName().toLowerCase().contains("dust") && !nextStack.getItem().getUnlocalizedName().toLowerCase().contains("block") && !metal.contains(nextStack)){ - metal.add(nextStack); - if (OreDictionary.getOres(OreDictionary.getOreNames()[index].replace("ingot", "ore")) != null){ - ores.addAll(OreDictionary.getOres(OreDictionary.getOreNames()[index].replace("ingot", "ore"))); - Iterator ores = OreDictionary.getOres(OreDictionary.getOreNames()[index].replace("ingot", "ore")).iterator(); - while (ores.hasNext()){ - ItemStack ore = ores.next(); - oreToIngot.put(ore.getItem(), nextStack); - } - } - } - } - index++; - } - } - - /** - * Checks to see if the specified item is a gem - * - * @param item ItemStack containing the item - * @return is the item a gem - */ - public static boolean isGem(ItemStack item) - { - Iterator i = gem.iterator(); - while (i.hasNext()){ - ItemStack temp = i.next(); - if (temp.getItem() == item.getItem() && temp.getItemDamage() == item.getItemDamage()) return true; - } - return false; - } - - /** - * Checks to see if the specified item is a metal - * - * @param item ItemStack containing the item - * @return is the item a metal - */ - public static boolean isMetal(ItemStack item) - { - Iterator i = metal.iterator(); - while (i.hasNext()){ - ItemStack temp = i.next(); - if (temp.getItem() == item.getItem() && temp.getItemDamage() == item.getItemDamage()) return true; - } - return false; - } - - /** - * Checks to see if the specified item is a piece of jewelry - * - * @param item ItemStack containing the item - * @return is the item a piece of jewelry - */ - public static boolean isJewelry(ItemStack item) - { - Iterator i = jewelry.iterator(); - while (i.hasNext()){ - ItemStack temp = i.next(); - if (temp.getItem() == item.getItem() && temp.getItemDamage() == item.getItemDamage()) return true; - } - return false; - } - - /** - * Checks to see if the specified item is an ore - * - * @param item ItemStack containing the item - * @return is the item an ore - */ - public static boolean isOre(ItemStack item) - { - Iterator i = ores.iterator(); - while (i.hasNext()){ - ItemStack temp = i.next(); - if (temp.getItem() == item.getItem() && temp.getItemDamage() == item.getItemDamage()) return true; - } - return false; - } - - /** - * Gets the ingot from the ore - * - * @param ore the ore - * @return the ingot - */ - public static ItemStack getIngotFromOre(Item ore) - { - return oreToIngot.get(ore); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/93/309bb5e59bd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/93/309bb5e59bd000141b65e2fc7f94332d deleted file mode 100644 index 265bccf..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/93/309bb5e59bd000141b65e2fc7f94332d +++ /dev/null @@ -1,44 +0,0 @@ -package darkknight.jewelrycraft.container; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import darkknight.jewelrycraft.client.GuiGuide; -import darkknight.jewelrycraft.item.ItemList; - -public class GuiTabIntroduction extends GuiTab -{ - public GuiTabIntroduction(int id) - { - super("Introduction", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(ItemList.ring); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - String text = ""; - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - text = "Welcome to Jewelrycraft 2! This mod"; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/93/5050fcc811cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/93/5050fcc811cf00141c41f52413db5e31 deleted file mode 100644 index aa51a8b..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/93/5050fcc811cf00141c41f52413db5e31 +++ /dev/null @@ -1,30 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void action(World world, EntityPlayer player) - { - } - - @Override - public boolean itemToss() - { - return true; - } - - public String getDescription() - { - return "You might need that later"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/94/101de9f4bad000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/94/101de9f4bad000141b65e2fc7f94332d deleted file mode 100644 index 2b60405..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/94/101de9f4bad000141b65e2fc7f94332d +++ /dev/null @@ -1,112 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/94/808d7bfff2cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/94/808d7bfff2cf0014170de422db399e8d deleted file mode 100644 index f8aa647..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/94/808d7bfff2cf0014170de422db399e8d +++ /dev/null @@ -1,64 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null && chunkposition.chunkPosX != (int)player.posX && chunkposition.chunkPosZ != (int)player.posZ){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D*Math.signum((double)chunkposition.chunkPosX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D*Math.signum((double)chunkposition.chunkPosZ); - System.out.println(chunkposition.chunkPosX + " " + player.chunkCoordX); -// player.addChatMessage(new ChatComponentText("You hear a faint whisper telling you: \"You are getting closer, just " + (int)player.getDistance((double)chunkposition.chunkPosX, (double)chunkposition.chunkPosY, (double)chunkposition.chunkPosZ) + " more blocks to go.\"")); - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); -// if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/95/503f48a829de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/95/503f48a829de00141043c3025ec60dfc new file mode 100644 index 0000000..f9152a7 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/95/503f48a829de00141043c3025ec60dfc @@ -0,0 +1,465 @@ +package darkknight.jewelrycraft.events; + +import ibxm.Player; +import java.io.EOFException; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Iterator; +import java.util.List; +import java.util.Random; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompressedStreamTools; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.MathHelper; +import net.minecraftforge.client.event.EntityViewRenderEvent; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.event.entity.item.ItemTossEvent; +import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.living.LivingDeathEvent; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingFallEvent; +import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; +import net.minecraftforge.event.world.WorldEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.config.ConfigHandler; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.entities.EntityHalfHeart; +import darkknight.jewelrycraft.entities.EntityHeart; +import darkknight.jewelrycraft.item.ItemBaseJewelry; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemList; +import darkknight.jewelrycraft.network.PacketClearColorCache; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.network.PacketSendCurseStats; +import darkknight.jewelrycraft.network.PacketSendPlayerInfo; +import darkknight.jewelrycraft.util.BlockUtils; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +/** + * Code taken from OpenBlocks + */ +public class EntityEventHandler +{ + /** + * @param event + */ + @SubscribeEvent + public void onEntityJoinWorld(EntityJoinWorldEvent event) + { + if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + final Entity entity = event.entity; + if (!event.world.isRemote && entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); + if (shouldGiveManual){ + ItemStack manual = new ItemStack(ItemList.guide); + if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); + persistTag.setBoolean("givenGuide", true); + } + boolean render = persistTag.getBoolean("fancyRender"); + JewelrycraftMod.fancyRender = render; + for(Curse curse: Curse.getCurseList()) + if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); + persistTag.setBoolean("sendInfo", true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityUpdate(LivingUpdateEvent event) + { + Entity entity = event.entity; + if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ + entity.motionX *= 0D; + entity.motionZ *= 0D; + entity.motionY *= 0D; + entity.rotationPitch = entity.prevRotationPitch; + entity.rotationYaw = entity.prevRotationYaw; + entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); + if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); + entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); + if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ + player.motionX *= 0D; + player.motionZ *= 0D; + player.motionY *= 0D; + player.rotationPitch = entity.prevRotationPitch; + player.rotationYaw = entity.prevRotationYaw; + playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); + if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); + player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); + } + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if(item != null) ((ItemBaseJewelry)item.getItem()).action(item, player); + } + if (!player.worldObj.isRemote){ + if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); + if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); + } + if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); + if (playerInfo.getBoolean("sendInfo")){ + JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); + playerInfo.setBoolean("sendInfo", false); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); + } + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityAttacked(LivingAttackEvent event) + { + Entity entity = event.entityLiving; + if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); + if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("negateDamage")){ + playerInfo.setBoolean("negateDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); + } + if (player.getHealth() != player.prevHealth){ + if (playerInfo.getFloat("WhiteHeart") > 0){ + playerInfo.setFloat("WhiteHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getFloat("BlueHeart") > 0){ + float damage = playerInfo.getFloat("BlueHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlueHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlueHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + }else if (playerInfo.getFloat("BlackHeart") > 0){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); + List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); + if (enemies != null && !enemies.isEmpty()){ + Iterator iterator = enemies.iterator(); + while (iterator.hasNext()){ + Entity enemy = (Entity)iterator.next(); + enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); + } + } + float damage = playerInfo.getFloat("BlackHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlackHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlackHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + } + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); + }else if (event.source.getEntity() instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.source.getEntity(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("weakDamage")){ + playerInfo.setBoolean("weakDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onPlayerRespawn(PlayerEvent.Clone event) + { + EntityPlayer player = event.entityPlayer; + if (!player.worldObj.isRemote){ + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (playerInfo.hasKey("cursePoints")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + } + playerInfo.setBoolean("sendInfo", true); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param player + * @param playerInfo + * @param curse + */ + public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) + { + if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ + int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); + Curse cur = Curse.availableCurses.get(no); + playerInfo.setInteger(cur.getName(), 1); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) + { + Curse cur = Curse.getCurseList().get(curseID); + if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ + playerInfo.setInteger(cur.getName(), grade); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + @SubscribeEvent + public void itemToss(ItemTossEvent event) + { + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, Variables.MODID); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ + EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); + entityitem.motionX = 0; + entityitem.motionZ = 0; + entityitem.motionY = 0.11000000298023224D; + event.player.worldObj.spawnEntityInWorld(entityitem); + List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; + Iterator plrs = players.iterator(); + while (plrs.hasNext()) + ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); + event.setCanceled(true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void playerFileSave(PlayerEvent.SaveToFile event) + { + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityDead(LivingDeathEvent event) + { + final Entity entity = event.entity; + Random rand = new Random(); + String[] types = {"Red", "Blue", "White", "Black"}; + if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ + EntityLiving live = (EntityLiving)entity; + String type = types[rand.nextInt(4)]; + if (rand.nextInt(6) == 0){ + if (type == "White"){ + EntityHeart h = new EntityHalfHeart(live.worldObj); + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + }else{ + for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ + EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; + EntityHeart h = hearts[rand.nextInt(2)]; + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + } + } + } + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ + for(Curse l: Curse.getCurseList()){ + if (playerInfo.getInteger(l.getName()) == 1){ + playerInfo.setInteger(l.getName(), 0); + if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); + }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); + } + if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + playerInfo.setBoolean("sendInfo", true); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldLoad(WorldEvent.Load event) + { + if (!event.world.isRemote){ + new File(JewelrycraftMod.dir + File.separator + Variables.MODID).mkdirs(); + JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + Variables.MODID, "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); + try{ + if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldSave(WorldEvent.Save event) + { + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogColors(EntityViewRenderEvent.FogColors event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + event.red = 0f; + event.green = 0f; + event.blue = 0f; + } + } + if (event.isCancelable()) event.setCanceled(true); + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogDensity(EntityViewRenderEvent.FogDensity event) + {} + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void renderFog(EntityViewRenderEvent.RenderFogEvent event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); + GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); + } + } + if (event.isCancelable()) event.setCanceled(true); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/96/20fefcf5f6cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/96/20fefcf5f6cf0014170de422db399e8d deleted file mode 100644 index 3353bd7..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/96/20fefcf5f6cf0014170de422db399e8d +++ /dev/null @@ -1,66 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && rand.nextInt(200) == 0) player.setPositionAndUpdate(player.posX + rand.nextInt(30)*(rand.nextBoolean()?-1:1), player.posY, player.posZ + rand.nextInt(30)*(rand.nextBoolean()?-1:1)); - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/96/3071082c4ae0001413f1950b5bdb0d24 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/96/3071082c4ae0001413f1950b5bdb0d24 new file mode 100644 index 0000000..4252c5c --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/96/3071082c4ae0001413f1950b5bdb0d24 @@ -0,0 +1,190 @@ +/* + * Mod made by DarkKnight during the Modjam 3 + * It's an awesome mod + * I love me! :D + */ +package darkknight.jewelrycraft; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Logger; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.gen.structure.MapGenStructureIO; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.oredict.OreDictionary; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.Mod; +import cpw.mods.fml.common.Mod.EventHandler; +import cpw.mods.fml.common.Mod.Instance; +import cpw.mods.fml.common.ModMetadata; +import cpw.mods.fml.common.SidedProxy; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import cpw.mods.fml.common.event.FMLServerStartingEvent; +import cpw.mods.fml.common.network.NetworkRegistry; +import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper; +import cpw.mods.fml.common.registry.EntityRegistry; +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.common.registry.VillagerRegistry; +import cpw.mods.fml.relauncher.Side; +import darkknight.jewelrycraft.block.BlockList; +import darkknight.jewelrycraft.client.gui.GuiHandler; +import darkknight.jewelrycraft.commands.JewelrycraftCommands; +import darkknight.jewelrycraft.config.ConfigHandler; +import darkknight.jewelrycraft.curses.CurseList; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.effects.EffectsList; +import darkknight.jewelrycraft.entities.EntityHalfHeart; +import darkknight.jewelrycraft.entities.EntityHeart; +import darkknight.jewelrycraft.events.BucketHandler; +import darkknight.jewelrycraft.events.EntityEventHandler; +import darkknight.jewelrycraft.events.KeyBindings; +import darkknight.jewelrycraft.item.ItemList; +import darkknight.jewelrycraft.network.PacketClearColorCache; +import darkknight.jewelrycraft.network.PacketKeyPressEvent; +import darkknight.jewelrycraft.network.PacketRequestLiquidData; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.network.PacketRequestSetSlot; +import darkknight.jewelrycraft.network.PacketSendCurseStats; +import darkknight.jewelrycraft.network.PacketSendLiquidData; +import darkknight.jewelrycraft.network.PacketSendPlayerInfo; +import darkknight.jewelrycraft.proxy.CommonProxy; +import darkknight.jewelrycraft.recipes.CraftingRecipes; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.Variables; +import darkknight.jewelrycraft.worldGen.Generation; +import darkknight.jewelrycraft.worldGen.village.ComponentJewelry; +import darkknight.jewelrycraft.worldGen.village.JCTrades; +import darkknight.jewelrycraft.worldGen.village.VillageJewelryHandler; + +@Mod (modid = Variables.MODID, name = Variables.MODNAME, version = Variables.VERSION) +public class JewelrycraftMod +{ + @Instance (Variables.MODID) + public static JewelrycraftMod instance; + @SidedProxy (clientSide = "darkknight.jewelrycraft.proxy.ClientProxy", serverSide = "darkknight.jewelrycraft.proxy.CommonProxy") + public static CommonProxy proxy; + public static final Logger logger = Logger.getLogger("Jewelrycraft"); + public static File dir; + public static CreativeTabs jewelrycraft = new CreativeTabs(Variables.MODID){ + @Override + public Item getTabIconItem() + { + return Item.getItemFromBlock(BlockList.jewelCraftingTable); + } + }; + public static CreativeTabs liquids = new CreativeTabLiquids("Liquids"); + public static NBTTagCompound saveData = new NBTTagCompound(); + public static NBTTagCompound clientData = new NBTTagCompound(); + public static File liquidsConf; + public static SimpleNetworkWrapper netWrapper; + public static boolean fancyRender; + + /** + * Pre initialization of mod stuff. + * + * @param e FMLPreInitializationEvent + * @throws IOException Signals that an I/O exception has occurred. + */ + @EventHandler + public void preInit(FMLPreInitializationEvent e) throws IOException + { + ConfigHandler.preInit(e); + BlockList.preInit(e); + ItemList.preInit(e); + CraftingRecipes.preInit(e); + CurseList.preInit(e); + OreDictionary.registerOre("ingotShadow", new ItemStack(ItemList.shadowIngot)); + OreDictionary.registerOre("oreShadow", new ItemStack(BlockList.shadowOre)); +// VillagerRegistry.instance().registerVillagerId(3000); +// VillagerRegistry.instance().registerVillageTradeHandler(3000, new JCTrades()); +// VillagerRegistry.instance().registerVillageCreationHandler(new VillageJewelryHandler()); +// try{ +// MapGenStructureIO.func_143031_a(ComponentJewelry.class, Variables.MODID + ":Jewelry"); +// } +// catch(Throwable e2){ +// logger.severe("Error registering Jewelrycraft Structures with Vanilla Minecraft: this is expected in versions earlier than 1.7.10"); +// } + MinecraftForge.EVENT_BUS.register(new EntityEventHandler()); + MinecraftForge.EVENT_BUS.register(BucketHandler.INSTANCE); + BucketHandler.INSTANCE.buckets.put(BlockList.moltenMetal, ItemList.bucket); + + ModMetadata metadata = e.getModMetadata(); + List authorList = new ArrayList(); + + authorList.add("OnyxDarkKnight"); + authorList.add("bspkrs"); + authorList.add("domi1819"); + + dir = e.getModConfigurationDirectory(); + proxy.preInit(); + netWrapper = NetworkRegistry.INSTANCE.newSimpleChannel(Variables.MODID); + netWrapper.registerMessage(PacketRequestLiquidData.class, PacketRequestLiquidData.class, 0, Side.SERVER); + netWrapper.registerMessage(PacketSendLiquidData.class, PacketSendLiquidData.class, 1, Side.CLIENT); + netWrapper.registerMessage(PacketClearColorCache.class, PacketClearColorCache.class, 2, Side.CLIENT); + netWrapper.registerMessage(PacketKeyPressEvent.class, PacketKeyPressEvent.class, 3, Side.SERVER); + netWrapper.registerMessage(PacketRequestPlayerInfo.class, PacketRequestPlayerInfo.class, 4, Side.SERVER); + netWrapper.registerMessage(PacketSendPlayerInfo.class, PacketSendPlayerInfo.class, 5, Side.CLIENT); + netWrapper.registerMessage(PacketSendCurseStats.class, PacketSendCurseStats.class, 6, Side.CLIENT); + netWrapper.registerMessage(PacketRequestSetSlot.class, PacketRequestSetSlot.class, 7, Side.SERVER); + + metadata.autogenerated = false; + metadata.authorList = authorList; + metadata.url = "https://github.com/sor1n/Jewelrycraft"; + + createEntity(EntityHeart.class, Variables.MODID + ".Heart", 0xFF0000, 0xFF0000, false); + createEntity(EntityHalfHeart.class, Variables.MODID + ".Half-Heart", 0x000000, 0xFF0000, false); + +// EntityRegistry.addSpawn(EntityMob.class, 5, 2, 3, EnumCreatureType.creature, BiomeGenBase.forest, BiomeGenBase.forestHills, BiomeGenBase.birchForest, BiomeGenBase.birchForestHills, BiomeGenBase.plains, BiomeGenBase.beach, BiomeGenBase.coldBeach, BiomeGenBase.frozenRiver); + } + + public void createEntity(Class entity, String entityName, int solidColor, int spotColor, boolean hasSpawnEgg) + { + int randomID = EntityRegistry.findGlobalUniqueEntityId(); + if(hasSpawnEgg) EntityRegistry.registerGlobalEntityID(entity, entityName, randomID, solidColor, spotColor); + else EntityRegistry.registerGlobalEntityID(entity, entityName, randomID); + EntityRegistry.registerModEntity(entity, entityName, randomID, this, 40, 3, true); + } + + /** + * Initializes the world generation and key bindings. + * + * @param e FMLInitializationEvent + */ + @EventHandler + public void init(FMLInitializationEvent e) + { + GameRegistry.registerWorldGenerator(new Generation(), 0); + if (FMLCommonHandler.instance().getSide() == Side.CLIENT) FMLCommonHandler.instance().bus().register(new KeyBindings()); + new GuiHandler(); + } + + /** + * Post initialization of metals, modifiers and others. + * + * @param e FMLPostInitializationEvent + */ + @EventHandler + public void postInit(FMLPostInitializationEvent e) + { + JewelrycraftUtil.addMetals(); + JewelrycraftUtil.jamcrafters(); + EffectsList.postInit(e); + DamageSourceList.postInit(e); + proxy.postInit(); + } + + @Mod.EventHandler + public void serverLoad(FMLServerStartingEvent event) + { + event.registerServerCommand(new JewelrycraftCommands()); + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/97/30e2d9ce70cf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/97/30e2d9ce70cf00141de78e4a85bb2469 deleted file mode 100644 index aa815f7..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/97/30e2d9ce70cf00141de78e4a85bb2469 +++ /dev/null @@ -1,41 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player, Entity target) - { - if (rand.nextInt(5) == 0 && !world.isRemote && !(target instanceof EntityMob) && target instanceof EntityLiving && !(target instanceof EntityHeart) && !(target instanceof EntityHalfHeart) && target.canAttackWithItem()){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.getFloat("BlackHeart") < 20F) playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 1.0F); - if (player.getMaxHealth() >= 3F){ - player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() - 1.0F); - player.setHealth(player.getHealth() - 1.0F); - } - JewelrycraftUtil.addCursePoints(player, 10); - } - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/97/50e131a6a5ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/97/50e131a6a5ce00141801ff0972626827 deleted file mode 100644 index f5ee061..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/97/50e131a6a5ce00141801ff0972626827 +++ /dev/null @@ -1,447 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if(entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if(playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - playerInfo.setBoolean("stunned", true); - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - // for(Curse curse: Curse.getCurseList()) - // if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if(((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); -// int grade = 1 + player.worldObj.rand.nextInt(2); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if(entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); -// if (!entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/98/30d2e29d08de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/98/30d2e29d08de00141043c3025ec60dfc new file mode 100644 index 0000000..f60630b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/98/30d2e29d08de00141043c3025ec60dfc @@ -0,0 +1,184 @@ +package darkknight.jewelrycraft.model; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + System.out.println((int)f3); + if ((int)f3 != -1){ + int ingotColor = (int)f3; +// int red = ingotColor >> 16 & 0xff; +// int green = ingotColor >> 8 & 0xff; +// int blue = ingotColor & 0xff; + GL11.glColor3f((float)ingotColor % 256, (float)(ingotColor / 256) % 256, (float)(ingotColor / 256 / 256) % 256); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/99/904b914b0ade00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/99/904b914b0ade00141043c3025ec60dfc new file mode 100644 index 0000000..685d6f7 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/99/904b914b0ade00141043c3025ec60dfc @@ -0,0 +1,185 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + System.out.println((int)f3); + if ((int)f3 != -1){ + int ingotColor = Math.abs((int)f3); + int red = (ingotColor >>> 16) & 0xff; + int green = (ingotColor >>> 8) & 0xff; + int blue = ingotColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9a/e0a4fd13b7d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9a/e0a4fd13b7d000141b65e2fc7f94332d deleted file mode 100644 index bf91c81..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9a/e0a4fd13b7d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 153, 15, 12); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() - 20, gui.getTop() + 15); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9a/f09f6139c8df00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9a/f09f6139c8df00141dc6c962aec96210 new file mode 100644 index 0000000..9bfe7af --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9a/f09f6139c8df00141dc6c962aec96210 @@ -0,0 +1,92 @@ +package darkknight.jewelrycraft.effects; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class EffectBlazePowder extends ModifierEffects +{ + public EffectBlazePowder() + { + super(new ItemStack(Items.blaze_powder)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemNecklace && pos != -1){ + // Positive for necklace + if (player.isBurning() && rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0) player.extinguish(); + // Negative for necklace + if (player.isInWater()) player.attackEntityFrom(DamageSource.drown, 1f - (JewelryNBT.numberOfModifiers(item) - 1) * 0.05F); + } + // Negative for bracelet + if (jewelry instanceof ItemBracelet && pos != -1 && player.isInWater()){ + player.motionX *= 0.6D; + player.motionY *= 0.6D; + player.motionZ *= 0.6D; + player.motionY -= 0.02D; + if (player.isCollidedHorizontally) player.motionY = 0.30000001192092896D; + } + // Negative for earrings + if (jewelry instanceof ItemEarrings && pos != -1){ + if (player.getAir() >= 300) player.setAir(player.getAir() / 2); + else player.setAir(player.getAir() - 1); + } + } + + @Override + public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + // Balanced for ring + if (jewelry instanceof ItemRing && pos != -1 && !player.isInWater()) target.setFire(2); + return false; + } + + @Override + public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + // int pos = JewelryNBT.doesModifierExist(item, modifier); + // if (jewelry instanceof ItemEarrings && pos != -1 && rand.nextInt(4) == 0) if (source == DamageSource.lava || source == DamageSource.inFire || source == DamageSource.onFire){ + // //Positive for earrings + // int stackSize = JewelryNBT.modifier(item).get(pos).stackSize; + // player.heal((float)(0.05 * stackSize)); + // return true; + // } + // //Positive for bracelet + // if (jewelry instanceof ItemBracelet && pos != -1) if (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava && player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY - 0.7, player.boundingBox.maxZ), Material.lava) && !player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY + 0.9, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY, player.boundingBox.maxZ), Material.lava)) return true; + return false; + } + + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + {} + + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (jewelry instanceof ItemEarrings && pos != -1 && rand.nextInt(4) == 0) if (source == DamageSource.lava || source == DamageSource.inFire || source == DamageSource.onFire){ + // Positive for earrings + int stackSize = JewelryNBT.modifier(item).get(pos).stackSize; + player.heal((float)(0.05 * stackSize)); + playerInfo.setBoolean("negateDamage", true); + } + // Positive for bracelet + if (jewelry instanceof ItemBracelet && pos != -1) if (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava && player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY - 0.7, player.boundingBox.maxZ), Material.lava) && !player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY + 0.9, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY, player.boundingBox.maxZ), Material.lava)) playerInfo.setBoolean("negateDamage", true); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9b/b08e70da15cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9b/b08e70da15cf00141c41f52413db5e31 deleted file mode 100644 index 9196314..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9b/b08e70da15cf00141c41f52413db5e31 +++ /dev/null @@ -1,460 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - System.out.println("SendInfo"); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(player.worldObj, player); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9c/40075a7e83d000141a1fb02abca5ff55 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9c/40075a7e83d000141a1fb02abca5ff55 deleted file mode 100644 index 897fa1b..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9c/40075a7e83d000141a1fb02abca5ff55 +++ /dev/null @@ -1,76 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.settings.GameSettings.Options; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - private boolean originalVD = false; - private float originalViewDistance; - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && rand.nextInt(500) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30)*(rand.nextBoolean()?-1:1), player.posY, player.posZ + rand.nextInt(30)*(rand.nextBoolean()?-1:1)); - if (jewelry instanceof ItemRing && pos != -1){ - if(!originalVD){ - originalViewDistance = Minecraft.getMinecraft().gameSettings.getOptionFloatValue(Options.RENDER_DISTANCE); - originalVD = true; - } - Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, originalViewDistance); - Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 1.0F); - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9c/a07e323e82d000141a1fb02abca5ff55 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9c/a07e323e82d000141a1fb02abca5ff55 deleted file mode 100644 index 372010e..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9c/a07e323e82d000141a1fb02abca5ff55 +++ /dev/null @@ -1,67 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.settings.GameSettings.Options; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && rand.nextInt(500) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30)*(rand.nextBoolean()?-1:1), player.posY, player.posZ + rand.nextInt(30)*(rand.nextBoolean()?-1:1)); - if (jewelry instanceof ItemRing && pos != -1) Minecraft.getMinecraft().gameSettings.setOptionValue(Options.RENDER_DISTANCE, 4); - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9d/e0dd554e24cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9d/e0dd554e24cf00141c41f52413db5e31 deleted file mode 100644 index 51d2036..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9d/e0dd554e24cf00141c41f52413db5e31 +++ /dev/null @@ -1,460 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - System.out.println(event.isCancelable()); - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9e/009246eabcd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9e/009246eabcd000141b65e2fc7f94332d deleted file mode 100644 index 65d92b8..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9e/009246eabcd000141b65e2fc7f94332d +++ /dev/null @@ -1,244 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_LIGHT0); - GL11.glDisable(GL11.GL_LIGHT1); - } - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - GL11.glDisable(GL11.GL_LIGHT1); - GL11.glDisable(GL11.GL_LIGHT0); - GL11.glDisable(GL11.GL_LIGHTING); - } - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9e/9043b9010cde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9e/9043b9010cde00141043c3025ec60dfc new file mode 100644 index 0000000..1ee0a95 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9e/9043b9010cde00141043c3025ec60dfc @@ -0,0 +1,186 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + if ((int)f3 != -1){ + int ingotColor = (int)f3; + int red = (ingotColor >> 16) & 0xff; + int green = (ingotColor >> 8) & 0xff; + int blue = ingotColor & 0xff; +// System.out.println(red + " " + green + " " + blue); + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glColorMask(true, false, true, false); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/106b3f3e7ecf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/106b3f3e7ecf00141de78e4a85bb2469 deleted file mode 100644 index 8f277f8..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/106b3f3e7ecf00141de78e4a85bb2469 +++ /dev/null @@ -1,81 +0,0 @@ -package darkknight.jewelrycraft.client; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.Item; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.MinecraftForgeClient; -import net.minecraftforge.common.MinecraftForge; -import cpw.mods.fml.client.registry.ClientRegistry; -import cpw.mods.fml.client.registry.RenderingRegistry; -import cpw.mods.fml.common.registry.VillagerRegistry; -import darkknight.jewelrycraft.CommonProxy; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.entities.renders.HeartRender; -import darkknight.jewelrycraft.events.PlayerRenderHandler; -import darkknight.jewelrycraft.events.ScreenHandler; -import darkknight.jewelrycraft.model.ModelDisplayer; -import darkknight.jewelrycraft.model.ModelHalfHeart; -import darkknight.jewelrycraft.model.ModelHandPedestal; -import darkknight.jewelrycraft.model.ModelHeart; -import darkknight.jewelrycraft.model.ModelJewlersCraftingBench; -import darkknight.jewelrycraft.model.ModelMolder; -import darkknight.jewelrycraft.model.ModelShadowEye; -import darkknight.jewelrycraft.model.ModelShadowHand; -import darkknight.jewelrycraft.model.ModelSmelter; -import darkknight.jewelrycraft.tileentity.TileEntityDisplayer; -import darkknight.jewelrycraft.tileentity.TileEntityHandPedestal; -import darkknight.jewelrycraft.tileentity.TileEntityJewelrsCraftingTable; -import darkknight.jewelrycraft.tileentity.TileEntityMolder; -import darkknight.jewelrycraft.tileentity.TileEntityShadowEye; -import darkknight.jewelrycraft.tileentity.TileEntityShadowHand; -import darkknight.jewelrycraft.tileentity.TileEntitySmelter; -import darkknight.jewelrycraft.tileentity.renders.ItemRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityDisplayerRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityHandPedestalRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityJewelrsCraftingTableRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityMolderRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityShadowEyeRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityShadowHandRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntitySmelterRender; -import darkknight.jewelrycraft.util.JewelrycraftUtil; - -public class ClientProxy extends CommonProxy -{ - @Override - public void preInit() - { - ResourceLocation pedestalResourceLocation = new ResourceLocation("jewelrycraft", "textures/tileentities/BricksPedestal.png"); - TileEntityHandPedestalRender pedestalRender = new TileEntityHandPedestalRender(new ModelHandPedestal(pedestalResourceLocation), pedestalResourceLocation); - ResourceLocation shadowResourceLocation = new ResourceLocation("jewelrycraft", "textures/tileentities/ShadowHand.png"); - TileEntityShadowHandRender shadowHandRender = new TileEntityShadowHandRender(new ModelShadowHand(shadowResourceLocation), shadowResourceLocation); - - ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySmelter.class, new TileEntitySmelterRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMolder.class, new TileEntityMolderRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityJewelrsCraftingTable.class, new TileEntityJewelrsCraftingTableRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDisplayer.class, new TileEntityDisplayerRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityShadowEye.class, new TileEntityShadowEyeRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHandPedestal.class, pedestalRender); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityShadowHand.class, shadowHandRender); - - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.displayer), new ItemRender(new TileEntityDisplayerRender(), new TileEntityDisplayer(), new ModelDisplayer())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.jewelCraftingTable), new ItemRender(new TileEntityJewelrsCraftingTableRender(), new TileEntityJewelrsCraftingTable(), new ModelJewlersCraftingBench())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.smelter), new ItemRender(new TileEntitySmelterRender(), new TileEntitySmelter(), new ModelSmelter())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.molder), new ItemRender(new TileEntityMolderRender(), new TileEntityMolder(), new ModelMolder())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.shadowEye), new ItemRender(new TileEntityShadowEyeRender(), new TileEntityShadowEye(), new ModelShadowEye())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.handPedestal), new ItemRender(pedestalRender, new TileEntityHandPedestal(), new ModelHandPedestal(pedestalResourceLocation))); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.shadowHand), new ItemRender(shadowHandRender, new TileEntityShadowHand(), new ModelShadowHand(shadowResourceLocation))); - VillagerRegistry.instance().registerVillagerSkin(3000, new ResourceLocation("jewelrycraft", "textures/entities/jeweler.png")); - - RenderingRegistry.registerEntityRenderingHandler(EntityHeart.class, new HeartRender(new ModelHeart(), 0.25F)); - RenderingRegistry.registerEntityRenderingHandler(EntityHalfHeart.class, new HeartRender(new ModelHalfHeart(), 0.25F)); - - TabRegistry.registerTab(new InventoryTabVanilla()); - TabRegistry.registerTab(new TabJewelry()); - MinecraftForge.EVENT_BUS.register(new TabRegistry()); - MinecraftForge.EVENT_BUS.register(new PlayerRenderHandler()); - ResourceLocation jeweleryTexture = new ResourceLocation("jewelrycraft", "textures/gui/curses.png"); - MinecraftForge.EVENT_BUS.register(new ScreenHandler(Minecraft.getMinecraft(), jeweleryTexture)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/20478b38b4d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/20478b38b4d000141b65e2fc7f94332d deleted file mode 100644 index 2b702e6..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/20478b38b4d000141b65e2fc7f94332d +++ /dev/null @@ -1,195 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 5, y + 20, 145, 150, 35, 30); - name.add(item.getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/20c9f6e114cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/20c9f6e114cf00141c41f52413db5e31 deleted file mode 100644 index b8f0135..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/20c9f6e114cf00141c41f52413db5e31 +++ /dev/null @@ -1,459 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0 && playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(player.worldObj, player); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/60cd21f40bde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/60cd21f40bde00141043c3025ec60dfc new file mode 100644 index 0000000..3d0ebf5 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/9f/60cd21f40bde00141043c3025ec60dfc @@ -0,0 +1,186 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + if ((int)f3 != -1){ + int ingotColor = (int)f3; + int red = (ingotColor >> 16) & 0xff; + int green = (ingotColor >> 8) & 0xff; + int blue = ingotColor & 0xff; + System.out.println(red + " " + green + " " + blue); + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glClearColor(1F, 1F, 1F, 1F); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a0/00a993b822cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a0/00a993b822cf00141c41f52413db5e31 deleted file mode 100644 index 2313b4d..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a0/00a993b822cf00141c41f52413db5e31 +++ /dev/null @@ -1,460 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() <= 0) event.setCanceled(true); - if (player.getHealth() != player.prevHealth || player.getHealth() <= 0){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a1/10a3c349bad000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a1/10a3c349bad000141b65e2fc7f94332d deleted file mode 100644 index edf3c5f..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a1/10a3c349bad000141b65e2fc7f94332d +++ /dev/null @@ -1,78 +0,0 @@ -package darkknight.jewelrycraft.container; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.client.GuiGuide; -import darkknight.jewelrycraft.util.JewelrycraftUtil; - -public class GuiTabGemsAndIngots extends GuiTab -{ - - /** - * @param id - */ - public GuiTabGemsAndIngots(int id) - { - super("Gems and ingots", id); - } - - /** - * @return - */ - @Override - public ItemStack getIcon() - { - return new ItemStack(Items.emerald); - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - for(int i = (page - 1) * 9; i < page * 9; i++) - if (i < JewelrycraftUtil.gem.size()){ - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Gems", gui.getLeft() + xPos + 40, gui.getTop(), 0); - gui.renderItem(JewelrycraftUtil.gem.get(i), gui.getLeft() + xPos + 10, gui.getTop() + 22 + 16 * (i - 9 * (page - 1)), 30f, true); - gui.getFont().drawString(String.format("%-1.18s", JewelrycraftUtil.gem.get(i).getDisplayName()), gui.getLeft() + xPos + 20, gui.getTop() + 12 + 16 * (i - 9 * (page - 1)), 0); - GL11.glDisable(GL11.GL_LIGHTING); - } - page -= JewelrycraftUtil.gem.size() / 9 + 1; - for(int i = (page - 1) * 9; i < page * 9; i++) - if (i < JewelrycraftUtil.metal.size() && page > 0){ - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Ingots", gui.getLeft() + xPos + 40, gui.getTop(), 0); - gui.renderItem(JewelrycraftUtil.metal.get(i).copy(), gui.getLeft() + xPos + 10, gui.getTop() + 22 + 16 * (i - 9 * (page - 1)), 30f, true); - gui.getFont().drawString(String.format("%-1.18s", JewelrycraftUtil.metal.get(i).copy().getDisplayName()), gui.getLeft() + xPos + 20, gui.getTop() + 12 + 16 * (i - 9 * (page - 1)), 0); - GL11.glDisable(GL11.GL_LIGHTING); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @return - */ - @Override - public int getMaxPages() - { - return JewelrycraftUtil.gem.size() / 9 + JewelrycraftUtil.metal.size() / 9 + 2; - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a1/50356899bcd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a1/50356899bcd000141b65e2fc7f94332d deleted file mode 100644 index ce16bc2..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a1/50356899bcd000141b65e2fc7f94332d +++ /dev/null @@ -1,244 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_LIGHT0); - GL11.glEnable(GL11.GL_LIGHT1); - } - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - GL11.glDisable(GL11.GL_LIGHT0); - GL11.glDisable(GL11.GL_LIGHTING); - } - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a1/d03d8f064ae0001413f1950b5bdb0d24 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a1/d03d8f064ae0001413f1950b5bdb0d24 new file mode 100644 index 0000000..5bb50a7 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a1/d03d8f064ae0001413f1950b5bdb0d24 @@ -0,0 +1,190 @@ +/* + * Mod made by DarkKnight during the Modjam 3 + * It's an awesome mod + * I love me! :D + */ +package darkknight.jewelrycraft; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Logger; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.gen.structure.MapGenStructureIO; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.oredict.OreDictionary; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.Mod; +import cpw.mods.fml.common.Mod.EventHandler; +import cpw.mods.fml.common.Mod.Instance; +import cpw.mods.fml.common.ModMetadata; +import cpw.mods.fml.common.SidedProxy; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import cpw.mods.fml.common.event.FMLServerStartingEvent; +import cpw.mods.fml.common.network.NetworkRegistry; +import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper; +import cpw.mods.fml.common.registry.EntityRegistry; +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.common.registry.VillagerRegistry; +import cpw.mods.fml.relauncher.Side; +import darkknight.jewelrycraft.block.BlockList; +import darkknight.jewelrycraft.client.gui.GuiHandler; +import darkknight.jewelrycraft.commands.JewelrycraftCommands; +import darkknight.jewelrycraft.config.ConfigHandler; +import darkknight.jewelrycraft.curses.CurseList; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.effects.EffectsList; +import darkknight.jewelrycraft.entities.EntityHalfHeart; +import darkknight.jewelrycraft.entities.EntityHeart; +import darkknight.jewelrycraft.events.BucketHandler; +import darkknight.jewelrycraft.events.EntityEventHandler; +import darkknight.jewelrycraft.events.KeyBindings; +import darkknight.jewelrycraft.item.ItemList; +import darkknight.jewelrycraft.network.PacketClearColorCache; +import darkknight.jewelrycraft.network.PacketKeyPressEvent; +import darkknight.jewelrycraft.network.PacketRequestLiquidData; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.network.PacketRequestSetSlot; +import darkknight.jewelrycraft.network.PacketSendCurseStats; +import darkknight.jewelrycraft.network.PacketSendLiquidData; +import darkknight.jewelrycraft.network.PacketSendPlayerInfo; +import darkknight.jewelrycraft.proxy.CommonProxy; +import darkknight.jewelrycraft.recipes.CraftingRecipes; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.Variables; +import darkknight.jewelrycraft.worldGen.Generation; +import darkknight.jewelrycraft.worldGen.village.ComponentJewelry; +import darkknight.jewelrycraft.worldGen.village.JCTrades; +import darkknight.jewelrycraft.worldGen.village.VillageJewelryHandler; + +@Mod (modid = Variables.MODID, name = Variables.MODNAME, version = Variables.VERSION) +public class JewelrycraftMod +{ + @Instance (Variables.MODID) + public static JewelrycraftMod instance; + @SidedProxy (clientSide = "darkknight.jewelrycraft.proxy.ClientProxy", serverSide = "darkknight.jewelrycraft.proxy.CommonProxy") + public static CommonProxy proxy; + public static final Logger logger = Logger.getLogger("Jewelrycraft"); + public static File dir; + public static CreativeTabs jewelrycraft = new CreativeTabs(Variables.MODID){ + @Override + public Item getTabIconItem() + { + return Item.getItemFromBlock(BlockList.jewelCraftingTable); + } + }; + public static CreativeTabs liquids = new CreativeTabLiquids("Liquids"); + public static NBTTagCompound saveData = new NBTTagCompound(); + public static NBTTagCompound clientData = new NBTTagCompound(); + public static File liquidsConf; + public static SimpleNetworkWrapper netWrapper; + public static boolean fancyRender; + + /** + * Pre initialization of mod stuff. + * + * @param e FMLPreInitializationEvent + * @throws IOException Signals that an I/O exception has occurred. + */ + @EventHandler + public void preInit(FMLPreInitializationEvent e) throws IOException + { + ConfigHandler.preInit(e); + BlockList.preInit(e); + ItemList.preInit(e); + CraftingRecipes.preInit(e); + CurseList.preInit(e); + OreDictionary.registerOre("ingotShadow", new ItemStack(ItemList.shadowIngot)); + OreDictionary.registerOre("oreShadow", new ItemStack(BlockList.shadowOre)); + VillagerRegistry.instance().registerVillagerId(3000); + VillagerRegistry.instance().registerVillageTradeHandler(3000, new JCTrades()); + VillagerRegistry.instance().registerVillageCreationHandler(new VillageJewelryHandler()); + try{ + MapGenStructureIO.func_143031_a(ComponentJewelry.class, Variables.MODID + ":Jewelry"); + } + catch(Throwable e2){ + logger.severe("Error registering Jewelrycraft Structures with Vanilla Minecraft: this is expected in versions earlier than 1.7.10"); + } + MinecraftForge.EVENT_BUS.register(new EntityEventHandler()); + MinecraftForge.EVENT_BUS.register(BucketHandler.INSTANCE); + BucketHandler.INSTANCE.buckets.put(BlockList.moltenMetal, ItemList.bucket); + + ModMetadata metadata = e.getModMetadata(); + List authorList = new ArrayList(); + + authorList.add("OnyxDarkKnight"); + authorList.add("bspkrs"); + authorList.add("domi1819"); + + dir = e.getModConfigurationDirectory(); + proxy.preInit(); + netWrapper = NetworkRegistry.INSTANCE.newSimpleChannel(Variables.MODID); + netWrapper.registerMessage(PacketRequestLiquidData.class, PacketRequestLiquidData.class, 0, Side.SERVER); + netWrapper.registerMessage(PacketSendLiquidData.class, PacketSendLiquidData.class, 1, Side.CLIENT); + netWrapper.registerMessage(PacketClearColorCache.class, PacketClearColorCache.class, 2, Side.CLIENT); + netWrapper.registerMessage(PacketKeyPressEvent.class, PacketKeyPressEvent.class, 3, Side.SERVER); + netWrapper.registerMessage(PacketRequestPlayerInfo.class, PacketRequestPlayerInfo.class, 4, Side.SERVER); + netWrapper.registerMessage(PacketSendPlayerInfo.class, PacketSendPlayerInfo.class, 5, Side.CLIENT); + netWrapper.registerMessage(PacketSendCurseStats.class, PacketSendCurseStats.class, 6, Side.CLIENT); + netWrapper.registerMessage(PacketRequestSetSlot.class, PacketRequestSetSlot.class, 7, Side.SERVER); + + metadata.autogenerated = false; + metadata.authorList = authorList; + metadata.url = "https://github.com/sor1n/Jewelrycraft"; + + createEntity(EntityHeart.class, Variables.MODID + ".Heart", 0xFF0000, 0xFF0000, false); + createEntity(EntityHalfHeart.class, Variables.MODID + ".Half-Heart", 0x000000, 0xFF0000, false); + +// EntityRegistry.addSpawn(EntityMob.class, 5, 2, 3, EnumCreatureType.creature, BiomeGenBase.forest, BiomeGenBase.forestHills, BiomeGenBase.birchForest, BiomeGenBase.birchForestHills, BiomeGenBase.plains, BiomeGenBase.beach, BiomeGenBase.coldBeach, BiomeGenBase.frozenRiver); + } + + public void createEntity(Class entity, String entityName, int solidColor, int spotColor, boolean hasSpawnEgg) + { + int randomID = EntityRegistry.findGlobalUniqueEntityId(); + if(hasSpawnEgg) EntityRegistry.registerGlobalEntityID(entity, entityName, randomID, solidColor, spotColor); + else EntityRegistry.registerGlobalEntityID(entity, entityName, randomID); + EntityRegistry.registerModEntity(entity, entityName, randomID, this, 40, 3, true); + } + + /** + * Initializes the world generation and key bindings. + * + * @param e FMLInitializationEvent + */ + @EventHandler + public void init(FMLInitializationEvent e) + { + GameRegistry.registerWorldGenerator(new Generation(), 0); + if (FMLCommonHandler.instance().getSide() == Side.CLIENT) FMLCommonHandler.instance().bus().register(new KeyBindings()); + new GuiHandler(); + } + + /** + * Post initialization of metals, modifiers and others. + * + * @param e FMLPostInitializationEvent + */ + @EventHandler + public void postInit(FMLPostInitializationEvent e) + { + JewelrycraftUtil.addMetals(); + JewelrycraftUtil.jamcrafters(); + EffectsList.postInit(e); + DamageSourceList.postInit(e); + proxy.postInit(); + } + + @Mod.EventHandler + public void serverLoad(FMLServerStartingEvent event) + { + event.registerServerCommand(new JewelrycraftCommands()); + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a2/0094abb608de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a2/0094abb608de00141043c3025ec60dfc new file mode 100644 index 0000000..89fcc33 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a2/0094abb608de00141043c3025ec60dfc @@ -0,0 +1,184 @@ +package darkknight.jewelrycraft.model; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + System.out.println((int)f3); + if ((int)f3 != -1){ + int ingotColor = (int)f3; +// int red = ingotColor >> 16 & 0xff; +// int green = ingotColor >> 8 & 0xff; +// int blue = ingotColor & 0xff; + GL11.glColor3f(ingotColor % 256, ingotColor / 256 % 256, (ingotColor / 256 / 256) % 256); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a2/f0aba030bdd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a2/f0aba030bdd000141b65e2fc7f94332d deleted file mode 100644 index 99ce541..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a2/f0aba030bdd000141b65e2fc7f94332d +++ /dev/null @@ -1,125 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.shadowEye), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - - case 5: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_slab, 1, 1), 0, -90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.shadowEye), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/70560814bbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/70560814bbd000141b65e2fc7f94332d deleted file mode 100644 index 80b0ef5..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/70560814bbd000141b65e2fc7f94332d +++ /dev/null @@ -1,112 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/900b847d70cf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/900b847d70cf00141de78e4a85bb2469 deleted file mode 100644 index f33978f..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/900b847d70cf00141de78e4a85bb2469 +++ /dev/null @@ -1,23 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; - -public class CurseFlamingSoul extends Curse -{ - public CurseFlamingSoul(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void action(World world, EntityPlayer player) - { - if (!player.isBurning() && rand.nextInt(20) == 0) player.setFire(20); - } - - public String getDescription() - { - return "Is it me or is it getting hot in here?"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/b0489a1082d000141a1fb02abca5ff55 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/b0489a1082d000141a1fb02abca5ff55 deleted file mode 100644 index 3a91ddf..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a3/b0489a1082d000141a1fb02abca5ff55 +++ /dev/null @@ -1,67 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.settings.GameSettings.Options; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && rand.nextInt(500) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30)*(rand.nextBoolean()?-1:1), player.posY, player.posZ + rand.nextInt(30)*(rand.nextBoolean()?-1:1)); - if (jewelry instanceof ItemRing && pos != -1) Minecraft.getMinecraft().gameSettings.setOptionValue(Options.RENDER_DISTANCE, 0); - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a4/200ef2fd26de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a4/200ef2fd26de00141043c3025ec60dfc new file mode 100644 index 0000000..65c1775 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a4/200ef2fd26de00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 40, 7 + (size + 6) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a4/30f1557c29de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a4/30f1557c29de00141043c3025ec60dfc new file mode 100644 index 0000000..03f6fe0 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a4/30f1557c29de00141043c3025ec60dfc @@ -0,0 +1,121 @@ +/** + * + */ +package darkknight.jewelrycraft.commands; + +/** + * @author Sorin + * + */ +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.command.WrongUsageException; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IChatComponent; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.events.EntityEventHandler; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; + +public class JewelrycraftCommands extends CommandBase +{ + private List aliases; + + public JewelrycraftCommands() + { + this.aliases = new ArrayList(); + this.aliases.add("jw"); + this.aliases.add("jewelry"); + } + + @Override + public String getCommandName() + { + return "jewelrycraft"; + } + + @Override + public String getCommandUsage(ICommandSender var1) + { + String use = "/jewelrycraft [points] | "; + use += "/jewelrycraft |"; + use += "/jewelrycraft "; + return use; + } + + @Override + public List getCommandAliases() + { + return aliases; + } + + @Override + public void processCommand(ICommandSender commandSender, String[] astring) + { + if (astring.length == 0 || astring[0].equals("help")) throw new WrongUsageException(getCommandUsage(commandSender)); + if (astring[0].equals("getCursePoints")){ + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + commandSender.addChatMessage(new ChatComponentTranslation(Integer.toString(JewelrycraftUtil.getCursePoints(entityplayermp)))); + }else if (astring[0].equals("addCursePoints")){ + int points = CommandBase.parseIntWithMin(commandSender, astring[2], 0); + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + JewelrycraftUtil.addCursePoints(entityplayermp, points); + }else if (astring[0].equals("setCursePoints")){ + int points = CommandBase.parseIntWithMin(commandSender, astring[2], 0); + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + JewelrycraftUtil.addCursePoints(entityplayermp, points - JewelrycraftUtil.getCursePoints(entityplayermp)); + }else if (astring[0].equals("addModifier")){ + ItemStack item = new ItemStack(CommandBase.getItemByText(commandSender, astring[1])); + EntityPlayerMP entityplayermp = getPlayer(commandSender, commandSender.getCommandSenderName()); + ArrayList modifier = new ArrayList(); + modifier.add(item); + JewelryNBT.addModifiers(entityplayermp.getCurrentEquippedItem(), modifier); + }else if (astring[0].equals("addCurse")){ + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + int curse = Integer.valueOf(astring[2]); + int grade = Integer.valueOf(astring[3]); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(entityplayermp, "Jewelrycraft"); + if(curse < Curse.getCurseList().size() && grade <= 2) + { + EntityEventHandler.addCurse(entityplayermp, playerInfo, curse, grade); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + else if(curse >= Curse.getCurseList().size()) entityplayermp.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Curse ID exceedes the maximum value of " + (Curse.getCurseList().size() - 1))); + else entityplayermp.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Curse grade exceedes the maximum value of 2")); + + } + } + + @Override + public List addTabCompletionOptions(ICommandSender icommandsender, String[] astring) + { + final List MATCHES = new LinkedList(); + final String ARG_LC = astring[astring.length - 1].toLowerCase(); + if (astring.length == 1){ + if ("addCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addCursePoints"); + if ("getCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("getCursePoints"); + if ("setCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("setCursePoints"); + if ("addModifier".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addModifier"); + if ("addCurse".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addCurse"); + }else if (astring.length == 2){ + if (!astring[0].equals("addModifier")){ + for(String un: MinecraftServer.getServer().getAllUsernames()) + if (un.toLowerCase().startsWith(ARG_LC)) MATCHES.add(un); + }else if (!astring[0].equals("addCurse")) return getListOfStringsFromIterableMatchingLastWord(astring, Item.itemRegistry.getKeys()); + } + return MATCHES.isEmpty() ? null : MATCHES; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a4/80a5a26aa4ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a4/80a5a26aa4ce00141801ff0972626827 deleted file mode 100644 index fc65fd9..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a4/80a5a26aa4ce00141801ff0972626827 +++ /dev/null @@ -1,435 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if(entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - } - if (entity.motionX == 0D && entity.motionY == 0D && entity.motionZ == 0D) entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - // for(Curse curse: Curse.getCurseList()) - // if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if(((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); -// int grade = 1 + player.worldObj.rand.nextInt(2); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if(entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); -// if (!entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a4/b0b5ffe4bcd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a4/b0b5ffe4bcd000141b65e2fc7f94332d deleted file mode 100644 index e5ed8ce..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a4/b0b5ffe4bcd000141b65e2fc7f94332d +++ /dev/null @@ -1,246 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_LIGHT0); - GL11.glDisable(GL11.GL_LIGHT1); - GL11.glDisable(GL11.GL_LIGHT2); - } - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - GL11.glDisable(GL11.GL_LIGHT1); - GL11.glDisable(GL11.GL_LIGHT0); - GL11.glDisable(GL11.GL_LIGHTING); - } - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a5/609c1e85a3d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a5/609c1e85a3d000141b65e2fc7f94332d deleted file mode 100644 index d85620a..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a5/609c1e85a3d000141b65e2fc7f94332d +++ /dev/null @@ -1,68 +0,0 @@ -package darkknight.jewelrycraft.events; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraftforge.client.event.RenderPlayerEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import darkknight.jewelrycraft.entities.renders.RenderHelper; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.model.ModelMask; -import darkknight.jewelrycraft.tileentity.renders.MaskRender; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class PlayerRenderHandler -{ - ModelMask maskModel = new ModelMask(); - MaskRender mask = new MaskRender(); - - public static String[] infamyCache = new String[] {}; - - @SubscribeEvent - public void renderScreen(RenderPlayerEvent.Specials.Post event) - { - if (infamyCache != null) - { - Iterator players = event.entityPlayer.worldObj.playerEntities.iterator(); - - while(players.hasNext()) - { - EntityPlayer player = players.next(); - if (checkPlayerInfamy(player.getDisplayName()) && event.entityPlayer.getDisplayName().equals(player.getDisplayName())) - { - float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick; - float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick; - float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick; - GL11.glPushMatrix(); - GL11.glColor4f(1, 1, 1, 1); - GL11.glRotatef(yawOffset, 0, -1, 0); - GL11.glRotatef(yaw - 90, 0, 1, 0); - GL11.glRotatef(pitch, 0, 0, -1); - GL11.glRotatef(90F, 0, 1F, 0F); - RenderHelper.translateToHeadLevel(player); - GL11.glScalef(1.6f, 1.6f, 1.6f); - GL11.glTranslatef(-0.25F, -0.25F, -0.25F); - mask.doRender(event.entityPlayer, 0F, 0F, 0F, 0F, 0F); - GL11.glPopMatrix(); - } - } - } - } - - /** - * @param string - * @return - */ - private boolean checkPlayerInfamy(String string) - { - for (int i = 0; i < infamyCache.length; i++) - if (infamyCache[i].equals(string)) return true; - - return false; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a6/101bc69d0bde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a6/101bc69d0bde00141043c3025ec60dfc new file mode 100644 index 0000000..6bcb90f --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a6/101bc69d0bde00141043c3025ec60dfc @@ -0,0 +1,185 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + if ((int)f3 != -1){ + int ingotColor = (int)f3; + int red = (ingotColor >> 16) & 0xff; + int green = (ingotColor >> 8) & 0xff; + int blue = ingotColor & 0xff; + System.out.println((int)f3 + " " + ingotColor); + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a6/908c46b1bbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a6/908c46b1bbd000141b65e2fc7f94332d deleted file mode 100644 index cf731eb..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a6/908c46b1bbd000141b65e2fc7f94332d +++ /dev/null @@ -1,114 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 130, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a7/b0f1fd2f02de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a7/b0f1fd2f02de00141043c3025ec60dfc new file mode 100644 index 0000000..9d36c89 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a7/b0f1fd2f02de00141043c3025ec60dfc @@ -0,0 +1,272 @@ +package darkknight.jewelrycraft.tileentity; + +import java.util.ArrayList; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import darkknight.jewelrycraft.block.BlockHandPedestal; +import darkknight.jewelrycraft.block.BlockList; +import darkknight.jewelrycraft.particles.EntityShadowsFX; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class TileEntityShadowEye extends TileEntity +{ + public int opening, timer, t = 20; + public boolean active; + public ArrayList pedestalItems = new ArrayList(); + ResourceLocation particleTexture = new ResourceLocation(Variables.MODID, "textures/particle/shadows.png"); + public EntityPlayer target; + + public TileEntityShadowEye() + { + opening = 1; + timer = 20; + active = false; + } + + /** + * @param nbt + */ + @Override + public void writeToNBT(NBTTagCompound nbt) + { + super.writeToNBT(nbt); + nbt.setInteger("opening", opening); + nbt.setInteger("timer", timer); + nbt.setBoolean("active", active); + } + + /** + * @param nbt + */ + @Override + public void readFromNBT(NBTTagCompound nbt) + { + super.readFromNBT(nbt); + opening = nbt.getInteger("opening"); + timer = nbt.getInteger("timer"); + active = nbt.getBoolean("active"); + } + + /** + * + */ + @Override + public void updateEntity() + { + super.updateEntity(); + boolean valid = isValidStructure(worldObj, xCoord, yCoord, zCoord, blockMetadata); + if (active) timer--; + if (opening == 4 && timer <= 0) active = false; + if (!active && timer <= 0 && opening != 1){ + if (t > 0) t--; + if (t <= 0){ + opening--; + t = 20; + } + } + if (opening == 2 && timer <= 0 && t == 10){ + addData(worldObj, xCoord, yCoord, zCoord); + TileEntityHandPedestal target = (TileEntityHandPedestal)worldObj.getTileEntity(xCoord, yCoord - 3, zCoord); + if (target != null && target.getHeldItemStack() != null) JewelryNBT.addModifiers(target.getHeldItemStack(), pedestalItems); + } + if (active && timer <= 0){ + if (opening < 4){ + opening++; + timer = 20; + } + if (valid && opening == 4) timer = 1000; + else if (!valid){ + active = false; + timer = -1; + } + } + EntityPlayer player1 = worldObj.getClosestPlayer(xCoord, yCoord, zCoord, 7F); + if (player1 != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player1, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", false); + } + if (active && opening == 4){ + float din = 6F; + int i = Minecraft.getMinecraft().gameSettings.particleSetting; + for(float x = -din; x <= din; x += 0.2F) + for(float z = -din; z <= din; z += 0.2F) + if (x * x + z * z >= din * din - 1 && x * x + z * z <= din * din + 1) Minecraft.getMinecraft().effectRenderer.addEffect(new EntityShadowsFX(worldObj, xCoord + x + 0.5F, yCoord - 0.5F, zCoord + z + 0.5F, 15F, 0.04F - 0.01F * i, particleTexture)); + for(int l = 0; l <= 2 - i; l++) + worldObj.spawnParticle("depthsuspend", xCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), yCoord - 2F + worldObj.rand.nextFloat(), zCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), 0, 0, 0); + EntityPlayer player = worldObj.getClosestPlayer(xCoord, yCoord, zCoord, 6F); + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", true); + } + } + } + + /** + * @param world + * @param x + * @param y + * @param z + * @param metadata + * @return + */ + public boolean isValidStructure(World world, int x, int y, int z, int metadata) + { + if (world.getBlockMetadata(x, y, z) == 0 || world.getBlockMetadata(x, y, z) == 2){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x + 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x + 1, y + 1, z) != 5) return false; + if (world.getBlock(x - 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x - 1, y + 1, z) != 5) return false; + // 2nd Layer + if (world.getBlock(x + 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 2, y, z) != 1) return false; + if (world.getBlock(x + 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 1, y, z) != 4) return false; + if (world.getBlock(x - 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 1, y, z) != 5) return false; + if (world.getBlock(x - 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 2, y, z) != 0) return false; + // 3rd Layer + if (world.getBlock(x + 2, y - 1, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 1, z) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x + 2, y - 2, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 2, z) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x + 2, y - 3, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 3, z) != Blocks.stonebrick) return false; + }else if (world.getBlockMetadata(x, y, z) == 1 || world.getBlockMetadata(x, y, z) == 3){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x, y + 1, z + 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z + 1) != 5) return false; + if (world.getBlock(x, y + 1, z - 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z - 1) != 5) return false; + // 2nd Layer + if (world.getBlock(x, y, z + 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 2) != 3) return false; + if (world.getBlock(x, y, z + 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 1) != 6) return false; + if (world.getBlock(x, y, z - 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 1) != 7) return false; + if (world.getBlock(x, y, z - 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 2) != 2) return false; + // 3rd Layer + if (world.getBlock(x, y - 1, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 1, z - 2) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x, y - 2, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 2, z - 2) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x, y - 3, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 3, z - 2) != Blocks.stonebrick) return false; + } + // 3rd Layer + if (world.getBlock(x - 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x - 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + // 4th Layer + if (world.getBlock(x - 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 2, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z + 4) != Blocks.stonebrick) return false; + // 5th Layer + // Pillars + if (world.getBlock(x - 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 3, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z + 4) != Blocks.stonebrick) return false; + // Pedestals + if (!(world.getBlock(x, y - 3, z) instanceof BlockHandPedestal)) return false; + if (world.getBlock(x - 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z + 2) != 1) return false; + if (world.getBlock(x - 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x - 5, y - 3, z) != 2) return false; + if (world.getBlock(x - 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z - 2) != 3) return false; + if (world.getBlock(x - 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z - 4) != 3) return false; + if (world.getBlock(x, y - 3, z - 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z - 5) != 4) return false; + if (world.getBlock(x + 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z - 4) != 5) return false; + if (world.getBlock(x + 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z - 2) != 5) return false; + if (world.getBlock(x + 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x + 5, y - 3, z) != 6) return false; + if (world.getBlock(x + 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z + 2) != 7) return false; + if (world.getBlock(x + 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z + 4) != 7) return false; + if (world.getBlock(x, y - 3, z + 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z + 5) != 0) return false; + if (world.getBlock(x - 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z + 4) != 1) return false; + return true; + } + + /** + * @param world + * @param x + * @param y + * @param z + */ + public void addData(World world, int x, int y, int z) + { + pedestalItems.clear(); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z - 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z + 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z + 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z + 4)); + } + + /** + * @param pedestal + */ + public void addPedestalInfo(TileEntityHandPedestal pedestal) + { + ItemStack heldItemStack; + if (pedestal != null && (heldItemStack = pedestal.getHeldItemStack()) != null){ + if (pedestalItems.isEmpty()) pedestalItems.add(heldItemStack.copy()); + else{ + boolean hasItem = false; + int index = 0; + for(int ind = 0; ind < pedestalItems.size() && !hasItem; ind++) + if (heldItemStack.getItem().equals(pedestalItems.get(ind).getItem()) && heldItemStack.getItemDamage() == pedestalItems.get(ind).getItemDamage()){ + index = ind; + hasItem = true; + if (heldItemStack.hasTagCompound() && pedestalItems.get(ind).hasTagCompound() && !heldItemStack.getTagCompound().equals(pedestalItems.get(ind).getTagCompound())) hasItem = false; + } + if (!hasItem) pedestalItems.add(heldItemStack.copy()); + else{ + ItemStack object = pedestalItems.get(index).copy(); + object.stackSize++; + pedestalItems.set(index, object); + } + } + pedestal.removeHeldItemStack(); + pedestal.openHand(); + } + } + + /** + * @return + */ + @Override + public Packet getDescriptionPacket() + { + NBTTagCompound nbttagcompound = new NBTTagCompound(); + writeToNBT(nbttagcompound); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 1, nbttagcompound); + } + + /** + * @param net + * @param packet + */ + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet) + { + readFromNBT(packet.func_148857_g()); + worldObj.func_147479_m(xCoord, yCoord, zCoord); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a7/e0de3db82bde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a7/e0de3db82bde00141043c3025ec60dfc new file mode 100644 index 0000000..ba0db57 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a7/e0de3db82bde00141043c3025ec60dfc @@ -0,0 +1,123 @@ +/** + * + */ +package darkknight.jewelrycraft.commands; + +/** + * @author Sorin + * + */ +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.command.WrongUsageException; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IChatComponent; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.events.EntityEventHandler; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; + +public class JewelrycraftCommands extends CommandBase +{ + private List aliases; + + public JewelrycraftCommands() + { + this.aliases = new ArrayList(); + this.aliases.add("jw"); + this.aliases.add("jewelry"); + } + + @Override + public String getCommandName() + { + return "jewelrycraft"; + } + + @Override + public String getCommandUsage(ICommandSender var1) + { + String use = "/jewelrycraft [points] | "; +// use += "/jewelrycraft |"; +// use += "/jewelrycraft "; + return use; + } + + @Override + public List getCommandAliases() + { + return aliases; + } + + @Override + public void processCommand(ICommandSender commandSender, String[] astring) + { + if (astring.length == 0 || astring[0].equals("help")) throw new WrongUsageException(getCommandUsage(commandSender)); + if (astring[0].equals("getCursePoints")){ + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + commandSender.addChatMessage(new ChatComponentTranslation(Integer.toString(JewelrycraftUtil.getCursePoints(entityplayermp)))); + }else if (astring[0].equals("addCursePoints")){ + int points = CommandBase.parseIntWithMin(commandSender, astring[2], 0); + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + JewelrycraftUtil.addCursePoints(entityplayermp, points); + }else if (astring[0].equals("setCursePoints")){ + int points = CommandBase.parseIntWithMin(commandSender, astring[2], 0); + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + JewelrycraftUtil.addCursePoints(entityplayermp, points - JewelrycraftUtil.getCursePoints(entityplayermp)); + } +// else if (astring[0].equals("addModifier")){ +// ItemStack item = new ItemStack(CommandBase.getItemByText(commandSender, astring[1])); +// EntityPlayerMP entityplayermp = getPlayer(commandSender, commandSender.getCommandSenderName()); +// ArrayList modifier = new ArrayList(); +// modifier.add(item); +// JewelryNBT.addModifiers(entityplayermp.getCurrentEquippedItem(), modifier); +// } +// else if (astring[0].equals("addCurse")){ +// EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); +// int curse = Integer.valueOf(astring[2]); +// int grade = Integer.valueOf(astring[3]); +// NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(entityplayermp, "Jewelrycraft"); +// if(curse < Curse.getCurseList().size() && grade <= 2) +// { +// EntityEventHandler.addCurse(entityplayermp, playerInfo, curse, grade); +// JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); +// } +// else if(curse >= Curse.getCurseList().size()) entityplayermp.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Curse ID exceedes the maximum value of " + (Curse.getCurseList().size() - 1))); +// else entityplayermp.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Curse grade exceedes the maximum value of 2")); +// +// } + } + + @Override + public List addTabCompletionOptions(ICommandSender icommandsender, String[] astring) + { + final List MATCHES = new LinkedList(); + final String ARG_LC = astring[astring.length - 1].toLowerCase(); + if (astring.length == 1){ + if ("addCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addCursePoints"); + if ("getCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("getCursePoints"); + if ("setCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("setCursePoints"); +// if ("addModifier".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addModifier"); +// if ("addCurse".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addCurse"); + }else if (astring.length == 2){ + if (!astring[0].equals("addModifier")){ + for(String un: MinecraftServer.getServer().getAllUsernames()) + if (un.toLowerCase().startsWith(ARG_LC)) MATCHES.add(un); + }else if (!astring[0].equals("addCurse")) return getListOfStringsFromIterableMatchingLastWord(astring, Item.itemRegistry.getKeys()); + } + return MATCHES.isEmpty() ? null : MATCHES; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/104e81bcbbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/104e81bcbbd000141b65e2fc7f94332d deleted file mode 100644 index 0f3e06a..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/104e81bcbbd000141b65e2fc7f94332d +++ /dev/null @@ -1,114 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 270, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/5091d7a47dcf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/5091d7a47dcf00141de78e4a85bb2469 deleted file mode 100644 index cddddfd..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/5091d7a47dcf00141de78e4a85bb2469 +++ /dev/null @@ -1,223 +0,0 @@ -package darkknight.jewelrycraft.util; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Random; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.oredict.OreDictionary; -import cpw.mods.fml.common.registry.GameData; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.events.EntityEventHandler; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; - -public class JewelrycraftUtil -{ - public static ArrayList objects = new ArrayList(); - public static ArrayList gem = new ArrayList(); - public static ArrayList jewelry = new ArrayList(); - public static ArrayList metal = new ArrayList(); - public static ArrayList ores = new ArrayList(); - public static HashMap oreToIngot = new HashMap(); - public static ArrayList jamcraftPlayers = new ArrayList(); - public static Random rand = new Random(); - - /** - * Adds gems and jewelry to their appropriate list - */ - public static void addStuff() - { - // Jewels - for(int i = 0; i < 16; i++) - gem.add(new ItemStack(ItemList.crystal, 1, i)); - gem.add(new ItemStack(Blocks.redstone_block)); - gem.add(new ItemStack(Blocks.lapis_block)); - gem.add(new ItemStack(Blocks.obsidian)); - gem.add(new ItemStack(Items.diamond)); - gem.add(new ItemStack(Items.emerald)); - gem.add(new ItemStack(Items.ender_pearl)); - gem.add(new ItemStack(Items.nether_star)); - // Jewelry - jewelry.add(new ItemStack(ItemList.ring)); - jewelry.add(new ItemStack(ItemList.necklace)); - jewelry.add(new ItemStack(ItemList.bracelet)); - jewelry.add(new ItemStack(ItemList.earrings)); - for(Object item: GameData.getItemRegistry()){ - ArrayList items = new ArrayList(); - if (item != null && ((Item)item).getHasSubtypes()) ((Item)item).getSubItems((Item)item, - null, - items); - else objects.add(new ItemStack((Item)item)); - - if (!items.isEmpty()) objects.addAll(items); - } - } - - /** - * Adds curse points to a player - * - * @param player the player to add the points to - * @param points amount of curse points - */ - public static void addCursePoints(EntityPlayer player, int points) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setInteger("cursePoints", playerInfo.hasKey("cursePoints") ? (playerInfo.getInteger("cursePoints") + points) : points); - playerInfo.setBoolean("playerCursePointsChanged", true); - } - - public static int getCursePoints(EntityPlayer player) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - return playerInfo.getInteger("cursePoints"); - } - - /** - * Adds the UUID's of the jamcrafters in a list - */ - public static void jamcrafters() - { - jamcraftPlayers.add("d3214311-7550-4c9c-a372-d9292c10b8a6"); - jamcraftPlayers.add("a690119f-c4a2-4bd6-a99d-d63679abb328"); - jamcraftPlayers.add("de7c9903-51fa-4a24-88cd-48faf122ca36"); - jamcraftPlayers.add("70aeb298-3a7b-46da-a393-ab10df9359f2"); - jamcraftPlayers.add("6fbe603c-14bf-4085-afdd-abe592c26e7c"); - jamcraftPlayers.add("b0d21306-36bf-4d85-84df-a956d183c45a"); - jamcraftPlayers.add("1733a31f-01f9-4f4d-82aa-7de30ca810d3"); - jamcraftPlayers.add("4833eacf-1d94-49a7-9f89-4cf88d69dcf9"); - jamcraftPlayers.add("718cf671-9084-4e78-b91f-033e80aa11bf"); - jamcraftPlayers.add("bea5e0c4-85c4-454d-a081-e1eaae6895ee"); - jamcraftPlayers.add("7ecf3e2f-fedf-4f7e-8d24-6731d078db4f"); - jamcraftPlayers.add("1b11ad3a-f0ca-4695-a019-2d7e5d83a5fd"); - jamcraftPlayers.add("3ec9ac58-2f1b-4d3f-b4eb-3b875da877ae"); - jamcraftPlayers.add("cf9fa23f-205e-4eed-aba3-9f2848cd6a4d"); - jamcraftPlayers.add("91880caa-b032-48e3-bfe8-c2c7ed31824e"); - jamcraftPlayers.add("8d0b3804-f71c-4219-897b-8c315448ea7c"); - jamcraftPlayers.add("bbb87dbe-690f-4205-bdc5-72ffb8ebc29d"); - } - - /** - * Adds a random amount of modifiers to a list - * - * @param randValue maximum number of modifiers - * @return a list containing the random modifiers - */ - public static ArrayList addRandomModifiers(int randValue) - { - ArrayList list = new ArrayList(); - for(int i = 0; i < 2 + randValue; i++){ - ItemStack item = objects.get(new Random().nextInt(objects.size())); - item.stackSize = 1 + new Random().nextInt(2); - list.add(item); - } - return list; - } - - /** - * Links ores with their appropriate ingot - */ - public static void addMetals() - { - int index = 0; - while (index < OreDictionary.getOreNames().length){ - Iterator i = OreDictionary.getOres(OreDictionary.getOreNames()[index]).iterator(); - while (i.hasNext()){ - ItemStack nextStack = i.next(); - if ((nextStack.getItem().getUnlocalizedName().toLowerCase().contains("ingot") || nextStack.getItem().getUnlocalizedName().toLowerCase().contains("alloy")) && !nextStack.getItem().getUnlocalizedName().toLowerCase().contains("powder") && !nextStack.getItem().getUnlocalizedName().toLowerCase().contains("dust") && !nextStack.getItem().getUnlocalizedName().toLowerCase().contains("block") && !metal.contains(nextStack)){ - metal.add(nextStack); - if (OreDictionary.getOres(OreDictionary.getOreNames()[index].replace("ingot", "ore")) != null){ - ores.addAll(OreDictionary.getOres(OreDictionary.getOreNames()[index].replace("ingot", "ore"))); - Iterator ores = OreDictionary.getOres(OreDictionary.getOreNames()[index].replace("ingot", "ore")).iterator(); - while (ores.hasNext()){ - ItemStack ore = ores.next(); - oreToIngot.put(ore.getItem(), nextStack); - } - } - } - } - index++; - } - } - - /** - * Checks to see if the specified item is a gem - * - * @param item ItemStack containing the item - * @return is the item a gem - */ - public static boolean isGem(ItemStack item) - { - Iterator i = gem.iterator(); - while (i.hasNext()){ - ItemStack temp = i.next(); - if (temp.getItem() == item.getItem() && temp.getItemDamage() == item.getItemDamage()) return true; - } - return false; - } - - /** - * Checks to see if the specified item is a metal - * - * @param item ItemStack containing the item - * @return is the item a metal - */ - public static boolean isMetal(ItemStack item) - { - Iterator i = metal.iterator(); - while (i.hasNext()){ - ItemStack temp = i.next(); - if (temp.getItem() == item.getItem() && temp.getItemDamage() == item.getItemDamage()) return true; - } - return false; - } - - /** - * Checks to see if the specified item is a piece of jewelry - * - * @param item ItemStack containing the item - * @return is the item a piece of jewelry - */ - public static boolean isJewelry(ItemStack item) - { - Iterator i = jewelry.iterator(); - while (i.hasNext()){ - ItemStack temp = i.next(); - if (temp.getItem() == item.getItem() && temp.getItemDamage() == item.getItemDamage()) return true; - } - return false; - } - - /** - * Checks to see if the specified item is an ore - * - * @param item ItemStack containing the item - * @return is the item an ore - */ - public static boolean isOre(ItemStack item) - { - Iterator i = ores.iterator(); - while (i.hasNext()){ - ItemStack temp = i.next(); - if (temp.getItem() == item.getItem() && temp.getItemDamage() == item.getItemDamage()) return true; - } - return false; - } - - /** - * Gets the ingot from the ore - * - * @param ore the ore - * @return the ingot - */ - public static ItemStack getIngotFromOre(Item ore) - { - return oreToIngot.get(ore); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/90919bf50ade00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/90919bf50ade00141043c3025ec60dfc new file mode 100644 index 0000000..5f2a423 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/90919bf50ade00141043c3025ec60dfc @@ -0,0 +1,185 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + System.out.println((int)f3); + if ((int)f3 != -1){ + int ingotColor = Math.abs((int)f3); + int red = (ingotColor >> 16) & 0xff; + int green = (ingotColor >> 8) & 0xff; + int blue = ingotColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/b0e9a94b82d000141a1fb02abca5ff55 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/b0e9a94b82d000141a1fb02abca5ff55 deleted file mode 100644 index b558ba7..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/b0e9a94b82d000141a1fb02abca5ff55 +++ /dev/null @@ -1,67 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.settings.GameSettings.Options; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && rand.nextInt(500) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30)*(rand.nextBoolean()?-1:1), player.posY, player.posZ + rand.nextInt(30)*(rand.nextBoolean()?-1:1)); - if (jewelry instanceof ItemRing && pos != -1) Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 4.0F); - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/e02833072fde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/e02833072fde00141043c3025ec60dfc new file mode 100644 index 0000000..1c22d50 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a8/e02833072fde00141043c3025ec60dfc @@ -0,0 +1,46 @@ +/** + * + */ +package darkknight.jewelrycraft.entities; + +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.world.World; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +/** + * @author Sorin + */ +public class EntityHalfHeart extends EntityHeart +{ + public EntityHalfHeart(World world) + { + super(world); + } + + @Override + public void onCollideWithPlayer(EntityPlayer player) + { + if (!player.worldObj.isRemote){ + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (getType().equals("Red") && player.getHealth() < player.getMaxHealth()){ + player.heal(1f); + this.setDead(); + }else if (getType().equals("White") && playerInfo.getFloat("WhiteHeart") > 0.1F){ + playerInfo.setFloat(getType() + "Heart", 0F); + player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() + 2f); + this.setDead(); + }else if (!getType().equals("Red")){ + playerInfo.setFloat(getType() + "Heart", playerInfo.getFloat(getType() + "Heart") + 1.0F <= 20f ? playerInfo.getFloat(getType() + "Heart") + 1.0F : 20f); + this.setDead(); + } + } + else JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a9/702aada322cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a9/702aada322cf00141c41f52413db5e31 deleted file mode 100644 index 28e5300..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a9/702aada322cf00141c41f52413db5e31 +++ /dev/null @@ -1,460 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth || player.getHealth() == 0){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - event.setCanceled(true); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a9/d09fd6372bde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a9/d09fd6372bde00141043c3025ec60dfc new file mode 100644 index 0000000..a7f88b5 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a9/d09fd6372bde00141043c3025ec60dfc @@ -0,0 +1,466 @@ +package darkknight.jewelrycraft.events; + +import ibxm.Player; +import java.io.EOFException; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Iterator; +import java.util.List; +import java.util.Random; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompressedStreamTools; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.MathHelper; +import net.minecraftforge.client.event.EntityViewRenderEvent; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.event.entity.item.ItemTossEvent; +import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.living.LivingDeathEvent; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingFallEvent; +import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; +import net.minecraftforge.event.world.WorldEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.config.ConfigHandler; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.entities.EntityHalfHeart; +import darkknight.jewelrycraft.entities.EntityHeart; +import darkknight.jewelrycraft.item.ItemBaseJewelry; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemList; +import darkknight.jewelrycraft.network.PacketClearColorCache; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.network.PacketSendCurseStats; +import darkknight.jewelrycraft.network.PacketSendPlayerInfo; +import darkknight.jewelrycraft.util.BlockUtils; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +/** + * Code taken from OpenBlocks + */ +public class EntityEventHandler +{ + /** + * @param event + */ + @SubscribeEvent + public void onEntityJoinWorld(EntityJoinWorldEvent event) + { + if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + final Entity entity = event.entity; + if (!event.world.isRemote && entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); + if (shouldGiveManual){ + ItemStack manual = new ItemStack(ItemList.guide); + if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); + persistTag.setBoolean("givenGuide", true); + } + boolean render = persistTag.getBoolean("fancyRender"); + JewelrycraftMod.fancyRender = render; + for(Curse curse: Curse.getCurseList()) + if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); + persistTag.setBoolean("sendInfo", true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityUpdate(LivingUpdateEvent event) + { + Entity entity = event.entity; + if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ + entity.motionX *= 0D; + entity.motionZ *= 0D; + entity.motionY *= 0D; + entity.rotationPitch = entity.prevRotationPitch; + entity.rotationYaw = entity.prevRotationYaw; + entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); + if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); + entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); + if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ + player.motionX *= 0D; + player.motionZ *= 0D; + player.motionY *= 0D; + player.rotationPitch = entity.prevRotationPitch; + player.rotationYaw = entity.prevRotationYaw; + playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); + if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); + player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); + } + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if(item != null) ((ItemBaseJewelry)item.getItem()).action(item, player); + } + if (!player.worldObj.isRemote){ + if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); + if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); + } + if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); + if (playerInfo.getBoolean("sendInfo")){ + JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); + playerInfo.setBoolean("sendInfo", false); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); + } + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityAttacked(LivingAttackEvent event) + { + Entity entity = event.entityLiving; + if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); + if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("negateDamage")){ + playerInfo.setBoolean("negateDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); + } + if (player.getHealth() != player.prevHealth){ + if (playerInfo.getFloat("WhiteHeart") > 0){ + playerInfo.setFloat("WhiteHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getFloat("BlueHeart") > 0){ + float damage = playerInfo.getFloat("BlueHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlueHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlueHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + }else if (playerInfo.getFloat("BlackHeart") > 0){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); + List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); + if (enemies != null && !enemies.isEmpty()){ + Iterator iterator = enemies.iterator(); + while (iterator.hasNext()){ + Entity enemy = (Entity)iterator.next(); + enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); + } + } + float damage = playerInfo.getFloat("BlackHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlackHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlackHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + } + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); + }else if (event.source.getEntity() instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.source.getEntity(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("weakDamage")){ + playerInfo.setBoolean("weakDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onPlayerRespawn(PlayerEvent.Clone event) + { + EntityPlayer player = event.entityPlayer; + if (!player.worldObj.isRemote){ + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (playerInfo.hasKey("cursePoints")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + } + playerInfo.setBoolean("sendInfo", true); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param player + * @param playerInfo + * @param curse + */ + public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) + { + System.out.println(curseNo + " " + (Curse.getCurseList().size() - Curse.availableCurses.size())); + if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ + int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); + Curse cur = Curse.availableCurses.get(no); + playerInfo.setInteger(cur.getName(), 1); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) + { + Curse cur = Curse.getCurseList().get(curseID); + if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ + playerInfo.setInteger(cur.getName(), grade); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + @SubscribeEvent + public void itemToss(ItemTossEvent event) + { + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, Variables.MODID); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ + EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); + entityitem.motionX = 0; + entityitem.motionZ = 0; + entityitem.motionY = 0.11000000298023224D; + event.player.worldObj.spawnEntityInWorld(entityitem); + List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; + Iterator plrs = players.iterator(); + while (plrs.hasNext()) + ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); + event.setCanceled(true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void playerFileSave(PlayerEvent.SaveToFile event) + { + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityDead(LivingDeathEvent event) + { + final Entity entity = event.entity; + Random rand = new Random(); + String[] types = {"Red", "Blue", "White", "Black"}; + if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ + EntityLiving live = (EntityLiving)entity; + String type = types[rand.nextInt(4)]; + if (rand.nextInt(6) == 0){ + if (type == "White"){ + EntityHeart h = new EntityHalfHeart(live.worldObj); + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + }else{ + for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ + EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; + EntityHeart h = hearts[rand.nextInt(2)]; + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + } + } + } + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ + for(Curse l: Curse.getCurseList()){ + if (playerInfo.getInteger(l.getName()) == 1){ + playerInfo.setInteger(l.getName(), 0); + if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); + }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); + } + if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + playerInfo.setBoolean("sendInfo", true); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldLoad(WorldEvent.Load event) + { + if (!event.world.isRemote){ + new File(JewelrycraftMod.dir + File.separator + Variables.MODID).mkdirs(); + JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + Variables.MODID, "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); + try{ + if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldSave(WorldEvent.Save event) + { + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogColors(EntityViewRenderEvent.FogColors event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + event.red = 0f; + event.green = 0f; + event.blue = 0f; + } + } + if (event.isCancelable()) event.setCanceled(true); + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogDensity(EntityViewRenderEvent.FogDensity event) + {} + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void renderFog(EntityViewRenderEvent.RenderFogEvent event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); + GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); + } + } + if (event.isCancelable()) event.setCanceled(true); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a9/d0cb2f4b7ecf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a9/d0cb2f4b7ecf00141de78e4a85bb2469 deleted file mode 100644 index fb7b38f..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/a9/d0cb2f4b7ecf00141de78e4a85bb2469 +++ /dev/null @@ -1,87 +0,0 @@ -package darkknight.jewelrycraft.client; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.Item; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.MinecraftForgeClient; -import net.minecraftforge.common.MinecraftForge; -import cpw.mods.fml.client.registry.ClientRegistry; -import cpw.mods.fml.client.registry.RenderingRegistry; -import cpw.mods.fml.common.registry.VillagerRegistry; -import darkknight.jewelrycraft.CommonProxy; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.entities.renders.HeartRender; -import darkknight.jewelrycraft.events.PlayerRenderHandler; -import darkknight.jewelrycraft.events.ScreenHandler; -import darkknight.jewelrycraft.model.ModelDisplayer; -import darkknight.jewelrycraft.model.ModelHalfHeart; -import darkknight.jewelrycraft.model.ModelHandPedestal; -import darkknight.jewelrycraft.model.ModelHeart; -import darkknight.jewelrycraft.model.ModelJewlersCraftingBench; -import darkknight.jewelrycraft.model.ModelMolder; -import darkknight.jewelrycraft.model.ModelShadowEye; -import darkknight.jewelrycraft.model.ModelShadowHand; -import darkknight.jewelrycraft.model.ModelSmelter; -import darkknight.jewelrycraft.tileentity.TileEntityDisplayer; -import darkknight.jewelrycraft.tileentity.TileEntityHandPedestal; -import darkknight.jewelrycraft.tileentity.TileEntityJewelrsCraftingTable; -import darkknight.jewelrycraft.tileentity.TileEntityMolder; -import darkknight.jewelrycraft.tileentity.TileEntityShadowEye; -import darkknight.jewelrycraft.tileentity.TileEntityShadowHand; -import darkknight.jewelrycraft.tileentity.TileEntitySmelter; -import darkknight.jewelrycraft.tileentity.renders.ItemRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityDisplayerRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityHandPedestalRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityJewelrsCraftingTableRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityMolderRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityShadowEyeRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityShadowHandRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntitySmelterRender; -import darkknight.jewelrycraft.util.JewelrycraftUtil; - -public class ClientProxy extends CommonProxy -{ - @Override - public void preInit() - { - ResourceLocation pedestalResourceLocation = new ResourceLocation("jewelrycraft", "textures/tileentities/BricksPedestal.png"); - TileEntityHandPedestalRender pedestalRender = new TileEntityHandPedestalRender(new ModelHandPedestal(pedestalResourceLocation), pedestalResourceLocation); - ResourceLocation shadowResourceLocation = new ResourceLocation("jewelrycraft", "textures/tileentities/ShadowHand.png"); - TileEntityShadowHandRender shadowHandRender = new TileEntityShadowHandRender(new ModelShadowHand(shadowResourceLocation), shadowResourceLocation); - - ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySmelter.class, new TileEntitySmelterRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMolder.class, new TileEntityMolderRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityJewelrsCraftingTable.class, new TileEntityJewelrsCraftingTableRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDisplayer.class, new TileEntityDisplayerRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityShadowEye.class, new TileEntityShadowEyeRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHandPedestal.class, pedestalRender); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityShadowHand.class, shadowHandRender); - - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.displayer), new ItemRender(new TileEntityDisplayerRender(), new TileEntityDisplayer(), new ModelDisplayer())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.jewelCraftingTable), new ItemRender(new TileEntityJewelrsCraftingTableRender(), new TileEntityJewelrsCraftingTable(), new ModelJewlersCraftingBench())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.smelter), new ItemRender(new TileEntitySmelterRender(), new TileEntitySmelter(), new ModelSmelter())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.molder), new ItemRender(new TileEntityMolderRender(), new TileEntityMolder(), new ModelMolder())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.shadowEye), new ItemRender(new TileEntityShadowEyeRender(), new TileEntityShadowEye(), new ModelShadowEye())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.handPedestal), new ItemRender(pedestalRender, new TileEntityHandPedestal(), new ModelHandPedestal(pedestalResourceLocation))); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.shadowHand), new ItemRender(shadowHandRender, new TileEntityShadowHand(), new ModelShadowHand(shadowResourceLocation))); - VillagerRegistry.instance().registerVillagerSkin(3000, new ResourceLocation("jewelrycraft", "textures/entities/jeweler.png")); - - RenderingRegistry.registerEntityRenderingHandler(EntityHeart.class, new HeartRender(new ModelHeart(), 0.25F)); - RenderingRegistry.registerEntityRenderingHandler(EntityHalfHeart.class, new HeartRender(new ModelHalfHeart(), 0.25F)); - - TabRegistry.registerTab(new InventoryTabVanilla()); - TabRegistry.registerTab(new TabJewelry()); - MinecraftForge.EVENT_BUS.register(new TabRegistry()); - MinecraftForge.EVENT_BUS.register(new PlayerRenderHandler()); - ResourceLocation jeweleryTexture = new ResourceLocation("jewelrycraft", "textures/gui/curses.png"); - MinecraftForge.EVENT_BUS.register(new ScreenHandler(Minecraft.getMinecraft(), jeweleryTexture)); - } - - @Override - public void postInit() - { - - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/00c84d88bed000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/00c84d88bed000141b65e2fc7f94332d deleted file mode 100644 index 673ca0f..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/00c84d88bed000141b65e2fc7f94332d +++ /dev/null @@ -1,241 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.block.BlockShadowEye; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else if (item.isItemEqual(new ItemStack(BlockList.handPedestal))){ - GL11.glScalef(1.2F, 1.2F, 1.2F); - GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0F, 0.1F, 0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ - // GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if (xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - if (Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockShadowEye) GL11.glTranslatef(0F, 0F, 0.025F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/30b09a9679cf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/30b09a9679cf00141de78e4a85bb2469 deleted file mode 100644 index d3cb52d..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/aa/30b09a9679cf00141de78e4a85bb2469 +++ /dev/null @@ -1,99 +0,0 @@ -package darkknight.jewelrycraft.events; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.GuiChat; -import net.minecraft.client.gui.ScaledResolution; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.MathHelper; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.event.RenderGameOverlayEvent; -import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; -import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import darkknight.jewelrycraft.curses.Curse; - -public class ScreenHandler extends Gui -{ - private Minecraft mc; - public static NBTTagCompound tagCache = null; - public static int cooldown; - static ResourceLocation texture; - static ResourceLocation hearts = new ResourceLocation("jewelrycraft", "textures/gui/hearts.png"); - - public ScreenHandler(Minecraft mc, ResourceLocation tex) - { - super(); - this.mc = mc; - texture = tex; - } - - @SubscribeEvent - public void renderScreen(RenderGameOverlayEvent event) - { -// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); - if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; - if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ - int count = 0; - int size = 32; - ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); - if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ - mc.renderEngine.bindTexture(texture); - for(Curse curse: Curse.getCurseList()){ - if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ - Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); - Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); - count++; - } - } - count = 0; - for(Curse curse: Curse.getCurseList()) - if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ - int tag = curse.getID(); - GL11.glPushMatrix(); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glScalef(0.5f, 0.5f, 0.0f); - drawTexturedModalRect(4, 4 + (size + 12) * count, tag % size * size, tag / size * size, size, size); - GL11.glPopMatrix(); - count++; - } - count = 0; - size = 16; - for(Curse curse: Curse.getCurseList()) - if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ - int tag = curse.getID(); - mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 20, 7 + (size + 6) * count, 16777215); - if (tagCache.getInteger(curse.getName()) == 2){ - mc.renderEngine.bindTexture(hearts); - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - GL11.glColor4f(1f, 1f, 1f, 0.5f); - drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); - GL11.glPopMatrix(); - } - count++; - } - } - GL11.glColor4f(1f, 1f, 1f, 1.0f); - mc.renderEngine.bindTexture(hearts); - count = 0; - if (tagCache.getFloat("BlueHeart") > 0){ - for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) - drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); - if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); - } - count++; - if (tagCache.getFloat("BlackHeart") > 0){ - for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) - drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); - if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); - } - count++; - if (tagCache.getFloat("WhiteHeart") > 0) - drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); - } - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/20e316d367dd001412dce27813e7be4a b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/20e316d367dd001412dce27813e7be4a new file mode 100644 index 0000000..55ef447 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/20e316d367dd001412dce27813e7be4a @@ -0,0 +1,123 @@ +package darkknight.jewelrycraft.events; + +import java.util.Iterator; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderPlayerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.entities.renders.RenderHelper; +import darkknight.jewelrycraft.item.render.BraceletRender; +import darkknight.jewelrycraft.item.render.EarringsRender; +import darkknight.jewelrycraft.item.render.MaskRender; +import darkknight.jewelrycraft.model.ModelBracelet; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class PlayerRenderHandler +{ + MaskRender mask = new MaskRender(); + EarringsRender earrings = new EarringsRender(); + BraceletRender bracelet = new BraceletRender(); + public static String[] infamyCache = new String[]{}; + + @SubscribeEvent + public void renderScreen(RenderPlayerEvent.Specials.Post event) + { + ModelBiped main = event.renderer.modelBipedMain; + Iterator players = event.entityPlayer.worldObj.playerEntities.iterator(); + if (infamyCache != null){ + while (players.hasNext()){ + EntityPlayer player = players.next(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + System.out.println(event.entityPlayer + " | " + player + " | " + playerInfo); + if (checkPlayerInfamy(player.getDisplayName()) && event.entityPlayer.getDisplayName().equals(player.getDisplayName())){ + float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick; + float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick; + float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick; + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glRotatef(yawOffset, 0, -1, 0); + GL11.glRotatef(yaw - 90, 0, 1, 0); + GL11.glRotatef(pitch, 0, 0, -1); + GL11.glRotatef(90F, 0, 1F, 0F); + RenderHelper.translateToHeadLevel(player); + GL11.glScalef(1.6f, 1.6f, 1.6f); + GL11.glTranslatef(-0.25F, -0.25F, -0.25F); + mask.doRender(event.entityPlayer, 0F, 0F, 0F, 0F, 0F); + GL11.glPopMatrix(); + } + if (playerInfo.hasKey("ext17") && player == event.entityPlayer){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext17"); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick; + float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick; + float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick; + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glRotatef(yawOffset, 0, -1, 0); + GL11.glRotatef(yaw - 90, 0, 1, 0); + GL11.glRotatef(pitch, 0, 0, -1); + GL11.glRotatef(90F, 0, 1F, 0F); + RenderHelper.translateToHeadLevel(player); + GL11.glScalef(0.07f, 0.07f, 0.07f); + GL11.glTranslatef(0.0F, 3.0F, -2.0F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + earrings.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0F); + GL11.glPopMatrix(); + } + for(int i = 10; i <= 13; i++) + if (playerInfo.hasKey("ext" + i) && player == event.entityPlayer){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glTranslatef((i / 12 == 1) ? -0.275F : 0.475F, 0.2F + ((i / 12 == 1) ? (i - 12) * 0.08F : (i - 10) * 0.08F), 0F); + if (player.isSneaking()) GL11.glTranslatef(0F, 0F, -((i == 10 || i == 12) ? (0.1F) : 0.05F)); + if (i / 12 == 1){ + GL11.glScalef(0.05f, 0.03f, 0.05f); + GL11.glRotatef(main.bipedRightArm.rotateAngleX * (180F / (float)Math.PI), 1F, 0F, 0F); + GL11.glRotatef(main.bipedRightArm.rotateAngleY * (180F / (float)Math.PI), 0F, 1F, 0F); + GL11.glRotatef(main.bipedRightArm.rotateAngleZ * (180F / (float)Math.PI), 0F, 0F, 1F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + bracelet.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0.0F); + }else{ + GL11.glScalef(0.05f, 0.03f, 0.05f); + GL11.glRotatef(main.bipedLeftArm.rotateAngleX * (180F / (float)Math.PI), 1F, 0F, 0F); + GL11.glRotatef(main.bipedLeftArm.rotateAngleY * (180F / (float)Math.PI), 0F, 1F, 0F); + GL11.glRotatef(main.bipedLeftArm.rotateAngleZ * (180F / (float)Math.PI), 0F, 0F, 1F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + bracelet.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0F); + } + GL11.glPopMatrix(); + } + } + } + } + + /** + * @param string + * @return + */ + private boolean checkPlayerInfamy(String string) + { + for(int i = 0; i < infamyCache.length; i++) + if (infamyCache[i].equals(string)) return true; + return false; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/6017c8e9b5d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/6017c8e9b5d000141b65e2fc7f94332d deleted file mode 100644 index d0816ec..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/6017c8e9b5d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 145, 150, 35, 30); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/b01141212bde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/b01141212bde00141043c3025ec60dfc new file mode 100644 index 0000000..e75c5a2 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ab/b01141212bde00141043c3025ec60dfc @@ -0,0 +1,466 @@ +package darkknight.jewelrycraft.events; + +import ibxm.Player; +import java.io.EOFException; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Iterator; +import java.util.List; +import java.util.Random; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompressedStreamTools; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.MathHelper; +import net.minecraftforge.client.event.EntityViewRenderEvent; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.event.entity.item.ItemTossEvent; +import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.living.LivingDeathEvent; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingFallEvent; +import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; +import net.minecraftforge.event.world.WorldEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.config.ConfigHandler; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.entities.EntityHalfHeart; +import darkknight.jewelrycraft.entities.EntityHeart; +import darkknight.jewelrycraft.item.ItemBaseJewelry; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemList; +import darkknight.jewelrycraft.network.PacketClearColorCache; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.network.PacketSendCurseStats; +import darkknight.jewelrycraft.network.PacketSendPlayerInfo; +import darkknight.jewelrycraft.util.BlockUtils; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +/** + * Code taken from OpenBlocks + */ +public class EntityEventHandler +{ + /** + * @param event + */ + @SubscribeEvent + public void onEntityJoinWorld(EntityJoinWorldEvent event) + { + if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + final Entity entity = event.entity; + if (!event.world.isRemote && entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); + if (shouldGiveManual){ + ItemStack manual = new ItemStack(ItemList.guide); + if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); + persistTag.setBoolean("givenGuide", true); + } + boolean render = persistTag.getBoolean("fancyRender"); + JewelrycraftMod.fancyRender = render; + for(Curse curse: Curse.getCurseList()) + if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); + persistTag.setBoolean("sendInfo", true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityUpdate(LivingUpdateEvent event) + { + Entity entity = event.entity; + if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ + entity.motionX *= 0D; + entity.motionZ *= 0D; + entity.motionY *= 0D; + entity.rotationPitch = entity.prevRotationPitch; + entity.rotationYaw = entity.prevRotationYaw; + entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); + if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); + entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); + if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ + player.motionX *= 0D; + player.motionZ *= 0D; + player.motionY *= 0D; + player.rotationPitch = entity.prevRotationPitch; + player.rotationYaw = entity.prevRotationYaw; + playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); + if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); + player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); + } + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if(item != null) ((ItemBaseJewelry)item.getItem()).action(item, player); + } + if (!player.worldObj.isRemote){ + if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); + if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); + } + if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); + if (playerInfo.getBoolean("sendInfo")){ + JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); + playerInfo.setBoolean("sendInfo", false); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); + } + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityAttacked(LivingAttackEvent event) + { + Entity entity = event.entityLiving; + if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); + if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("negateDamage")){ + playerInfo.setBoolean("negateDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); + } + if (player.getHealth() != player.prevHealth){ + if (playerInfo.getFloat("WhiteHeart") > 0){ + playerInfo.setFloat("WhiteHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getFloat("BlueHeart") > 0){ + float damage = playerInfo.getFloat("BlueHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlueHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlueHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + }else if (playerInfo.getFloat("BlackHeart") > 0){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); + List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); + if (enemies != null && !enemies.isEmpty()){ + Iterator iterator = enemies.iterator(); + while (iterator.hasNext()){ + Entity enemy = (Entity)iterator.next(); + enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); + } + } + float damage = playerInfo.getFloat("BlackHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlackHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlackHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + } + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); + }else if (event.source.getEntity() instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.source.getEntity(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("weakDamage")){ + playerInfo.setBoolean("weakDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onPlayerRespawn(PlayerEvent.Clone event) + { + EntityPlayer player = event.entityPlayer; + if (!player.worldObj.isRemote){ + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (playerInfo.hasKey("cursePoints")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + } + playerInfo.setBoolean("sendInfo", true); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param player + * @param playerInfo + * @param curse + */ + public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) + { + System.out.println(curseNo); + if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ + int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); + Curse cur = Curse.availableCurses.get(no); + playerInfo.setInteger(cur.getName(), 1); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) + { + Curse cur = Curse.getCurseList().get(curseID); + if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ + playerInfo.setInteger(cur.getName(), grade); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + @SubscribeEvent + public void itemToss(ItemTossEvent event) + { + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, Variables.MODID); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ + EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); + entityitem.motionX = 0; + entityitem.motionZ = 0; + entityitem.motionY = 0.11000000298023224D; + event.player.worldObj.spawnEntityInWorld(entityitem); + List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; + Iterator plrs = players.iterator(); + while (plrs.hasNext()) + ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); + event.setCanceled(true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void playerFileSave(PlayerEvent.SaveToFile event) + { + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityDead(LivingDeathEvent event) + { + final Entity entity = event.entity; + Random rand = new Random(); + String[] types = {"Red", "Blue", "White", "Black"}; + if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ + EntityLiving live = (EntityLiving)entity; + String type = types[rand.nextInt(4)]; + if (rand.nextInt(6) == 0){ + if (type == "White"){ + EntityHeart h = new EntityHalfHeart(live.worldObj); + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + }else{ + for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ + EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; + EntityHeart h = hearts[rand.nextInt(2)]; + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + } + } + } + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ + for(Curse l: Curse.getCurseList()){ + if (playerInfo.getInteger(l.getName()) == 1){ + playerInfo.setInteger(l.getName(), 0); + if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); + }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); + } + if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + playerInfo.setBoolean("sendInfo", true); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldLoad(WorldEvent.Load event) + { + if (!event.world.isRemote){ + new File(JewelrycraftMod.dir + File.separator + Variables.MODID).mkdirs(); + JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + Variables.MODID, "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); + try{ + if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldSave(WorldEvent.Save event) + { + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogColors(EntityViewRenderEvent.FogColors event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + event.red = 0f; + event.green = 0f; + event.blue = 0f; + } + } + if (event.isCancelable()) event.setCanceled(true); + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogDensity(EntityViewRenderEvent.FogDensity event) + {} + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void renderFog(EntityViewRenderEvent.RenderFogEvent event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); + GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); + } + } + if (event.isCancelable()) event.setCanceled(true); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/50346c7da0ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/50346c7da0ce00141801ff0972626827 deleted file mode 100644 index 1e2260a..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/50346c7da0ce00141801ff0972626827 +++ /dev/null @@ -1,12 +0,0 @@ -/** - * - */ -package darkknight.jewelrycraft.curses; - -/** - * @author Sorin - * - */ -public class CurseInfamy -{ -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/70b9cd197acf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/70b9cd197acf00141de78e4a85bb2469 deleted file mode 100644 index 0fa9519..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ac/70b9cd197acf00141de78e4a85bb2469 +++ /dev/null @@ -1,104 +0,0 @@ -package darkknight.jewelrycraft.events; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.GuiChat; -import net.minecraft.client.gui.ScaledResolution; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.MathHelper; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.event.RenderGameOverlayEvent; -import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; -import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import darkknight.jewelrycraft.curses.Curse; - -public class ScreenHandler extends Gui -{ - private Minecraft mc; - public static NBTTagCompound tagCache = null; - public static int cooldown; - static ResourceLocation texture; - static ResourceLocation hearts = new ResourceLocation("jewelrycraft", "textures/gui/hearts.png"); - - public ScreenHandler(Minecraft mc, ResourceLocation tex) - { - super(); - this.mc = mc; - texture = tex; - } - - @SubscribeEvent - public void renderScreen(RenderGameOverlayEvent event) - { -// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); - if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; - if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ - int count = 0; - int size = 32; - ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); - if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ - mc.renderEngine.bindTexture(texture); - for(Curse curse: Curse.getCurseList()){ - if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ - Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); - Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); - count++; - } - } - count = 0; - for(Curse curse: Curse.getCurseList()) - if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ - int tag = curse.getID(); - GL11.glPushMatrix(); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glScalef(0.5f, 0.5f, 0.0f); - drawTexturedModalRect(4, 4 + (size + 12) * count, tag % size * size, tag / size * size, size, size); - GL11.glPopMatrix(); - count++; - } - count = 0; - size = 16; - for(Curse curse: Curse.getCurseList()) - if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ - int tag = curse.getID(); - mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 20, 7 + (size + 6) * count, 16777215); - if (tagCache.getInteger(curse.getName()) == 2){ - mc.renderEngine.bindTexture(hearts); - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - GL11.glColor4f(1f, 1f, 1f, 0.5f); - drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); - GL11.glPopMatrix(); - } - count++; - } - } - GL11.glColor4f(1f, 1f, 1f, 1.0f); -// GL11.glDisable(GL11.GL_LIGHTING); -// GL11.glScalef(0.5f, 0.5f, 0.0f); - GL11.glPushMatrix(); - mc.renderEngine.bindTexture(hearts); - count = 0; - size = 16; - if (tagCache.getFloat("BlueHeart") > 0){ - for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) - drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); - if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); - } - count++; - if (tagCache.getFloat("BlackHeart") > 0){ - for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) - drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); - if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); - } - count++; - if (tagCache.getFloat("WhiteHeart") > 0) - drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); - GL11.glPopMatrix(); - } - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ad/400a697183d000141a1fb02abca5ff55 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ad/400a697183d000141a1fb02abca5ff55 deleted file mode 100644 index f54664e..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ad/400a697183d000141a1fb02abca5ff55 +++ /dev/null @@ -1,76 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.settings.GameSettings.Options; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - private boolean originalVD = false; - private float originalViewDistance; - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && rand.nextInt(500) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30)*(rand.nextBoolean()?-1:1), player.posY, player.posZ + rand.nextInt(30)*(rand.nextBoolean()?-1:1)); - if (jewelry instanceof ItemRing && pos != -1){ - if(!originalVD){ - originalViewDistance = Minecraft.getMinecraft().gameSettings.getOptionFloatValue(Options.RENDER_DISTANCE); - originalVD = true; - } - Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 1.0F); - Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, originalViewDistance); - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/af/901e9340bcd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/af/901e9340bcd000141b65e2fc7f94332d deleted file mode 100644 index ae07eef..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/af/901e9340bcd000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate, 0, 0, 0); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate, 0, 0, 0); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate, 0, 0, 0); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate, 0, 0, 0); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate, 0, 0, 0); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate, 0, 0, 0); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate, 0, 0, 0); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item, float xRot, float yRot, float zRot) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 153, 12, 12); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 21 && mouseY >= y + 20 && mouseY <= y + 31) gui.drawHoverString(name, x, y + 10); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 15, y + 25, 40f, false, xRot, yRot, zRot); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate, 0, 0, 0); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/af/d0ba0cecf2cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/af/d0ba0cecf2cf0014170de422db399e8d deleted file mode 100644 index 576d27a..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/af/d0ba0cecf2cf0014170de422db399e8d +++ /dev/null @@ -1,64 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null && chunkposition.chunkPosX != (int)player.posX && chunkposition.chunkPosZ != (int)player.posZ){ - Minecraft.getMinecraft().thePlayer.motionX -= 0.01D*Math.signum((double)chunkposition.chunkPosX); - Minecraft.getMinecraft().thePlayer.motionZ -= 0.01D*Math.signum((double)chunkposition.chunkPosZ); - System.out.println(chunkposition.chunkPosX + " " + player.chunkCoordX); -// player.addChatMessage(new ChatComponentText("You hear a faint whisper telling you: \"You are getting closer, just " + (int)player.getDistance((double)chunkposition.chunkPosX, (double)chunkposition.chunkPosY, (double)chunkposition.chunkPosZ) + " more blocks to go.\"")); - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); -// if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/af/d0ca0d9da5ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/af/d0ca0d9da5ce00141801ff0972626827 deleted file mode 100644 index d9be141..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/af/d0ca0d9da5ce00141801ff0972626827 +++ /dev/null @@ -1,102 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import java.util.Iterator; -import java.util.List; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class EffectFeather extends ModifierEffects -{ - public EffectFeather() - { - super(new ItemStack(Items.feather)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - // Positive earrings - if (jewelry instanceof ItemEarrings && pos != -1){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); - List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); - if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ - Iterator iterator = list.iterator(); - while (iterator.hasNext()){ - EntityArrow arrow = (EntityArrow)iterator.next(); - if (rand.nextInt(3) == 0 && (arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0)) arrow.setDead(); - } - } - } - // Positive bracelet - if (jewelry instanceof ItemBracelet && pos != -1){ - if (player.motionY < 0) player.motionY *= 0.6D; - player.setAIMoveSpeed(player.getAIMoveSpeed() / 2); - player.fallDistance = 0F; - } - } - - @Override - public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - NBTTagCompound enemyData = target.getEntityData(); - if (jewelry instanceof ItemRing && pos != -1 && enemyData.getInteger("reAttacked") == 0){ - enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); - target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); - if (rand.nextInt(2) == 0){ - enemyData.setInteger("stunTime", 50); - enemyData.setBoolean("stunned", true); - } - playerInfo.setBoolean("weakDamage", true); - } - if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (jewelry instanceof ItemNecklace && pos != -1 && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); - playerInfo.setBoolean("negateDamage", true); - } - // Negative necklace - if (jewelry instanceof ItemNecklace && pos != -1 && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); - // Negative earrings - if (jewelry instanceof ItemEarrings && pos != -1 && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b/b04e0c6083d000141a1fb02abca5ff55 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b/b04e0c6083d000141a1fb02abca5ff55 deleted file mode 100644 index 1c798a7..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b/b04e0c6083d000141a1fb02abca5ff55 +++ /dev/null @@ -1,80 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.settings.GameSettings.Options; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - private boolean originalVD = false; - private float originalViewDistance; - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && rand.nextInt(500) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30)*(rand.nextBoolean()?-1:1), player.posY, player.posZ + rand.nextInt(30)*(rand.nextBoolean()?-1:1)); - if (jewelry instanceof ItemRing && pos != -1){ - if(!originalVD){ - originalViewDistance = Minecraft.getMinecraft().gameSettings.getOptionFloatValue(Options.RENDER_DISTANCE); - originalVD = true; - } - Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 1.0F); - if(originalVD){ - Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, originalViewDistance); - System.out.println(originalViewDistance); - originalVD = false; - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b/f079b2e06fcf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b/f079b2e06fcf00141de78e4a85bb2469 deleted file mode 100644 index acfd005..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b/f079b2e06fcf00141de78e4a85bb2469 +++ /dev/null @@ -1,43 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player, Entity target) - { - if (!world.isRemote && !(target instanceof EntityMob) && target instanceof EntityLiving && !(target instanceof EntityHeart) && !(target instanceof EntityHalfHeart) && target.canAttackWithItem()){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (rand.nextInt(2) == 0){ - if(playerInfo.getFloat("BlackHeart") < 20F) playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 1.0F); - if(player.getMaxHealth() >= 3F){ - player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() - 1.0F); - player.setHealth(player.getHealth() - 2.0F); - } - } - JewelrycraftUtil.addCursePoints(player, 10); - } - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b0/e03fd2740bde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b0/e03fd2740bde00141043c3025ec60dfc new file mode 100644 index 0000000..788dc50 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b0/e03fd2740bde00141043c3025ec60dfc @@ -0,0 +1,185 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + if ((int)f3 != -1){ + int ingotColor = (int)f3; + int red = (ingotColor >> 16) & 0xff; + int green = (ingotColor >> 8) & 0xff; + int blue = ingotColor & 0xff; + System.out.println((int)f3 + " " + 0xf3); + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b0/e0ae27cf28de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b0/e0ae27cf28de00141043c3025ec60dfc new file mode 100644 index 0000000..1ff9c0d --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b0/e0ae27cf28de00141043c3025ec60dfc @@ -0,0 +1,465 @@ +package darkknight.jewelrycraft.events; + +import ibxm.Player; +import java.io.EOFException; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Iterator; +import java.util.List; +import java.util.Random; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompressedStreamTools; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.MathHelper; +import net.minecraftforge.client.event.EntityViewRenderEvent; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.event.entity.item.ItemTossEvent; +import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.living.LivingDeathEvent; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingFallEvent; +import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; +import net.minecraftforge.event.world.WorldEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.config.ConfigHandler; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.entities.EntityHalfHeart; +import darkknight.jewelrycraft.entities.EntityHeart; +import darkknight.jewelrycraft.item.ItemBaseJewelry; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemList; +import darkknight.jewelrycraft.network.PacketClearColorCache; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.network.PacketSendCurseStats; +import darkknight.jewelrycraft.network.PacketSendPlayerInfo; +import darkknight.jewelrycraft.util.BlockUtils; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +/** + * Code taken from OpenBlocks + */ +public class EntityEventHandler +{ + /** + * @param event + */ + @SubscribeEvent + public void onEntityJoinWorld(EntityJoinWorldEvent event) + { + if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + final Entity entity = event.entity; + if (!event.world.isRemote && entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); + if (shouldGiveManual){ + ItemStack manual = new ItemStack(ItemList.guide); + if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); + persistTag.setBoolean("givenGuide", true); + } + boolean render = persistTag.getBoolean("fancyRender"); + JewelrycraftMod.fancyRender = render; + for(Curse curse: Curse.getCurseList()) + if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); + persistTag.setBoolean("sendInfo", true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityUpdate(LivingUpdateEvent event) + { + Entity entity = event.entity; + if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ + entity.motionX *= 0D; + entity.motionZ *= 0D; + entity.motionY *= 0D; + entity.rotationPitch = entity.prevRotationPitch; + entity.rotationYaw = entity.prevRotationYaw; + entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); + if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); + entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); + if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ + player.motionX *= 0D; + player.motionZ *= 0D; + player.motionY *= 0D; + player.rotationPitch = entity.prevRotationPitch; + player.rotationYaw = entity.prevRotationYaw; + playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); + if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); + player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); + } + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if(item != null) ((ItemBaseJewelry)item.getItem()).action(item, player); + } + if (!player.worldObj.isRemote){ + if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); + if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); + } + if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); + if (playerInfo.getBoolean("sendInfo")){ + JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); + playerInfo.setBoolean("sendInfo", false); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && playerInfo.getInteger("cursePoints") > 0) curse.action(player.worldObj, player); + } + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityAttacked(LivingAttackEvent event) + { + Entity entity = event.entityLiving; + if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); + if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("negateDamage")){ + playerInfo.setBoolean("negateDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); + } + if (player.getHealth() != player.prevHealth){ + if (playerInfo.getFloat("WhiteHeart") > 0){ + playerInfo.setFloat("WhiteHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getFloat("BlueHeart") > 0){ + float damage = playerInfo.getFloat("BlueHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlueHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlueHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + }else if (playerInfo.getFloat("BlackHeart") > 0){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); + List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); + if (enemies != null && !enemies.isEmpty()){ + Iterator iterator = enemies.iterator(); + while (iterator.hasNext()){ + Entity enemy = (Entity)iterator.next(); + enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); + } + } + float damage = playerInfo.getFloat("BlackHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlackHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlackHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + } + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && playerInfo.getInteger("cursePoints") > 0) curse.attackedAction(player.worldObj, player); + }else if (event.source.getEntity() instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.source.getEntity(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("weakDamage")){ + playerInfo.setBoolean("weakDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && playerInfo.getInteger("cursePoints") > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onPlayerRespawn(PlayerEvent.Clone event) + { + EntityPlayer player = event.entityPlayer; + if (!player.worldObj.isRemote){ + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + } + playerInfo.setBoolean("sendInfo", true); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && playerInfo.getInteger("cursePoints") > 0) curse.respawnAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param player + * @param playerInfo + * @param curse + */ + public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) + { + if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ + int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); + Curse cur = Curse.availableCurses.get(no); + playerInfo.setInteger(cur.getName(), 1); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) + { + Curse cur = Curse.getCurseList().get(curseID); + if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ + playerInfo.setInteger(cur.getName(), grade); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + @SubscribeEvent + public void itemToss(ItemTossEvent event) + { + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, Variables.MODID); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss() && playerInfo.getInteger("cursePoints") > 0){ + EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); + entityitem.motionX = 0; + entityitem.motionZ = 0; + entityitem.motionY = 0.11000000298023224D; + event.player.worldObj.spawnEntityInWorld(entityitem); + List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; + Iterator plrs = players.iterator(); + while (plrs.hasNext()) + ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); + event.setCanceled(true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void playerFileSave(PlayerEvent.SaveToFile event) + { + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityDead(LivingDeathEvent event) + { + final Entity entity = event.entity; + Random rand = new Random(); + String[] types = {"Red", "Blue", "White", "Black"}; + if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ + EntityLiving live = (EntityLiving)entity; + String type = types[rand.nextInt(4)]; + if (rand.nextInt(6) == 0){ + if (type == "White"){ + EntityHeart h = new EntityHalfHeart(live.worldObj); + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + }else{ + for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ + EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; + EntityHeart h = hearts[rand.nextInt(2)]; + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + } + } + } + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ + for(Curse l: Curse.getCurseList()){ + if (playerInfo.getInteger(l.getName()) == 1){ + playerInfo.setInteger(l.getName(), 0); + if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); + }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); + } + if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + playerInfo.setBoolean("sendInfo", true); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldLoad(WorldEvent.Load event) + { + if (!event.world.isRemote){ + new File(JewelrycraftMod.dir + File.separator + Variables.MODID).mkdirs(); + JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + Variables.MODID, "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); + try{ + if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldSave(WorldEvent.Save event) + { + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogColors(EntityViewRenderEvent.FogColors event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + event.red = 0f; + event.green = 0f; + event.blue = 0f; + } + } + if (event.isCancelable()) event.setCanceled(true); + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogDensity(EntityViewRenderEvent.FogDensity event) + {} + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void renderFog(EntityViewRenderEvent.RenderFogEvent event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); + GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); + } + } + if (event.isCancelable()) event.setCanceled(true); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b1/00caa6936edd001412dce27813e7be4a b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b1/00caa6936edd001412dce27813e7be4a new file mode 100644 index 0000000..00895e7 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b1/00caa6936edd001412dce27813e7be4a @@ -0,0 +1,465 @@ +package darkknight.jewelrycraft.events; + +import ibxm.Player; +import java.io.EOFException; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Iterator; +import java.util.List; +import java.util.Random; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompressedStreamTools; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.MathHelper; +import net.minecraftforge.client.event.EntityViewRenderEvent; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.event.entity.item.ItemTossEvent; +import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.living.LivingDeathEvent; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingFallEvent; +import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; +import net.minecraftforge.event.world.WorldEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.config.ConfigHandler; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.entities.EntityHalfHeart; +import darkknight.jewelrycraft.entities.EntityHeart; +import darkknight.jewelrycraft.item.ItemBaseJewelry; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemList; +import darkknight.jewelrycraft.network.PacketClearColorCache; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.network.PacketSendCurseStats; +import darkknight.jewelrycraft.network.PacketSendPlayerInfo; +import darkknight.jewelrycraft.util.BlockUtils; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +/** + * Code taken from OpenBlocks + */ +public class EntityEventHandler +{ + /** + * @param event + */ + @SubscribeEvent + public void onEntityJoinWorld(EntityJoinWorldEvent event) + { + if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo((EntityPlayer)event.entity)); + final Entity entity = event.entity; + if (!event.world.isRemote && entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); + if (shouldGiveManual){ + ItemStack manual = new ItemStack(ItemList.guide); + if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); + persistTag.setBoolean("givenGuide", true); + } + boolean render = persistTag.getBoolean("fancyRender"); + JewelrycraftMod.fancyRender = render; + for(Curse curse: Curse.getCurseList()) + if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); + persistTag.setBoolean("sendInfo", true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityUpdate(LivingUpdateEvent event) + { + Entity entity = event.entity; + if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ + entity.motionX *= 0D; + entity.motionZ *= 0D; + entity.motionY *= 0D; + entity.rotationPitch = entity.prevRotationPitch; + entity.rotationYaw = entity.prevRotationYaw; + entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); + if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); + entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); + if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ + player.motionX *= 0D; + player.motionZ *= 0D; + player.motionY *= 0D; + player.rotationPitch = entity.prevRotationPitch; + player.rotationYaw = entity.prevRotationYaw; + playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); + if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); + player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); + } + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if(item != null) ((ItemBaseJewelry)item.getItem()).action(item, player); + } + if (!player.worldObj.isRemote){ + if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); + if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); + } + if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo(player)); + } + if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); + if (playerInfo.getBoolean("sendInfo")){ + JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); + playerInfo.setBoolean("sendInfo", false); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); + } + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityAttacked(LivingAttackEvent event) + { + Entity entity = event.entityLiving; + if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); + if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("negateDamage")){ + playerInfo.setBoolean("negateDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); + } + if (player.getHealth() != player.prevHealth){ + if (playerInfo.getFloat("WhiteHeart") > 0){ + playerInfo.setFloat("WhiteHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo(player)); + } + if (playerInfo.getFloat("BlueHeart") > 0){ + float damage = playerInfo.getFloat("BlueHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlueHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo(player)); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlueHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo(player)); + player.heal(Math.abs(damage)); + } + }else if (playerInfo.getFloat("BlackHeart") > 0){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); + List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); + if (enemies != null && !enemies.isEmpty()){ + Iterator iterator = enemies.iterator(); + while (iterator.hasNext()){ + Entity enemy = (Entity)iterator.next(); + enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); + } + } + float damage = playerInfo.getFloat("BlackHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlackHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo(player)); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlackHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo(player)); + player.heal(Math.abs(damage)); + } + } + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); + }else if (event.source.getEntity() instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.source.getEntity(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("weakDamage")){ + playerInfo.setBoolean("weakDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onPlayerRespawn(PlayerEvent.Clone event) + { + EntityPlayer player = event.entityPlayer; + if (!player.worldObj.isRemote){ + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + } + playerInfo.setBoolean("sendInfo", true); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo(player)); + } + + /** + * @param player + * @param playerInfo + * @param curse + */ + public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) + { + if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ + int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); + Curse cur = Curse.availableCurses.get(no); + playerInfo.setInteger(cur.getName(), 1); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) + { + Curse cur = Curse.getCurseList().get(curseID); + if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ + playerInfo.setInteger(cur.getName(), grade); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + @SubscribeEvent + public void itemToss(ItemTossEvent event) + { + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, Variables.MODID); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ + EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); + entityitem.motionX = 0; + entityitem.motionZ = 0; + entityitem.motionY = 0.11000000298023224D; + event.player.worldObj.spawnEntityInWorld(entityitem); + List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; + Iterator plrs = players.iterator(); + while (plrs.hasNext()) + ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); + event.setCanceled(true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void playerFileSave(PlayerEvent.SaveToFile event) + { + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo((EntityPlayer)event.entity)); + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityDead(LivingDeathEvent event) + { + final Entity entity = event.entity; + Random rand = new Random(); + String[] types = {"Red", "Blue", "White", "Black"}; + if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ + EntityLiving live = (EntityLiving)entity; + String type = types[rand.nextInt(4)]; + if (rand.nextInt(6) == 0){ + if (type == "White"){ + EntityHeart h = new EntityHalfHeart(live.worldObj); + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + }else{ + for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ + EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; + EntityHeart h = hearts[rand.nextInt(2)]; + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + } + } + } + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ + for(Curse l: Curse.getCurseList()){ + if (playerInfo.getInteger(l.getName()) == 1){ + playerInfo.setInteger(l.getName(), 0); + if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); + }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); + } + if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo(player)); + } + playerInfo.setBoolean("sendInfo", true); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo((EntityPlayer)event.entity)); + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldLoad(WorldEvent.Load event) + { + if (!event.world.isRemote){ + new File(JewelrycraftMod.dir + File.separator + Variables.MODID).mkdirs(); + JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + Variables.MODID, "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); + try{ + if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldSave(WorldEvent.Save event) + { + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogColors(EntityViewRenderEvent.FogColors event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + event.red = 0f; + event.green = 0f; + event.blue = 0f; + } + } + if (event.isCancelable()) event.setCanceled(true); + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogDensity(EntityViewRenderEvent.FogDensity event) + {} + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void renderFog(EntityViewRenderEvent.RenderFogEvent event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); + GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); + } + } + if (event.isCancelable()) event.setCanceled(true); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b2/805eed72bed000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b2/805eed72bed000141b65e2fc7f94332d deleted file mode 100644 index 70c76ee..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b2/805eed72bed000141b65e2fc7f94332d +++ /dev/null @@ -1,240 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.block.BlockShadowEye; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else if (item.isItemEqual(new ItemStack(BlockList.handPedestal))){ - GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0F, 0.2F, 0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ - // GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if (xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - if (Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockShadowEye) GL11.glTranslatef(0F, 0F, 0.025F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b3/e08d6da9c8df00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b3/e08d6da9c8df00141dc6c962aec96210 new file mode 100644 index 0000000..c5f9a3d --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b3/e08d6da9c8df00141dc6c962aec96210 @@ -0,0 +1,734 @@ +package darkknight.jewelrycraft.util; + +import java.util.ArrayList; +import java.util.List; +import net.minecraft.block.Block; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class JewelryNBT +{ + // TODO NBT Tag Adding + /** + * @param item The item you want to add the NBT data on + * @param metal The metal you want to add on the item + */ + public static void addMetal(ItemStack item, ItemStack metal) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + NBTTagCompound ingotNBT = new NBTTagCompound(); + metal.writeToNBT(ingotNBT); + itemStackData.setTag("ingot", ingotNBT); + } + + /** + * @param item The item you want to add the NBT data on + * @param gem The gem you want to add on the item + */ + public static void addGem(ItemStack item, ItemStack gem) + { + if (gem != null){ + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + NBTTagCompound gemNBT = new NBTTagCompound(); + gem.writeToNBT(gemNBT); + itemStackData.setTag("gem", gemNBT); + } + } + + /** + * @param item The item you want to add the NBT data on + * @param modifier The modifier you want to add on the item + */ + public static void addModifiers(ItemStack item, ArrayList modifier) + { + if (modifier != null){ + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + for(int i = 0; i < modifier.size(); i++){ + NBTTagCompound modifierNBT = new NBTTagCompound(); + modifier.get(i).writeToNBT(modifierNBT); + itemStackData.setTag("modifier" + i, modifierNBT); + } + itemStackData.setInteger("modifierSize", modifier.size()); + } + } + + /** + * @param item The item you want to add the NBT data on + * @param entity The entity to add on the item + */ + public static void addEntity(ItemStack item, EntityLivingBase entity) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + NBTTagCompound entityNBT = new NBTTagCompound(); + entity.writeToNBT(entityNBT); + itemStackData.setTag("entity", entityNBT); + } + + /** + * @param item + * @param entity + */ + public static void addEntityID(ItemStack item, EntityLivingBase entity) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + NBTTagCompound entityNBT = new NBTTagCompound(); + int id = EntityList.getEntityID(entity); + entityNBT.setInteger("entityID", id); + itemStackData.setTag("entityID", entityNBT); + } + + /** + * @param item + * @param x + * @param y + * @param z + */ + public static void addCoordonates(ItemStack item, double x, double y, double z) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + NBTTagCompound coords = new NBTTagCompound(); + coords.setDouble("x", x); + coords.setDouble("y", y); + coords.setDouble("z", z); + itemStackData.setTag("x", coords); + itemStackData.setTag("y", coords); + itemStackData.setTag("z", coords); + } + + /** + * @param item + * @param world + * @param x + * @param y + * @param z + */ + public static void addTileEntityBlock(ItemStack item, World world, int x, int y, int z) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + NBTTagCompound tileNBT = new NBTTagCompound(); + NBTTagCompound block = new NBTTagCompound(); + world.getTileEntity(x, y, z).writeToNBT(tileNBT); + itemStackData.setTag("tile", tileNBT); + block.setInteger("blockID", Block.getIdFromBlock(world.getBlock(x, y, z))); + block.setInteger("metadata", world.getBlockMetadata(x, y, z)); + block.setInteger("blockX", x); + block.setInteger("blockY", y); + block.setInteger("blockZ", z); + itemStackData.setTag("metadata", block); + itemStackData.setTag("blockID", block); + itemStackData.setTag("blockX", block); + itemStackData.setTag("blockY", block); + itemStackData.setTag("blockZ", block); + } + + /** + * @param item + * @param block + * @param metadata + */ + public static void addBlock(ItemStack item, int block, int metadata) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + NBTTagCompound blockNBT = new NBTTagCompound(); + blockNBT.setInteger("blockID", block); + itemStackData.setTag("blockID", blockNBT); + blockNBT.setInteger("metadata", metadata); + itemStackData.setTag("metadata", blockNBT); + } + + /** + * @param item + * @param x + * @param y + * @param z + */ + public static void addBlockCoordonates(ItemStack item, int x, int y, int z) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + NBTTagCompound coords = new NBTTagCompound(); + coords.setInteger("blockX", x); + coords.setInteger("blockY", y); + coords.setInteger("blockZ", z); + itemStackData.setTag("blockX", coords); + itemStackData.setTag("blockY", coords); + itemStackData.setTag("blockZ", coords); + } + + /** + * @param item + * @param x + * @param y + * @param z + * @param dim + * @param name + */ + public static void addCoordonatesAndDimension(ItemStack item, double x, double y, double z, int dim, String name) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + NBTTagCompound coords = new NBTTagCompound(); + coords.setDouble("x", x); + coords.setDouble("y", y); + coords.setDouble("z", z); + coords.setInteger("dimension", dim); + coords.setString("dimName", name); + itemStackData.setTag("x", coords); + itemStackData.setTag("y", coords); + itemStackData.setTag("z", coords); + itemStackData.setTag("dimension", coords); + itemStackData.setTag("dimName", coords); + } + + /** + * @param item + */ + public static void addFakeEnchantment(ItemStack item) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + itemStackData.setTag("ench", new NBTTagList()); + } + + /** + * @param item + * @param color + */ + public static void addIngotColor(ItemStack item, int color) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + NBTTagCompound colors = new NBTTagCompound(); + colors.setInteger("ingotColor", color); + itemStackData.setTag("ingotColor", colors); + } + + // TODO + /** + * @param item + * @param color + */ + public static void addGemColor(ItemStack item, int color) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + NBTTagCompound colors = new NBTTagCompound(); + colors.setInteger("gemColor", color); + itemStackData.setTag("gemColor", colors); + } + + /** + * @param item + * @param list + */ + @SuppressWarnings ("rawtypes") + public static void addEntities(ItemStack item, List list) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + NBTTagCompound entityNBT = new NBTTagCompound(); + for(int i = 0; i < list.size(); i++) + ((EntityLivingBase)list.get(i)).writeToNBT(entityNBT); + itemStackData.setTag("entities", entityNBT); + } + + // TODO NBT Tag Removing + /** + * @param item + * @param tag + */ + public static void removeNBT(ItemStack item, String tag) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + itemStackData.removeTag(tag); + } + + /** + * @param item + */ + public static void removeEntity(ItemStack item) + { + JewelryNBT.removeNBT(item, "entityID"); + JewelryNBT.removeNBT(item, "entity"); + JewelryNBT.removeNBT(item, "ench"); + } + + /** + * @param item + */ + public static void removeBlock(ItemStack item) + { + JewelryNBT.removeNBT(item, "blockID"); + JewelryNBT.removeNBT(item, "metadata"); + JewelryNBT.removeNBT(item, "tile"); + JewelryNBT.removeNBT(item, "blockX"); + JewelryNBT.removeNBT(item, "blockY"); + JewelryNBT.removeNBT(item, "blockZ"); + } + + // TODO NTB Tag Checking + /** + * @param item + * @param tag + * @return + */ + public static boolean hasTag(ItemStack item, String tag) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + if (itemStackData.hasKey(tag)) return true; + return false; + } + + /** + * @param stack + * @param gem + * @return + */ + public static boolean isGemX(ItemStack stack, ItemStack gem) + { + if (gem(stack) != null && gem(stack).getItem() == gem.getItem() && gem(stack).getItemDamage() == gem.getItemDamage()) return true; + return false; + } + + /** + * @param stack + * @param modifier + * @return + */ + public static int doesModifierExist(ItemStack stack, ItemStack modifier) + { + if (modifier(stack) != null){ + ArrayList list = modifier(stack); + for(int i = 0; i < list.size(); i++) + if (list.get(i).getItem() == modifier.getItem() && list.get(i).getItemDamage() == modifier.getItemDamage()) return i; + } + return -1; + } + + public static int numberOfModifiers(ItemStack stack) + { + if (modifier(stack) != null) return modifier(stack).size(); + return -1; + } + + /** + * @param stack + * @param ingot + * @return + */ + public static boolean isIngotX(ItemStack stack, ItemStack ingot) + { + if (ingot(stack) != null && ingot(stack).getItem() == ingot.getItem() && ingot(stack).getItemDamage() == ingot.getItemDamage()) return true; + return false; + } + + /** + * @param stack + * @param player + * @param entity + * @return + */ + public static boolean isEntityX(ItemStack stack, EntityPlayer player, EntityLivingBase entity) + { + if (entity != null && entity instanceof EntityLivingBase && entity(stack, player) != null && entity(stack, player).equals(entity)) return true; + return false; + } + + /** + * @param stack + * @param dimName + * @return + */ + public static boolean isDimNameX(ItemStack stack, String dimName) + { + if (ingot(stack) != null && dimName(stack).equals(dimName)) return true; + return false; + } + + /** + * @param stack + * @param dimension + * @return + */ + public static boolean isDimensionX(ItemStack stack, int dimension) + { + if (dimension(stack) != -2 && dimension(stack) == dimension) return true; + return false; + } + + // TODO Return components based on NBT + /** + * @param stack + * @return + */ + public static ItemStack gem(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.hasTagCompound() && stack.getTagCompound().hasKey("gem")){ + NBTTagCompound jewelNBT = (NBTTagCompound)stack.getTagCompound().getTag("gem"); + ItemStack gem = new ItemStack(Item.getItemById(0), 0, 0); + gem.readFromNBT(jewelNBT); + return gem; + } + return null; + } + + /** + * @param stack + * @return + */ + public static ArrayList modifier(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.hasTagCompound()){ + int size = stack.getTagCompound().getInteger("modifierSize"); + ArrayList list = new ArrayList(); + for(int i = 0; i < size; i++){ + ItemStack modifier = new ItemStack(Item.getItemById(0), 0, 0); + NBTTagCompound modifierNBT = (NBTTagCompound)stack.getTagCompound().getTag("modifier" + i); + modifier.readFromNBT(modifierNBT); + list.add(modifier); + } + return list; + } + return null; + } + + /** + * @param stack + * @return + */ + public static ItemStack ingot(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.hasTagCompound() && stack.getTagCompound().hasKey("ingot")){ + NBTTagCompound ingotNBT = (NBTTagCompound)stack.getTagCompound().getTag("ingot"); + ItemStack ingot = new ItemStack(Item.getItemById(0), 0, 0); + ingot.readFromNBT(ingotNBT); + return ingot; + } + return null; + } + + /** + * @param stack + * @param player + * @return + */ + public static EntityLivingBase entity(ItemStack stack, EntityPlayer player) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.getTagCompound().hasKey("entityID") && stack.getTagCompound().hasKey("entity")){ + NBTTagCompound enID = (NBTTagCompound)stack.getTagCompound().getTag("entityID"); + NBTTagCompound en = (NBTTagCompound)stack.getTagCompound().getTag("entity"); + int entityID = 0; + entityID = enID.getInteger("entityID"); + EntityLivingBase entity = (EntityLivingBase)EntityList.createEntityByID(entityID, player.worldObj); + if (entity != null && entity instanceof EntityLivingBase){ + entity.readFromNBT(en); + return entity; + }else return null; + } + return null; + } + + /** + * @param stack + * @return + */ + public static TileEntity tileEntity(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.getTagCompound().hasKey("tile")){ + NBTTagCompound tileNBT = (NBTTagCompound)stack.getTagCompound().getTag("tile"); + TileEntity tile = TileEntity.createAndLoadEntity(tileNBT); + if (tile != null && tile instanceof TileEntity){ + tile.readFromNBT(tileNBT); + return tile; + }else return null; + } + return null; + } + + /** + * @param stack + * @return + */ + public static String dimName(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.hasTagCompound() && stack.getTagCompound().hasKey("dimName")){ + NBTTagCompound dim = (NBTTagCompound)stack.getTagCompound().getTag("dimName"); + String name = dim.getString("dimName"); + return name; + } + return null; + } + + /** + * @param stack + * @return + */ + public static String modeName(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.hasTagCompound() && stack.getTagCompound().hasKey("mode")){ + NBTTagCompound dim = (NBTTagCompound)stack.getTagCompound().getTag("mode"); + String name = dim.getString("mode"); + return name; + } + return null; + } + + /** + * @param stack + * @return + */ + public static int dimension(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.hasTagCompound() && stack.getTagCompound().hasKey("dimension")){ + NBTTagCompound dim = (NBTTagCompound)stack.getTagCompound().getTag("dimension"); + int dimension = dim.getInteger("dimension"); + return dimension; + } + return -2; + } + + /** + * @param stack + * @return + */ + public static int blockCoordX(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.getTagCompound().hasKey("blockX")){ + NBTTagCompound x = (NBTTagCompound)stack.getTagCompound().getTag("blockX"); + int posX = x.getInteger("blockX"); + return posX; + } + return -1; + } + + /** + * @param stack + * @return + */ + public static int blockCoordY(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.getTagCompound().hasKey("blockY")){ + NBTTagCompound y = (NBTTagCompound)stack.getTagCompound().getTag("blockY"); + int posY = y.getInteger("blockY"); + return posY; + } + return -1; + } + + /** + * @param stack + * @return + */ + public static int blockCoordZ(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.getTagCompound().hasKey("blockZ")){ + NBTTagCompound z = (NBTTagCompound)stack.getTagCompound().getTag("blockZ"); + int posZ = z.getInteger("blockZ"); + return posZ; + } + return -1; + } + + /** + * @param stack + * @return + */ + public static int blockID(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.getTagCompound().hasKey("blockID")){ + NBTTagCompound blockID = (NBTTagCompound)stack.getTagCompound().getTag("blockID"); + int blockId = blockID.getInteger("blockID"); + return blockId; + } + return -1; + } + + /** + * @param stack + * @return + */ + public static int blockMetadata(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.getTagCompound().hasKey("metadata")){ + NBTTagCompound metadataNBT = (NBTTagCompound)stack.getTagCompound().getTag("metadata"); + int metadata = metadataNBT.getInteger("metadata"); + return metadata; + } + return -1; + } + + /** + * @param stack + * @return + */ + public static double playerPosX(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.getTagCompound().hasKey("x")){ + NBTTagCompound x = (NBTTagCompound)stack.getTagCompound().getTag("x"); + double posX = x.getDouble("x"); + return posX; + } + return -1; + } + + /** + * @param stack + * @return + */ + public static double playerPosY(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.getTagCompound().hasKey("y")){ + NBTTagCompound y = (NBTTagCompound)stack.getTagCompound().getTag("y"); + double posY = y.getDouble("y"); + return posY; + } + return -1; + } + + /** + * @param stack + * @return + */ + public static double playerPosZ(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.getTagCompound().hasKey("z")){ + NBTTagCompound z = (NBTTagCompound)stack.getTagCompound().getTag("z"); + double posZ = z.getDouble("z"); + return posZ; + } + return -1; + } + + /** + * @param stack + * @return + */ + public static int ingotColor(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.hasTagCompound() && stack.getTagCompound().hasKey("ingotColor")){ + NBTTagCompound colors = (NBTTagCompound)stack.getTagCompound().getTag("ingotColor"); + int color = colors.getInteger("ingotColor"); + return color; + } + return 16777215; + } + + // TODO + /** + * @param stack + * @return + */ + public static int gemColor(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.hasTagCompound() && stack.getTagCompound().hasKey("gemColor")){ + NBTTagCompound colors = (NBTTagCompound)stack.getTagCompound().getTag("gemColor"); + int color = colors.getInteger("gemColor"); + return color; + } + return 16777215; + } + + /** + * @param stack + * @param player + * @return + */ + @SuppressWarnings ({"rawtypes", "unchecked", "null"}) + public static List entities(ItemStack stack, EntityPlayer player) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.getTagCompound().hasKey("entities")){ + NBTTagCompound enID = (NBTTagCompound)stack.getTagCompound().getTag("entitiesID"); + List list = null; + int[] entityID; + EntityLivingBase entity; + entityID = enID.getIntArray("entitiesID"); + for(int element: entityID){ + entity = (EntityLivingBase)EntityList.createEntityByID(element, player.worldObj); + list.add(entity); + } + return list; + } + return null; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b4/5075577ed0df00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b4/5075577ed0df00141dc6c962aec96210 new file mode 100644 index 0000000..5c188fd --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b4/5075577ed0df00141dc6c962aec96210 @@ -0,0 +1,87 @@ +package darkknight.jewelrycraft.effects; + +import net.minecraft.block.BlockOre; +import net.minecraft.client.Minecraft; +import net.minecraft.client.settings.GameSettings.Options; +import net.minecraft.entity.monster.EntityEnderman; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.biome.BiomeGenBase; +import cpw.mods.fml.relauncher.ReflectionHelper; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; + +public class EffectEnderEye extends ModifierEffects +{ + private boolean originalVD = false; + private float originalViewDistance; + + public EffectEnderEye() + { + super(new ItemStack(Items.ender_eye)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemEarrings && exists && !player.worldObj.isRemote){ + for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ + EntityEnderman enderman = (EntityEnderman)e; + ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); + Vec3 vec3 = player.getLook(1.0F).normalize(); + Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); + double d0 = vec31.lengthVector(); + vec31 = vec31.normalize(); + double d1 = vec3.dotProduct(vec31); + if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ + // Positive earrings + if (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0) enderman.setTarget(null); + // Negative earrings + if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2 + JewelryNBT.numberOfModifiers(item) / 4)); + } + } + } + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote){ + ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); + if (chunkposition != null){ + Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX) * (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0 ? 1 : -1); + Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ) * (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0 ? 1 : -1); + } + } + // Positive bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 150 - JewelryNBT.numberOfModifiers(item) * 10, 2 - JewelryNBT.numberOfModifiers(item) / 5)); + // Negative bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && rand.nextInt(520 - JewelryNBT.numberOfModifiers(item) * 20) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1), player.posY, player.posZ + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1)); + // Negative ring + if (jewelry instanceof ItemRing && exists) Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 0.2F - JewelryNBT.numberOfModifiers(item) * 0.1F); + // Positive ring + if (jewelry instanceof ItemRing && exists && rand.nextInt(180 + JewelryNBT.numberOfModifiers(item)*20) == 12){ + for(int i = (int)player.posX - 2; i <= (int)player.posX + 2; i++) + for(int j = (int)player.posY - 2; j <= (int)player.posY + 2; j++) + for(int k = (int)player.posZ - 2; k <= (int)player.posZ + 2; k++) + if (player.worldObj.getBlock(i, j, k) instanceof BlockOre) player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "You sense some " + player.worldObj.getBlock(i, j, k).getLocalizedName() + " around you.")); + } + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100 + JewelryNBT.numberOfModifiers(item)*30, 1)); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b5/00a0532bbbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b5/00a0532bbbd000141b65e2fc7f94332d deleted file mode 100644 index 6494f00..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b5/00a0532bbbd000141b65e2fc7f94332d +++ /dev/null @@ -1,112 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/106fae7312cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/106fae7312cf00141c41f52413db5e31 deleted file mode 100644 index e8d7512..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/106fae7312cf00141c41f52413db5e31 +++ /dev/null @@ -1,94 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import java.util.ArrayList; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; - -public class Curse -{ - protected int id, texturepack; - protected String name, description; - private static ArrayList curses = new ArrayList(); - public static ArrayList availableCurses = new ArrayList(); - - /** - * @param id the ID of the curse - * @param name the name of the curse - * @param texturepack the ID of the pack the texture is located in - */ - protected Curse(int id, String name, int texturepack) - { - this.id = id; - this.name = name; - this.texturepack = texturepack; - curses.add(this); - availableCurses.add(this); - } - - /** - * @return the name of the curse - */ - public String getName() - { - return name; - } - - /** - * @return the description of the curse - */ - public String getDescription() - { - return description; - } - - public Curse setDescription(String desc) - { - description = desc; - return this; - } - - /** - * @return the curse ID - */ - public int getID() - { - return id; - } - - /** - * @return the texture pack ID - */ - public int getTexturePack() - { - return texturepack; - } - - /** - * @param world - * @param player - */ - public void action(World world, EntityPlayer player) - {} - - public void deathAction(World world, EntityPlayer player) - {} - - public void respawnAction(World world, EntityPlayer player) - {} - - public void attackedAction(World world, EntityPlayer player) - {} - - public boolean itemToss() - { - return false; - } - - /** - * @return - */ - public static ArrayList getCurseList() - { - return curses; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/306a41c76fcf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/306a41c76fcf00141de78e4a85bb2469 deleted file mode 100644 index 8b4ea2a..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/306a41c76fcf00141de78e4a85bb2469 +++ /dev/null @@ -1,43 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player, Entity target) - { - if (!world.isRemote && !(target instanceof EntityMob) && target instanceof EntityLiving && !(target instanceof EntityHeart) && !(target instanceof EntityHalfHeart) && target.canAttackWithItem()){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (rand.nextInt(2) == 0){ - if(playerInfo.getFloat("BlackHeart") < 20F) playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 1.0F); - if(player.getMaxHealth() >= 3F){ - player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() - 1.0F); - player.attackEntityFrom(DamageSourceList.weak, 1.0F); - } - } - JewelrycraftUtil.addCursePoints(player, 10); - } - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/40a9d3b7c9df00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/40a9d3b7c9df00141dc6c962aec96210 new file mode 100644 index 0000000..f587b8c --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/40a9d3b7c9df00141dc6c962aec96210 @@ -0,0 +1,93 @@ +package darkknight.jewelrycraft.effects; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class EffectBlazePowder extends ModifierEffects +{ + public EffectBlazePowder() + { + super(new ItemStack(Items.blaze_powder)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemNecklace && exists){ + // Positive for necklace + if (player.isBurning() && rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0) player.extinguish(); + // Negative for necklace + if (player.isInWater()) player.attackEntityFrom(DamageSource.drown, 1f + (JewelryNBT.numberOfModifiers(item) - 1) * 0.1F); + } + // Negative for bracelet + if (jewelry instanceof ItemBracelet && exists && player.isInWater()){ + double slowAmount = 0.6D + (JewelryNBT.numberOfModifiers(item) - 1)*0.05D; + player.motionX *= slowAmount; + player.motionY *= slowAmount; + player.motionZ *= slowAmount; + player.motionY -= (0.02D + (JewelryNBT.numberOfModifiers(item) - 1)*0.005D); + if (player.isCollidedHorizontally) player.motionY = 0.30000001192092896D; + } + // Negative for earrings + if (jewelry instanceof ItemEarrings && exists){ + if (player.getAir() >= 300) player.setAir(player.getAir() / 2); + else player.setAir(player.getAir() - 1); + } + } + + @Override + public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + // Balanced for ring + if (jewelry instanceof ItemRing && exists && !player.isInWater()) target.setFire(2); + return false; + } + + @Override + public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + // int pos = JewelryNBT.doesModifierExist(item, modifier); + // if (jewelry instanceof ItemEarrings && pos != -1 && rand.nextInt(4) == 0) if (source == DamageSource.lava || source == DamageSource.inFire || source == DamageSource.onFire){ + // //Positive for earrings + // int stackSize = JewelryNBT.modifier(item).get(pos).stackSize; + // player.heal((float)(0.05 * stackSize)); + // return true; + // } + // //Positive for bracelet + // if (jewelry instanceof ItemBracelet && pos != -1) if (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava && player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY - 0.7, player.boundingBox.maxZ), Material.lava) && !player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY + 0.9, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY, player.boundingBox.maxZ), Material.lava)) return true; + return false; + } + + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + {} + + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (jewelry instanceof ItemEarrings && exists && rand.nextInt(4) == 0) if (source == DamageSource.lava || source == DamageSource.inFire || source == DamageSource.onFire){ + // Positive for earrings + int stackSize = JewelryNBT.modifierSize(item, modifier); + player.heal((float)(0.05 * stackSize)); + playerInfo.setBoolean("negateDamage", true); + } + // Positive for bracelet + if (jewelry instanceof ItemBracelet && exists) if (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava && player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY - 0.7, player.boundingBox.maxZ), Material.lava) && !player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY + 0.9, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY, player.boundingBox.maxZ), Material.lava)) playerInfo.setBoolean("negateDamage", true); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/606b4ad414cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/606b4ad414cf00141c41f52413db5e31 deleted file mode 100644 index ec363f6..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b6/606b4ad414cf00141c41f52413db5e31 +++ /dev/null @@ -1,458 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0 && playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(player.worldObj, player); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - // int grade = 1 + player.worldObj.rand.nextInt(2); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - // if (!entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/506e1ce570cf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/506e1ce570cf00141de78e4a85bb2469 deleted file mode 100644 index a59d8d2..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/506e1ce570cf00141de78e4a85bb2469 +++ /dev/null @@ -1,463 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setFloat("BlueHeart", 0f); - playerInfo.setFloat("BlackHeart", 0f); - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/b04a00579cd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/b04a00579cd000141b65e2fc7f94332d deleted file mode 100644 index b58d01a..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/b04a00579cd000141b65e2fc7f94332d +++ /dev/null @@ -1,48 +0,0 @@ -package darkknight.jewelrycraft.container; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import darkknight.jewelrycraft.client.GuiGuide; -import darkknight.jewelrycraft.item.ItemList; - -public class GuiTabIntroduction extends GuiTab -{ - public GuiTabIntroduction(int id) - { - super("Introduction", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(ItemList.ring); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - String text = ""; - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - text = "Welcome to Jewelrycraft 2! This mod is about making jewelry that you can modify to your own will. To find out how to create a jewelry, please consult the book and look at the Smelter block. To add modifiers to it you need to perform a ritual. To see how to do that, look at the Cursed Eye"; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - case 2: - text = "block in this giude."; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/b0804930bcd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/b0804930bcd000141b65e2fc7f94332d deleted file mode 100644 index 13180bf..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/b0804930bcd000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate, 0, 0, 0); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate, 0, 0, 0); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate, 0, 0, 0); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate, 0, 0, 0); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate, 0, 0, 0); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate, 0, 0, 0); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate, 0, 0, 0); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item, float xRot, float yRot, float zRot) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 153, 12, 12); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, x, y + 10); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 15, y + 25, 40f, false, xRot, yRot, zRot); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate, 0, 0, 0); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/e0125a0b06de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/e0125a0b06de00141043c3025ec60dfc new file mode 100644 index 0000000..f4496ed --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/e0125a0b06de00141043c3025ec60dfc @@ -0,0 +1,465 @@ +package darkknight.jewelrycraft.events; + +import ibxm.Player; +import java.io.EOFException; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Iterator; +import java.util.List; +import java.util.Random; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompressedStreamTools; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.MathHelper; +import net.minecraftforge.client.event.EntityViewRenderEvent; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.event.entity.item.ItemTossEvent; +import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.living.LivingDeathEvent; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingFallEvent; +import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; +import net.minecraftforge.event.world.WorldEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.config.ConfigHandler; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.entities.EntityHalfHeart; +import darkknight.jewelrycraft.entities.EntityHeart; +import darkknight.jewelrycraft.item.ItemBaseJewelry; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemList; +import darkknight.jewelrycraft.network.PacketClearColorCache; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.network.PacketSendCurseStats; +import darkknight.jewelrycraft.network.PacketSendPlayerInfo; +import darkknight.jewelrycraft.util.BlockUtils; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +/** + * Code taken from OpenBlocks + */ +public class EntityEventHandler +{ + /** + * @param event + */ + @SubscribeEvent + public void onEntityJoinWorld(EntityJoinWorldEvent event) + { + if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + final Entity entity = event.entity; + if (!event.world.isRemote && entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); + if (shouldGiveManual){ + ItemStack manual = new ItemStack(ItemList.guide); + if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); + persistTag.setBoolean("givenGuide", true); + } + boolean render = persistTag.getBoolean("fancyRender"); + JewelrycraftMod.fancyRender = render; + for(Curse curse: Curse.getCurseList()) + if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); + persistTag.setBoolean("sendInfo", true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityUpdate(LivingUpdateEvent event) + { + Entity entity = event.entity; + if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ + entity.motionX *= 0D; + entity.motionZ *= 0D; + entity.motionY *= 0D; + entity.rotationPitch = entity.prevRotationPitch; + entity.rotationYaw = entity.prevRotationYaw; + entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); + if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); + entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); + if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ + player.motionX *= 0D; + player.motionZ *= 0D; + player.motionY *= 0D; + player.rotationPitch = entity.prevRotationPitch; + player.rotationYaw = entity.prevRotationYaw; + playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); + if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); + player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); + } + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if(item != null) ((ItemBaseJewelry)item.getItem()).action(item, player); + } + if (!player.worldObj.isRemote){ + if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); + if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); + } + if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); + if (playerInfo.getBoolean("sendInfo")){ + JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); + playerInfo.setBoolean("sendInfo", false); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); + } + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityAttacked(LivingAttackEvent event) + { + Entity entity = event.entityLiving; + if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); + if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("negateDamage")){ + playerInfo.setBoolean("negateDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); + } + if (player.getHealth() != player.prevHealth){ + if (playerInfo.getFloat("WhiteHeart") > 0){ + playerInfo.setFloat("WhiteHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getFloat("BlueHeart") > 0){ + float damage = playerInfo.getFloat("BlueHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlueHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlueHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + }else if (playerInfo.getFloat("BlackHeart") > 0){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); + List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); + if (enemies != null && !enemies.isEmpty()){ + Iterator iterator = enemies.iterator(); + while (iterator.hasNext()){ + Entity enemy = (Entity)iterator.next(); + enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); + } + } + float damage = playerInfo.getFloat("BlackHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlackHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlackHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + } + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); + }else if (event.source.getEntity() instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.source.getEntity(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("weakDamage")){ + playerInfo.setBoolean("weakDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onPlayerRespawn(PlayerEvent.Clone event) + { + EntityPlayer player = event.entityPlayer; + if (!player.worldObj.isRemote){ + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + } + playerInfo.setBoolean("sendInfo", true); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param player + * @param playerInfo + * @param curse + */ + public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) + { + if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ + int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); + Curse cur = Curse.availableCurses.get(no); + playerInfo.setInteger(cur.getName(), 1); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) + { + Curse cur = Curse.getCurseList().get(curseID); + if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ + playerInfo.setInteger(cur.getName(), grade); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + @SubscribeEvent + public void itemToss(ItemTossEvent event) + { + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, Variables.MODID); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ + EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); + entityitem.motionX = 0; + entityitem.motionZ = 0; + entityitem.motionY = 0.11000000298023224D; + event.player.worldObj.spawnEntityInWorld(entityitem); + List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; + Iterator plrs = players.iterator(); + while (plrs.hasNext()) + ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); + event.setCanceled(true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void playerFileSave(PlayerEvent.SaveToFile event) + { + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityDead(LivingDeathEvent event) + { + final Entity entity = event.entity; + Random rand = new Random(); + String[] types = {"Red", "Blue", "White", "Black"}; + if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ + EntityLiving live = (EntityLiving)entity; + String type = types[rand.nextInt(4)]; + if (rand.nextInt(6) == 0){ + if (type == "White"){ + EntityHeart h = new EntityHalfHeart(live.worldObj); + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + }else{ + for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ + EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; + EntityHeart h = hearts[rand.nextInt(2)]; + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + } + } + } + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ + for(Curse l: Curse.getCurseList()){ + if (playerInfo.getInteger(l.getName()) == 1){ + playerInfo.setInteger(l.getName(), 0); + if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); + }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); + } + if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + playerInfo.setBoolean("sendInfo", true); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldLoad(WorldEvent.Load event) + { + if (!event.world.isRemote){ + new File(JewelrycraftMod.dir + File.separator + Variables.MODID).mkdirs(); + JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + Variables.MODID, "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); + try{ + if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldSave(WorldEvent.Save event) + { + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogColors(EntityViewRenderEvent.FogColors event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + event.red = 0f; + event.green = 0f; + event.blue = 0f; + } + } + if (event.isCancelable()) event.setCanceled(true); + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogDensity(EntityViewRenderEvent.FogDensity event) + {} + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void renderFog(EntityViewRenderEvent.RenderFogEvent event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); + GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); + } + } + if (event.isCancelable()) event.setCanceled(true); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/f0e12b0e9cd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/f0e12b0e9cd000141b65e2fc7f94332d deleted file mode 100644 index 2da7b57..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b7/f0e12b0e9cd000141b65e2fc7f94332d +++ /dev/null @@ -1,48 +0,0 @@ -package darkknight.jewelrycraft.container; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import darkknight.jewelrycraft.client.GuiGuide; -import darkknight.jewelrycraft.item.ItemList; - -public class GuiTabIntroduction extends GuiTab -{ - public GuiTabIntroduction(int id) - { - super("Introduction", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(ItemList.ring); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - String text = ""; - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - text = "Welcome to Jewelrycraft 2! This mod is about making jewelry that you can modify to your own will. To find out how to create a jewelry, please consult the book and look at the Smelter block. To add modifiers to it you need to perform a ritual. To see how to do that, look at the Cursed Eye block"; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - case 2: - text = "in the book."; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/10f70a8cbed000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/10f70a8cbed000141b65e2fc7f94332d deleted file mode 100644 index 2d4f40b..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/10f70a8cbed000141b65e2fc7f94332d +++ /dev/null @@ -1,241 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.block.BlockShadowEye; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else if (item.isItemEqual(new ItemStack(BlockList.handPedestal))){ - GL11.glScalef(1.2F, 1.2F, 1.2F); - GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); -// GL11.glTranslatef(0F, 0.1F, 0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ - // GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if (xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - if (Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockShadowEye) GL11.glTranslatef(0F, 0F, 0.025F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/60aefdf029de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/60aefdf029de00141043c3025ec60dfc new file mode 100644 index 0000000..e79a0d0 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/60aefdf029de00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints")){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/80c3ddc026de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/80c3ddc026de00141043c3025ec60dfc new file mode 100644 index 0000000..89a667f --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/80c3ddc026de00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 20 + (size + 20) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 20, 7 + (size + 6) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/e03e7349a6ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/e03e7349a6ce00141801ff0972626827 deleted file mode 100644 index f7f5ea0..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/e03e7349a6ce00141801ff0972626827 +++ /dev/null @@ -1,104 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import java.util.Iterator; -import java.util.List; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class EffectFeather extends ModifierEffects -{ - public EffectFeather() - { - super(new ItemStack(Items.feather)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - // Positive earrings - if (jewelry instanceof ItemEarrings && pos != -1){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); - List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); - if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ - Iterator iterator = list.iterator(); - while (iterator.hasNext()){ - EntityArrow arrow = (EntityArrow)iterator.next(); - if (rand.nextInt(3) == 0 && (arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0)) arrow.setDead(); - } - } - } - // Positive bracelet - if (jewelry instanceof ItemBracelet && pos != -1){ - if (player.motionY < 0) player.motionY *= 0.6D; - player.setAIMoveSpeed(player.getAIMoveSpeed() / 2); - player.fallDistance = 0F; - } - } - - @Override - public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - NBTTagCompound enemyData = target.getEntityData(); - if (jewelry instanceof ItemRing && pos != -1 && enemyData.getInteger("reAttacked") == 0){ - enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); - target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); - if (rand.nextInt(2) == 0){ - enemyData.setInteger("stunTime", 50); - enemyData.setBoolean("stunned", true); - } - playerInfo.setBoolean("weakDamage", true); - playerInfo.setBoolean("stunned", true); - playerInfo.setInteger("stunTime", 50); - } - if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (jewelry instanceof ItemNecklace && pos != -1 && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); - playerInfo.setBoolean("negateDamage", true); - } - // Negative necklace - if (jewelry instanceof ItemNecklace && pos != -1 && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); - // Negative earrings - if (jewelry instanceof ItemEarrings && pos != -1 && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/e0b1d7d7b6d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/e0b1d7d7b6d000141b65e2fc7f94332d deleted file mode 100644 index a1b8dfc..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b8/e0b1d7d7b6d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 145, 150, 35, 30); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() - 20, gui.getTop() + 15); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/307c0486d0df00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/307c0486d0df00141dc6c962aec96210 new file mode 100644 index 0000000..89e2fab --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/307c0486d0df00141dc6c962aec96210 @@ -0,0 +1,87 @@ +package darkknight.jewelrycraft.effects; + +import net.minecraft.block.BlockOre; +import net.minecraft.client.Minecraft; +import net.minecraft.client.settings.GameSettings.Options; +import net.minecraft.entity.monster.EntityEnderman; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.biome.BiomeGenBase; +import cpw.mods.fml.relauncher.ReflectionHelper; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; + +public class EffectEnderEye extends ModifierEffects +{ + private boolean originalVD = false; + private float originalViewDistance; + + public EffectEnderEye() + { + super(new ItemStack(Items.ender_eye)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemEarrings && exists && !player.worldObj.isRemote){ + for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ + EntityEnderman enderman = (EntityEnderman)e; + ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); + Vec3 vec3 = player.getLook(1.0F).normalize(); + Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); + double d0 = vec31.lengthVector(); + vec31 = vec31.normalize(); + double d1 = vec3.dotProduct(vec31); + if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ + // Positive earrings + if (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0) enderman.setTarget(null); + // Negative earrings + if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2 + JewelryNBT.numberOfModifiers(item) / 4)); + } + } + } + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote){ + ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); + if (chunkposition != null){ + Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX) * (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0 ? 1 : -1); + Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ) * (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0 ? 1 : -1); + } + } + // Positive bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 150 - JewelryNBT.numberOfModifiers(item) * 10, 2 - JewelryNBT.numberOfModifiers(item) / 5)); + // Negative bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && rand.nextInt(520 - JewelryNBT.numberOfModifiers(item) * 20) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1), player.posY, player.posZ + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1)); + // Negative ring + if (jewelry instanceof ItemRing && exists) Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 2F - JewelryNBT.numberOfModifiers(item) * 0.1F); + // Positive ring + if (jewelry instanceof ItemRing && exists && rand.nextInt(180 + JewelryNBT.numberOfModifiers(item)*20) == 12){ + for(int i = (int)player.posX - 2; i <= (int)player.posX + 2; i++) + for(int j = (int)player.posY - 2; j <= (int)player.posY + 2; j++) + for(int k = (int)player.posZ - 2; k <= (int)player.posZ + 2; k++) + if (player.worldObj.getBlock(i, j, k) instanceof BlockOre) player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "You sense some " + player.worldObj.getBlock(i, j, k).getLocalizedName() + " around you.")); + } + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100 + JewelryNBT.numberOfModifiers(item)*30, 1)); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/309ab103b0d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/309ab103b0d000141b65e2fc7f94332d deleted file mode 100644 index 9117357..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/309ab103b0d000141b65e2fc7f94332d +++ /dev/null @@ -1,246 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_LIGHT0); - } - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - GL11.glDisable(GL11.GL_LIGHT0); - GL11.glDisable(GL11.GL_LIGHTING); - } - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ - GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - if(ItemStack.areItemStacksEqual(item, new ItemStack(Blocks.light_weighted_pressure_plate, 1, 0)))GL11.glRotatef(25.0F, -1.0F, 0.0F, 0.0F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_LIGHT0); - } - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - GL11.glDisable(GL11.GL_LIGHT0); - GL11.glDisable(GL11.GL_LIGHTING); - } - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - RenderHelper.disableStandardItemLighting(); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/a0900f1428de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/a0900f1428de00141043c3025ec60dfc new file mode 100644 index 0000000..92d4ba9 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/a0900f1428de00141043c3025ec60dfc @@ -0,0 +1,464 @@ +package darkknight.jewelrycraft.events; + +import ibxm.Player; +import java.io.EOFException; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Iterator; +import java.util.List; +import java.util.Random; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompressedStreamTools; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.MathHelper; +import net.minecraftforge.client.event.EntityViewRenderEvent; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.event.entity.item.ItemTossEvent; +import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.living.LivingDeathEvent; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingFallEvent; +import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; +import net.minecraftforge.event.world.WorldEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.config.ConfigHandler; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.entities.EntityHalfHeart; +import darkknight.jewelrycraft.entities.EntityHeart; +import darkknight.jewelrycraft.item.ItemBaseJewelry; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemList; +import darkknight.jewelrycraft.network.PacketClearColorCache; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.network.PacketSendCurseStats; +import darkknight.jewelrycraft.network.PacketSendPlayerInfo; +import darkknight.jewelrycraft.util.BlockUtils; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +/** + * Code taken from OpenBlocks + */ +public class EntityEventHandler +{ + /** + * @param event + */ + @SubscribeEvent + public void onEntityJoinWorld(EntityJoinWorldEvent event) + { + if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + final Entity entity = event.entity; + if (!event.world.isRemote && entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); + if (shouldGiveManual){ + ItemStack manual = new ItemStack(ItemList.guide); + if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); + persistTag.setBoolean("givenGuide", true); + } + boolean render = persistTag.getBoolean("fancyRender"); + JewelrycraftMod.fancyRender = render; + for(Curse curse: Curse.getCurseList()) persistTag.setInteger(curse.getName(), 1); + persistTag.setBoolean("sendInfo", true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityUpdate(LivingUpdateEvent event) + { + Entity entity = event.entity; + if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ + entity.motionX *= 0D; + entity.motionZ *= 0D; + entity.motionY *= 0D; + entity.rotationPitch = entity.prevRotationPitch; + entity.rotationYaw = entity.prevRotationYaw; + entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); + if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); + entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); + if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ + player.motionX *= 0D; + player.motionZ *= 0D; + player.motionY *= 0D; + player.rotationPitch = entity.prevRotationPitch; + player.rotationYaw = entity.prevRotationYaw; + playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); + if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); + player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); + } + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if(item != null) ((ItemBaseJewelry)item.getItem()).action(item, player); + } + if (!player.worldObj.isRemote){ + if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); + if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); + } + if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); + if (playerInfo.getBoolean("sendInfo")){ + JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); + playerInfo.setBoolean("sendInfo", false); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && playerInfo.getInteger("cursePoints") > 0) curse.action(player.worldObj, player); + } + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityAttacked(LivingAttackEvent event) + { + Entity entity = event.entityLiving; + if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); + if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("negateDamage")){ + playerInfo.setBoolean("negateDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); + } + if (player.getHealth() != player.prevHealth){ + if (playerInfo.getFloat("WhiteHeart") > 0){ + playerInfo.setFloat("WhiteHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getFloat("BlueHeart") > 0){ + float damage = playerInfo.getFloat("BlueHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlueHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlueHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + }else if (playerInfo.getFloat("BlackHeart") > 0){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); + List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); + if (enemies != null && !enemies.isEmpty()){ + Iterator iterator = enemies.iterator(); + while (iterator.hasNext()){ + Entity enemy = (Entity)iterator.next(); + enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); + } + } + float damage = playerInfo.getFloat("BlackHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlackHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlackHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + } + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && playerInfo.getInteger("cursePoints") > 0) curse.attackedAction(player.worldObj, player); + }else if (event.source.getEntity() instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.source.getEntity(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("weakDamage")){ + playerInfo.setBoolean("weakDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && playerInfo.getInteger("cursePoints") > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onPlayerRespawn(PlayerEvent.Clone event) + { + EntityPlayer player = event.entityPlayer; + if (!player.worldObj.isRemote){ + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + } + playerInfo.setBoolean("sendInfo", true); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && playerInfo.getInteger("cursePoints") > 0) curse.respawnAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param player + * @param playerInfo + * @param curse + */ + public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) + { + if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ + int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); + Curse cur = Curse.availableCurses.get(no); + playerInfo.setInteger(cur.getName(), 1); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) + { + Curse cur = Curse.getCurseList().get(curseID); + if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ + playerInfo.setInteger(cur.getName(), grade); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + @SubscribeEvent + public void itemToss(ItemTossEvent event) + { + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, Variables.MODID); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss() && playerInfo.getInteger("cursePoints") > 0){ + EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); + entityitem.motionX = 0; + entityitem.motionZ = 0; + entityitem.motionY = 0.11000000298023224D; + event.player.worldObj.spawnEntityInWorld(entityitem); + List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; + Iterator plrs = players.iterator(); + while (plrs.hasNext()) + ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); + event.setCanceled(true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void playerFileSave(PlayerEvent.SaveToFile event) + { + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityDead(LivingDeathEvent event) + { + final Entity entity = event.entity; + Random rand = new Random(); + String[] types = {"Red", "Blue", "White", "Black"}; + if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ + EntityLiving live = (EntityLiving)entity; + String type = types[rand.nextInt(4)]; + if (rand.nextInt(6) == 0){ + if (type == "White"){ + EntityHeart h = new EntityHalfHeart(live.worldObj); + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + }else{ + for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ + EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; + EntityHeart h = hearts[rand.nextInt(2)]; + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + } + } + } + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ + for(Curse l: Curse.getCurseList()){ + if (playerInfo.getInteger(l.getName()) == 1){ + playerInfo.setInteger(l.getName(), 0); + if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); + }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); + } + if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + playerInfo.setBoolean("sendInfo", true); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldLoad(WorldEvent.Load event) + { + if (!event.world.isRemote){ + new File(JewelrycraftMod.dir + File.separator + Variables.MODID).mkdirs(); + JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + Variables.MODID, "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); + try{ + if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldSave(WorldEvent.Save event) + { + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogColors(EntityViewRenderEvent.FogColors event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + event.red = 0f; + event.green = 0f; + event.blue = 0f; + } + } + if (event.isCancelable()) event.setCanceled(true); + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogDensity(EntityViewRenderEvent.FogDensity event) + {} + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void renderFog(EntityViewRenderEvent.RenderFogEvent event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); + GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); + } + } + if (event.isCancelable()) event.setCanceled(true); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/c0efc084a5ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/c0efc084a5ce00141801ff0972626827 deleted file mode 100644 index fd23486..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/c0efc084a5ce00141801ff0972626827 +++ /dev/null @@ -1,103 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import java.util.Iterator; -import java.util.List; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class EffectFeather extends ModifierEffects -{ - public EffectFeather() - { - super(new ItemStack(Items.feather)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - // Positive earrings - if (jewelry instanceof ItemEarrings && pos != -1){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); - List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); - if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ - Iterator iterator = list.iterator(); - while (iterator.hasNext()){ - EntityArrow arrow = (EntityArrow)iterator.next(); - if (rand.nextInt(3) == 0 && (arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0)) arrow.setDead(); - } - } - } - // Positive bracelet - if (jewelry instanceof ItemBracelet && pos != -1){ - if (player.motionY < 0) player.motionY *= 0.6D; - player.setAIMoveSpeed(player.getAIMoveSpeed() / 2); - player.fallDistance = 0F; - } - } - - @Override - public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - NBTTagCompound enemyData = target.getEntityData(); - if (jewelry instanceof ItemRing && pos != -1 && enemyData.getInteger("reAttacked") == 0){ - enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); - target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); - if (rand.nextInt(2) == 0){ - enemyData.setInteger("stunTime", 50); - enemyData.setBoolean("stunned", true); - } - playerInfo.setBoolean("weakDamage", true); - playerInfo.setBoolean("stunned", true); - } - if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (jewelry instanceof ItemNecklace && pos != -1 && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); - playerInfo.setBoolean("negateDamage", true); - } - // Negative necklace - if (jewelry instanceof ItemNecklace && pos != -1 && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); - // Negative earrings - if (jewelry instanceof ItemEarrings && pos != -1 && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/d024d91417cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/d024d91417cf00141c41f52413db5e31 deleted file mode 100644 index 144deed..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/b9/d024d91417cf00141c41f52413db5e31 +++ /dev/null @@ -1,32 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.world.World; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player) - { - if (!world.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.getFloat("BlackHeart") < 20f && rand.nextInt(5) == 0) playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 1.0F); - JewelrycraftUtil.addCursePoints(player, 10); - } - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/20f3e540b4d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/20f3e540b4d000141b65e2fc7f94332d deleted file mode 100644 index 17e060d..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/20f3e540b4d000141b65e2fc7f94332d +++ /dev/null @@ -1,195 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 8, y + 20, 145, 150, 35, 30); - name.add(item.getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/30275f77cadf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/30275f77cadf00141dc6c962aec96210 new file mode 100644 index 0000000..fa05477 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/30275f77cadf00141dc6c962aec96210 @@ -0,0 +1,95 @@ +package darkknight.jewelrycraft.effects; + +import java.util.Iterator; +import java.util.List; +import net.minecraft.entity.Entity; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class EffectFeather extends ModifierEffects +{ + public EffectFeather() + { + super(new ItemStack(Items.feather)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive earrings + if (jewelry instanceof ItemEarrings && exists){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); + List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); + if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ + Iterator iterator = list.iterator(); + while (iterator.hasNext()){ + EntityArrow arrow = (EntityArrow)iterator.next(); + if (rand.nextInt(3) == 0 && (arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0)) arrow.setDead(); + } + } + } + // Positive bracelet + if (jewelry instanceof ItemBracelet && exists){ + if (player.motionY < 0) player.motionY *= 0.6D; +// player.capabilities.setPlayerWalkSpeed(0.1F); +// player.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.001D); + if (!player.isPotionActive(Potion.moveSlowdown) || player.getActivePotionEffect(Potion.moveSlowdown).getDuration() < 30) player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 80, 1)); + player.fallDistance = 0F; + } + } + + @Override + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + NBTTagCompound enemyData = target.getEntityData(); + if (jewelry instanceof ItemRing && exists && enemyData.getInteger("reAttacked") == 0){ + enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); + target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); + if (rand.nextInt(2) == 0){ + enemyData.setInteger("stunTime", 50); + enemyData.setBoolean("stunned", true); + } + playerInfo.setBoolean("weakDamage", true); + } + if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ + player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); + playerInfo.setBoolean("negateDamage", true); + } + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); + // Negative earrings + if (jewelry instanceof ItemEarrings && exists && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/c00c84b926de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/c00c84b926de00141043c3025ec60dfc new file mode 100644 index 0000000..4693bc4 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ba/c00c84b926de00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(20, 24 + (size + 20) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 20, 7 + (size + 6) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bb/8033e6be23cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bb/8033e6be23cf00141c41f52413db5e31 deleted file mode 100644 index 1cfd815..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bb/8033e6be23cf00141c41f52413db5e31 +++ /dev/null @@ -1,99 +0,0 @@ -package darkknight.jewelrycraft.events; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.GuiChat; -import net.minecraft.client.gui.ScaledResolution; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.MathHelper; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.event.RenderGameOverlayEvent; -import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; -import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import darkknight.jewelrycraft.curses.Curse; - -public class ScreenHandler extends Gui -{ - private Minecraft mc; - public static NBTTagCompound tagCache = null; - public static int cooldown; - static ResourceLocation texture; - static ResourceLocation hearts = new ResourceLocation("jewelrycraft", "textures/gui/hearts.png"); - - public ScreenHandler(Minecraft mc, ResourceLocation tex) - { - super(); - this.mc = mc; - texture = tex; - } - - @SubscribeEvent - public void renderScreen(RenderGameOverlayEvent event) - { - if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; - Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); - if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ - int count = 0; - int size = 32; - ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); - if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ - mc.renderEngine.bindTexture(texture); - for(Curse curse: Curse.getCurseList()){ - if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ - Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); - Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); - count++; - } - } - count = 0; - for(Curse curse: Curse.getCurseList()) - if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ - int tag = curse.getID(); - GL11.glPushMatrix(); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glScalef(0.5f, 0.5f, 0.0f); - drawTexturedModalRect(4, 4 + (size + 12) * count, tag % size * size, tag / size * size, size, size); - GL11.glPopMatrix(); - count++; - } - count = 0; - size = 16; - for(Curse curse: Curse.getCurseList()) - if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ - int tag = curse.getID(); - mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 20, 7 + (size + 6) * count, 16777215); - if (tagCache.getInteger(curse.getName()) == 2){ - mc.renderEngine.bindTexture(hearts); - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - GL11.glColor4f(1f, 1f, 1f, 0.5f); - drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); - GL11.glPopMatrix(); - } - count++; - } - } - GL11.glColor4f(1f, 1f, 1f, 1.0f); - mc.renderEngine.bindTexture(hearts); - count = 0; - if (tagCache.getFloat("BlueHeart") > 0){ - for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) - drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); - if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); - } - count++; - if (tagCache.getFloat("BlackHeart") > 0){ - for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) - drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); - if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); - } - count++; - if (tagCache.getFloat("WhiteHeart") > 0) - drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); - } - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bc/4013300e27de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bc/4013300e27de00141043c3025ec60dfc new file mode 100644 index 0000000..6735f69 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bc/4013300e27de00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 6) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bc/60c1a1249fce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bc/60c1a1249fce00141801ff0972626827 deleted file mode 100644 index aaad87d..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bc/60c1a1249fce00141801ff0972626827 +++ /dev/null @@ -1,71 +0,0 @@ -/** - * - */ -package darkknight.jewelrycraft.network; - -import java.util.Iterator; -import java.util.List; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import io.netty.buffer.ByteBuf; -import cpw.mods.fml.common.network.ByteBufUtils; -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; -import darkknight.jewelrycraft.events.PlayerRenderHandler; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * @author Sorin - * - */ -public class PacketSendCurseStats implements IMessage, IMessageHandler -{ - public PacketSendCurseStats() - { - - } - - /** - * @param message - * @param ctx - * @return - */ - @Override - public IMessage onMessage(PacketSendCurseStats message, MessageContext ctx) - { - return null; - } - - /** - * @param buf - */ - @Override - public void fromBytes(ByteBuf buf) - { - String temp = ByteBufUtils.readUTF8String(buf); - if (temp != "") - PlayerRenderHandler.greedCache = temp.split(";"); - else - PlayerRenderHandler.greedCache = new String[] { }; - } - - /** - * @param buf - */ - @Override - public void toBytes(ByteBuf buf) - { - Iterator players = MinecraftServer.getServer().getConfigurationManager().playerEntityList.iterator(); - String greedPlayers = ""; - while (players.hasNext()) - { - EntityPlayer current = players.next(); - if(PlayerUtils.getModPlayerPersistTag(current, "Jewelrycraft").getInteger(Reference.MODNAME + ":" + "Infamy") > 0) - greedPlayers = greedPlayers + (greedPlayers == "" ? "" : ";") + current.getDisplayName(); - } - ByteBufUtils.writeUTF8String(buf, greedPlayers); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bc/f0b55b69bad000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bc/f0b55b69bad000141b65e2fc7f94332d deleted file mode 100644 index e6c65f2..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/bc/f0b55b69bad000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 153, 12, 12); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, x, y + 10); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 15, y + 25, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/be/a080bd0705de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/be/a080bd0705de00141043c3025ec60dfc new file mode 100644 index 0000000..9ea76a5 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/be/a080bd0705de00141043c3025ec60dfc @@ -0,0 +1,132 @@ +package darkknight.jewelrycraft.block; + +import java.util.Random; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import darkknight.jewelrycraft.tileentity.TileEntityShadowEye; + +public class BlockShadowEye extends BlockContainer +{ + Random rand = new Random(); + + protected BlockShadowEye() + { + super(Material.rock); + } + + /** + * @param world + * @param var2 + * @return + */ + @Override + public TileEntity createNewTileEntity(World world, int var2) + { + return new TileEntityShadowEye(); + } + + /** + * @return + */ + @Override + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * @param iblockaccess + * @param i + * @param j + * @param k + * @param l + * @return + */ + @Override + public boolean shouldSideBeRendered(IBlockAccess iblockaccess, int i, int j, int k, int l) + { + return false; + } + + /** + * @return + */ + @Override + public boolean isOpaqueCube() + { + return false; + } + + /** + * @return + */ + @Override + public int getRenderType() + { + return -1; + } + + /** + * @param world + * @param i + * @param j + * @param k + * @param entityPlayer + * @param par6 + * @param par7 + * @param par8 + * @param par9 + * @return + */ + @Override + public boolean onBlockActivated(World world, int i, int j, int k, EntityPlayer entityPlayer, int par6, float par7, float par8, float par9) + { + TileEntityShadowEye tile = (TileEntityShadowEye)world.getTileEntity(i, j, k); + tile.active = true; + tile.target = entityPlayer; + return true; + } + + /** + * @param world + * @param i + * @param j + * @param k + * @param player + */ + @Override + public void onBlockClicked(World world, int i, int j, int k, EntityPlayer player) + {} + + /** + * @param world + * @param i + * @param j + * @param k + * @param entityLiving + * @param par6ItemStack + */ + @Override + public void onBlockPlacedBy(World world, int i, int j, int k, EntityLivingBase entityLiving, ItemStack par6ItemStack) + { + int rotation = MathHelper.floor_double(entityLiving.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + world.setBlockMetadataWithNotify(i, j, k, rotation, 2); + } + + /** + * @param icon + */ + @Override + public void registerBlockIcons(IIconRegister icon) + { + blockIcon = icon.registerIcon("minecraft:stonebrick"); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/be/e0c402be67dd001412dce27813e7be4a b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/be/e0c402be67dd001412dce27813e7be4a new file mode 100644 index 0000000..d6876f8 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/be/e0c402be67dd001412dce27813e7be4a @@ -0,0 +1,123 @@ +package darkknight.jewelrycraft.events; + +import java.util.Iterator; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderPlayerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.entities.renders.RenderHelper; +import darkknight.jewelrycraft.item.render.BraceletRender; +import darkknight.jewelrycraft.item.render.EarringsRender; +import darkknight.jewelrycraft.item.render.MaskRender; +import darkknight.jewelrycraft.model.ModelBracelet; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class PlayerRenderHandler +{ + MaskRender mask = new MaskRender(); + EarringsRender earrings = new EarringsRender(); + BraceletRender bracelet = new BraceletRender(); + public static String[] infamyCache = new String[]{}; + + @SubscribeEvent + public void renderScreen(RenderPlayerEvent.Specials.Post event) + { + ModelBiped main = event.renderer.modelBipedMain; + Iterator players = event.entityPlayer.worldObj.playerEntities.iterator(); + if (infamyCache != null){ + while (players.hasNext()){ + EntityPlayer player = players.next(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + System.out.println(playerInfo); + if (checkPlayerInfamy(player.getDisplayName()) && event.entityPlayer.getDisplayName().equals(player.getDisplayName())){ + float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick; + float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick; + float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick; + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glRotatef(yawOffset, 0, -1, 0); + GL11.glRotatef(yaw - 90, 0, 1, 0); + GL11.glRotatef(pitch, 0, 0, -1); + GL11.glRotatef(90F, 0, 1F, 0F); + RenderHelper.translateToHeadLevel(player); + GL11.glScalef(1.6f, 1.6f, 1.6f); + GL11.glTranslatef(-0.25F, -0.25F, -0.25F); + mask.doRender(event.entityPlayer, 0F, 0F, 0F, 0F, 0F); + GL11.glPopMatrix(); + } + if (playerInfo.hasKey("ext17") && player == event.entityPlayer){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext17"); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick; + float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick; + float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick; + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glRotatef(yawOffset, 0, -1, 0); + GL11.glRotatef(yaw - 90, 0, 1, 0); + GL11.glRotatef(pitch, 0, 0, -1); + GL11.glRotatef(90F, 0, 1F, 0F); + RenderHelper.translateToHeadLevel(player); + GL11.glScalef(0.07f, 0.07f, 0.07f); + GL11.glTranslatef(0.0F, 3.0F, -2.0F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + earrings.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0F); + GL11.glPopMatrix(); + } + for(int i = 10; i <= 13; i++) + if (playerInfo.hasKey("ext" + i) && player == event.entityPlayer){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glTranslatef((i / 12 == 1) ? -0.275F : 0.475F, 0.2F + ((i / 12 == 1) ? (i - 12) * 0.08F : (i - 10) * 0.08F), 0F); + if (player.isSneaking()) GL11.glTranslatef(0F, 0F, -((i == 10 || i == 12) ? (0.1F) : 0.05F)); + if (i / 12 == 1){ + GL11.glScalef(0.05f, 0.03f, 0.05f); + GL11.glRotatef(main.bipedRightArm.rotateAngleX * (180F / (float)Math.PI), 1F, 0F, 0F); + GL11.glRotatef(main.bipedRightArm.rotateAngleY * (180F / (float)Math.PI), 0F, 1F, 0F); + GL11.glRotatef(main.bipedRightArm.rotateAngleZ * (180F / (float)Math.PI), 0F, 0F, 1F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + bracelet.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0.0F); + }else{ + GL11.glScalef(0.05f, 0.03f, 0.05f); + GL11.glRotatef(main.bipedLeftArm.rotateAngleX * (180F / (float)Math.PI), 1F, 0F, 0F); + GL11.glRotatef(main.bipedLeftArm.rotateAngleY * (180F / (float)Math.PI), 0F, 1F, 0F); + GL11.glRotatef(main.bipedLeftArm.rotateAngleZ * (180F / (float)Math.PI), 0F, 0F, 1F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + bracelet.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0F); + } + GL11.glPopMatrix(); + } + } + } + } + + /** + * @param string + * @return + */ + private boolean checkPlayerInfamy(String string) + { + for(int i = 0; i < infamyCache.length; i++) + if (infamyCache[i].equals(string)) return true; + return false; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c/3035f90c0cde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c/3035f90c0cde00141043c3025ec60dfc new file mode 100644 index 0000000..4aebfd0 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c/3035f90c0cde00141043c3025ec60dfc @@ -0,0 +1,186 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + if ((int)f3 != -1){ + int ingotColor = (int)f3; + int red = (ingotColor >> 16) & 0xff; + int green = (ingotColor >> 8) & 0xff; + int blue = ingotColor & 0xff; +// System.out.println(red + " " + green + " " + blue); + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glColorMask(true, true, true, true); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c/70917207bed000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c/70917207bed000141b65e2fc7f94332d deleted file mode 100644 index eed8072..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c/70917207bed000141b65e2fc7f94332d +++ /dev/null @@ -1,125 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.shadowEye), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - - case 5: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 5", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_slab, 1, 5), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_slab, 1, 5), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_slab, 1, 5), 0, 0, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 5; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c0/10212e1abbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c0/10212e1abbd000141b65e2fc7f94332d deleted file mode 100644 index 0f5e172..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c0/10212e1abbd000141b65e2fc7f94332d +++ /dev/null @@ -1,112 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c0/30ee099203de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c0/30ee099203de00141043c3025ec60dfc new file mode 100644 index 0000000..3f0a3a9 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c0/30ee099203de00141043c3025ec60dfc @@ -0,0 +1,278 @@ +package darkknight.jewelrycraft.tileentity; + +import java.util.ArrayList; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import darkknight.jewelrycraft.block.BlockHandPedestal; +import darkknight.jewelrycraft.block.BlockList; +import darkknight.jewelrycraft.particles.EntityShadowsFX; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class TileEntityShadowEye extends TileEntity +{ + public int opening, timer, t = 20; + public boolean active; + public ArrayList pedestalItems = new ArrayList(); + ResourceLocation particleTexture = new ResourceLocation(Variables.MODID, "textures/particle/shadows.png"); + public EntityPlayer target; + + public TileEntityShadowEye() + { + opening = 1; + timer = 20; + active = false; + } + + /** + * @param nbt + */ + @Override + public void writeToNBT(NBTTagCompound nbt) + { + super.writeToNBT(nbt); + nbt.setInteger("opening", opening); + nbt.setInteger("timer", timer); + nbt.setBoolean("active", active); + } + + /** + * @param nbt + */ + @Override + public void readFromNBT(NBTTagCompound nbt) + { + super.readFromNBT(nbt); + opening = nbt.getInteger("opening"); + timer = nbt.getInteger("timer"); + active = nbt.getBoolean("active"); + } + + /** + * + */ + @Override + public void updateEntity() + { + super.updateEntity(); + boolean valid = isValidStructure(worldObj, xCoord, yCoord, zCoord, blockMetadata); + if (active) timer--; + if (target != null && worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(8D, 8D, 8D)).contains(target)){ + active = false; + timer = -1; + } + if (opening == 4 && timer <= 0) active = false; + if (!active && timer <= 0 && opening != 1){ + if (t > 0) t--; + if (t <= 0){ + opening--; + t = 20; + } + } + if (opening == 2 && timer <= 0 && t == 10){ + addData(worldObj, xCoord, yCoord, zCoord); + TileEntityHandPedestal target = (TileEntityHandPedestal)worldObj.getTileEntity(xCoord, yCoord - 3, zCoord); + if (target != null && target.getHeldItemStack() != null) JewelryNBT.addModifiers(target.getHeldItemStack(), pedestalItems); + } + if (active && timer <= 0){ + if (opening < 4){ + opening++; + timer = 20; + } + if (valid && opening == 4) timer = 1000; + else if (!valid){ + active = false; + timer = -1; + } + } + for(Object player: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(8D, 8D, 8D))) + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", false); + } + if (active && opening == 4){ + float din = 6F; + int i = Minecraft.getMinecraft().gameSettings.particleSetting; + for(float x = -din; x <= din; x += 0.2F) + for(float z = -din; z <= din; z += 0.2F) + if (x * x + z * z >= din * din - 1 && x * x + z * z <= din * din + 1) Minecraft.getMinecraft().effectRenderer.addEffect(new EntityShadowsFX(worldObj, xCoord + x + 0.5F, yCoord - 0.5F, zCoord + z + 0.5F, 15F, 0.04F - 0.01F * i, particleTexture)); + for(int l = 0; l <= 2 - i; l++) + worldObj.spawnParticle("depthsuspend", xCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), yCoord - 2F + worldObj.rand.nextFloat(), zCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), 0, 0, 0); + for(Object player: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(8D, 8D, 8D))) + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", true); + } + } + } + + /** + * @param world + * @param x + * @param y + * @param z + * @param metadata + * @return + */ + public boolean isValidStructure(World world, int x, int y, int z, int metadata) + { + if (world.getBlockMetadata(x, y, z) == 0 || world.getBlockMetadata(x, y, z) == 2){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x + 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x + 1, y + 1, z) != 5) return false; + if (world.getBlock(x - 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x - 1, y + 1, z) != 5) return false; + // 2nd Layer + if (world.getBlock(x + 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 2, y, z) != 1) return false; + if (world.getBlock(x + 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 1, y, z) != 4) return false; + if (world.getBlock(x - 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 1, y, z) != 5) return false; + if (world.getBlock(x - 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 2, y, z) != 0) return false; + // 3rd Layer + if (world.getBlock(x + 2, y - 1, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 1, z) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x + 2, y - 2, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 2, z) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x + 2, y - 3, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 3, z) != Blocks.stonebrick) return false; + }else if (world.getBlockMetadata(x, y, z) == 1 || world.getBlockMetadata(x, y, z) == 3){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x, y + 1, z + 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z + 1) != 5) return false; + if (world.getBlock(x, y + 1, z - 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z - 1) != 5) return false; + // 2nd Layer + if (world.getBlock(x, y, z + 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 2) != 3) return false; + if (world.getBlock(x, y, z + 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 1) != 6) return false; + if (world.getBlock(x, y, z - 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 1) != 7) return false; + if (world.getBlock(x, y, z - 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 2) != 2) return false; + // 3rd Layer + if (world.getBlock(x, y - 1, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 1, z - 2) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x, y - 2, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 2, z - 2) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x, y - 3, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 3, z - 2) != Blocks.stonebrick) return false; + } + // 3rd Layer + if (world.getBlock(x - 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x - 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + // 4th Layer + if (world.getBlock(x - 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 2, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z + 4) != Blocks.stonebrick) return false; + // 5th Layer + // Pillars + if (world.getBlock(x - 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 3, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z + 4) != Blocks.stonebrick) return false; + // Pedestals + if (!(world.getBlock(x, y - 3, z) instanceof BlockHandPedestal)) return false; + if (world.getBlock(x - 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z + 2) != 1) return false; + if (world.getBlock(x - 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x - 5, y - 3, z) != 2) return false; + if (world.getBlock(x - 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z - 2) != 3) return false; + if (world.getBlock(x - 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z - 4) != 3) return false; + if (world.getBlock(x, y - 3, z - 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z - 5) != 4) return false; + if (world.getBlock(x + 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z - 4) != 5) return false; + if (world.getBlock(x + 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z - 2) != 5) return false; + if (world.getBlock(x + 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x + 5, y - 3, z) != 6) return false; + if (world.getBlock(x + 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z + 2) != 7) return false; + if (world.getBlock(x + 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z + 4) != 7) return false; + if (world.getBlock(x, y - 3, z + 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z + 5) != 0) return false; + if (world.getBlock(x - 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z + 4) != 1) return false; + return true; + } + + /** + * @param world + * @param x + * @param y + * @param z + */ + public void addData(World world, int x, int y, int z) + { + pedestalItems.clear(); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z - 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z + 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z + 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z + 4)); + } + + /** + * @param pedestal + */ + public void addPedestalInfo(TileEntityHandPedestal pedestal) + { + ItemStack heldItemStack; + if (pedestal != null && (heldItemStack = pedestal.getHeldItemStack()) != null){ + if (pedestalItems.isEmpty()) pedestalItems.add(heldItemStack.copy()); + else{ + boolean hasItem = false; + int index = 0; + for(int ind = 0; ind < pedestalItems.size() && !hasItem; ind++) + if (heldItemStack.getItem().equals(pedestalItems.get(ind).getItem()) && heldItemStack.getItemDamage() == pedestalItems.get(ind).getItemDamage()){ + index = ind; + hasItem = true; + if (heldItemStack.hasTagCompound() && pedestalItems.get(ind).hasTagCompound() && !heldItemStack.getTagCompound().equals(pedestalItems.get(ind).getTagCompound())) hasItem = false; + } + if (!hasItem) pedestalItems.add(heldItemStack.copy()); + else{ + ItemStack object = pedestalItems.get(index).copy(); + object.stackSize++; + pedestalItems.set(index, object); + } + } + pedestal.removeHeldItemStack(); + pedestal.openHand(); + } + else if(pedestal != null && target != null) JewelrycraftUtil.addCursePoints(target, 20); + } + + /** + * @return + */ + @Override + public Packet getDescriptionPacket() + { + NBTTagCompound nbttagcompound = new NBTTagCompound(); + writeToNBT(nbttagcompound); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 1, nbttagcompound); + } + + /** + * @param net + * @param packet + */ + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet) + { + readFromNBT(packet.func_148857_g()); + worldObj.func_147479_m(xCoord, yCoord, zCoord); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c0/4032699bb8d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c0/4032699bb8d000141b65e2fc7f94332d deleted file mode 100644 index f3ba846..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c0/4032699bb8d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 153, 12, 12); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() + x, gui.getTop() + y); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 15, y + 25, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/d097cbcdc9df00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/d097cbcdc9df00141dc6c962aec96210 new file mode 100644 index 0000000..651b084 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/d097cbcdc9df00141dc6c962aec96210 @@ -0,0 +1,84 @@ +package darkknight.jewelrycraft.effects; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class EffectBlazePowder extends ModifierEffects +{ + public EffectBlazePowder() + { + super(new ItemStack(Items.blaze_powder)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemNecklace && exists){ + // Positive for necklace + if (player.isBurning() && rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0) player.extinguish(); + // Negative for necklace + if (player.isInWater()) player.attackEntityFrom(DamageSource.drown, 1f + (JewelryNBT.numberOfModifiers(item) - 1) * 0.1F); + } + // Negative for bracelet + if (jewelry instanceof ItemBracelet && exists && player.isInWater()){ + double slowAmount = 0.6D + (JewelryNBT.numberOfModifiers(item) - 1)*0.05D; + player.motionX *= slowAmount; + player.motionY *= slowAmount; + player.motionZ *= slowAmount; + player.motionY -= (0.02D + (JewelryNBT.numberOfModifiers(item) - 1)*0.005D); + if (player.isCollidedHorizontally) player.motionY = 0.30000001192092896D; + } + // Negative for earrings + if (jewelry instanceof ItemEarrings && exists){ + if (player.getAir() >= 300) player.setAir(player.getAir() / 2); + else player.setAir(player.getAir() - JewelryNBT.numberOfModifiers(item)); + } + } + + @Override + public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + // Balanced for ring + if (jewelry instanceof ItemRing && exists && !player.isInWater()) target.setFire(13 - JewelryNBT.numberOfModifiers(item)); + return false; + } + + @Override + public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + return false; + } + + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + {} + + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (jewelry instanceof ItemEarrings && exists && rand.nextInt(4) == 0) if (source == DamageSource.lava || source == DamageSource.inFire || source == DamageSource.onFire){ + // Positive for earrings + int stackSize = JewelryNBT.modifierSize(item, modifier); + player.heal((float)(0.05 * stackSize)); + playerInfo.setBoolean("negateDamage", true); + } + // Positive for bracelet + if (jewelry instanceof ItemBracelet && exists) if (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava && player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY - 0.7, player.boundingBox.maxZ), Material.lava) && !player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY + 0.9, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY, player.boundingBox.maxZ), Material.lava)) playerInfo.setBoolean("negateDamage", true); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/f01d11859ad000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/f01d11859ad000141b65e2fc7f94332d deleted file mode 100644 index e158ba9..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c1/f01d11859ad000141b65e2fc7f94332d +++ /dev/null @@ -1,74 +0,0 @@ -package darkknight.jewelrycraft.container; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabModifiers extends GuiTab -{ - int maxPages; - public GuiTabModifiers(int id) - { - super("Modifiers", id); - } - - /** - * @return - */ - @Override - public ItemStack getIcon() - { - return new ItemStack(Items.blaze_powder); - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - String text = ""; - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - text = "Although you can add anything as a modifier, only some objects have an effect. In this tab you can find all of modifiers that have a use and what they do, in the form of a story/riddle/poem. However different jewellery have different effects for the same modifier."; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - case 2: - text = "The ancient ones talked about a rising fire in your heart. Fret do not, for flames do not burn, but water might sting a turn. Watch your step, do not be cocky, for its protection is a bit sloppy."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), new ItemStack(Items.blaze_powder), text, 40f); - break; - case 3: - text = "Light and swift as a feather can be good all together. Enemies miss and get confused, this power can be abused. Be aware, against an arrow you can't compare. Fire is your enemy and weakness is the penalty."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), new ItemStack(Items.feather), text, 40f); - break; - case 4: - text = "Endermen may tolerate you, end portals are near too, you may find ore that is true. But be careful, for the power may make you dizzy, blind you if you're a sissy, worsen your vision if you're unaware and shift positions everywhere."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), new ItemStack(Items.ender_eye), text, 40f); - break; - } - } - - /** - * @return - */ - @Override - public int getMaxPages() - { - return 4; - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/50cdf66ecfdf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/50cdf66ecfdf00141dc6c962aec96210 new file mode 100644 index 0000000..70fdcec --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/50cdf66ecfdf00141dc6c962aec96210 @@ -0,0 +1,124 @@ +/** + * + */ +package darkknight.jewelrycraft.commands; + +/** + * @author Sorin + * + */ +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.command.WrongUsageException; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IChatComponent; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.events.EntityEventHandler; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; + +public class JewelrycraftCommands extends CommandBase +{ + private List aliases; + + public JewelrycraftCommands() + { + this.aliases = new ArrayList(); + this.aliases.add("jw"); + this.aliases.add("jewelry"); + } + + @Override + public String getCommandName() + { + return "jewelrycraft"; + } + + @Override + public String getCommandUsage(ICommandSender var1) + { + String use = "/jewelrycraft [points]"; +// use += "/jewelrycraft |"; +// use += "/jewelrycraft "; + return use; + } + + @Override + public List getCommandAliases() + { + return aliases; + } + + @Override + public void processCommand(ICommandSender commandSender, String[] astring) + { + if (astring.length == 0 || astring[0].equals("help")) throw new WrongUsageException(getCommandUsage(commandSender)); + if (astring[0].equals("getCursePoints")){ + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + commandSender.addChatMessage(new ChatComponentTranslation(Integer.toString(JewelrycraftUtil.getCursePoints(entityplayermp)))); + }else if (astring[0].equals("addCursePoints")){ + int points = CommandBase.parseIntWithMin(commandSender, astring[2], 0); + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + JewelrycraftUtil.addCursePoints(entityplayermp, points); + }else if (astring[0].equals("setCursePoints")){ + int points = CommandBase.parseIntWithMin(commandSender, astring[2], 0); + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + JewelrycraftUtil.addCursePoints(entityplayermp, points - JewelrycraftUtil.getCursePoints(entityplayermp)); + } +// else if (astring[0].equals("addModifier")){ +// ItemStack item = new ItemStack(CommandBase.getItemByText(commandSender, astring[1])); +// EntityPlayerMP entityplayermp = getPlayer(commandSender, commandSender.getCommandSenderName()); +// ArrayList modifier = new ArrayList(); +// modifier.add(item); +// JewelryNBT.addModifiers(entityplayermp.getCurrentEquippedItem(), modifier); +// } +// else if (astring[0].equals("addCurse")){ +// EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); +// int curse = Integer.valueOf(astring[2]); +// int grade = Integer.valueOf(astring[3]); +// NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(entityplayermp, "Jewelrycraft"); +// if(curse < Curse.getCurseList().size() && grade <= 2) +// { +// EntityEventHandler.addCurse(entityplayermp, playerInfo, curse, grade); +// JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); +// } +// else if(curse >= Curse.getCurseList().size()) entityplayermp.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Curse ID exceedes the maximum value of " + (Curse.getCurseList().size() - 1))); +// else entityplayermp.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Curse grade exceedes the maximum value of 2")); +// +// } + } + + @Override + public List addTabCompletionOptions(ICommandSender icommandsender, String[] astring) + { + final List MATCHES = new LinkedList(); + final String ARG_LC = astring[astring.length - 1].toLowerCase(); + if (astring.length == 1){ + if ("addCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addCursePoints"); + if ("getCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("getCursePoints"); + if ("setCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("setCursePoints"); +// if ("addModifier".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addModifier"); +// if ("addCurse".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addCurse"); + } +// else if (astring.length == 2){ +// if (!astring[0].equals("addModifier")){ +// for(String un: MinecraftServer.getServer().getAllUsernames()) +// if (un.toLowerCase().startsWith(ARG_LC)) MATCHES.add(un); +// }else if (!astring[0].equals("addCurse")) return getListOfStringsFromIterableMatchingLastWord(astring, Item.itemRegistry.getKeys()); +// } + return MATCHES.isEmpty() ? null : MATCHES; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/c09197b00ade00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/c09197b00ade00141043c3025ec60dfc new file mode 100644 index 0000000..b276345 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/c09197b00ade00141043c3025ec60dfc @@ -0,0 +1,186 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + System.out.println((int)f3); + if ((int)f3 != -1){ + int ingotColor = Math.abs((int)f3); + int alpha = (ingotColor >> 24) & 0xff; + int red = (ingotColor >> 16) & 0xff; + int green = (ingotColor >> 8) & 0xff; + int blue = ingotColor & 0xff; + GL11.glColor4f((float)red / 255, (float)green / 255, (float)blue / 255, (float)alpha / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/f0af8c117acf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/f0af8c117acf00141de78e4a85bb2469 deleted file mode 100644 index b3a4f19..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c2/f0af8c117acf00141de78e4a85bb2469 +++ /dev/null @@ -1,101 +0,0 @@ -package darkknight.jewelrycraft.events; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.GuiChat; -import net.minecraft.client.gui.ScaledResolution; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.MathHelper; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.event.RenderGameOverlayEvent; -import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; -import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import darkknight.jewelrycraft.curses.Curse; - -public class ScreenHandler extends Gui -{ - private Minecraft mc; - public static NBTTagCompound tagCache = null; - public static int cooldown; - static ResourceLocation texture; - static ResourceLocation hearts = new ResourceLocation("jewelrycraft", "textures/gui/hearts.png"); - - public ScreenHandler(Minecraft mc, ResourceLocation tex) - { - super(); - this.mc = mc; - texture = tex; - } - - @SubscribeEvent - public void renderScreen(RenderGameOverlayEvent event) - { -// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); - if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; - if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ - int count = 0; - int size = 32; - ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); - if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ - mc.renderEngine.bindTexture(texture); - for(Curse curse: Curse.getCurseList()){ - if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ - Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); - Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); - count++; - } - } - count = 0; - for(Curse curse: Curse.getCurseList()) - if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ - int tag = curse.getID(); - GL11.glPushMatrix(); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glScalef(0.5f, 0.5f, 0.0f); - drawTexturedModalRect(4, 4 + (size + 12) * count, tag % size * size, tag / size * size, size, size); - GL11.glPopMatrix(); - count++; - } - count = 0; - size = 16; - for(Curse curse: Curse.getCurseList()) - if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ - int tag = curse.getID(); - mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 20, 7 + (size + 6) * count, 16777215); - if (tagCache.getInteger(curse.getName()) == 2){ - mc.renderEngine.bindTexture(hearts); - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - GL11.glColor4f(1f, 1f, 1f, 0.5f); - drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); - GL11.glPopMatrix(); - } - count++; - } - } - GL11.glColor4f(1f, 1f, 1f, 1.0f); - GL11.glPushMatrix(); - mc.renderEngine.bindTexture(hearts); - count = 0; - if (tagCache.getFloat("BlueHeart") > 0){ - for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) - drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); - if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); - } - count++; - if (tagCache.getFloat("BlackHeart") > 0){ - for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) - drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); - if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); - } - count++; - if (tagCache.getFloat("WhiteHeart") > 0) - drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); - GL11.glPopMatrix(); - } - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c4/40367889a5ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c4/40367889a5ce00141801ff0972626827 deleted file mode 100644 index 11f3e6f..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c4/40367889a5ce00141801ff0972626827 +++ /dev/null @@ -1,446 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if(entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if(playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - // for(Curse curse: Curse.getCurseList()) - // if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if(((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); -// int grade = 1 + player.worldObj.rand.nextInt(2); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if(entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); -// if (!entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c4/b048e39fb8d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c4/b048e39fb8d000141b65e2fc7f94332d deleted file mode 100644 index ffcbc88..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c4/b048e39fb8d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 153, 12, 12); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, x, y); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 15, y + 25, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c4/b0d0b3d167dd001412dce27813e7be4a b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c4/b0d0b3d167dd001412dce27813e7be4a new file mode 100644 index 0000000..8a8b0d3 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c4/b0d0b3d167dd001412dce27813e7be4a @@ -0,0 +1,123 @@ +package darkknight.jewelrycraft.events; + +import java.util.Iterator; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderPlayerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.entities.renders.RenderHelper; +import darkknight.jewelrycraft.item.render.BraceletRender; +import darkknight.jewelrycraft.item.render.EarringsRender; +import darkknight.jewelrycraft.item.render.MaskRender; +import darkknight.jewelrycraft.model.ModelBracelet; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class PlayerRenderHandler +{ + MaskRender mask = new MaskRender(); + EarringsRender earrings = new EarringsRender(); + BraceletRender bracelet = new BraceletRender(); + public static String[] infamyCache = new String[]{}; + + @SubscribeEvent + public void renderScreen(RenderPlayerEvent.Specials.Post event) + { + ModelBiped main = event.renderer.modelBipedMain; + Iterator players = event.entityPlayer.worldObj.playerEntities.iterator(); + if (infamyCache != null){ + while (players.hasNext()){ + EntityPlayer player = players.next(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); +// System.out.println(player + " | " + playerInfo); + if (checkPlayerInfamy(player.getDisplayName()) && event.entityPlayer.getDisplayName().equals(player.getDisplayName())){ + float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick; + float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick; + float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick; + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glRotatef(yawOffset, 0, -1, 0); + GL11.glRotatef(yaw - 90, 0, 1, 0); + GL11.glRotatef(pitch, 0, 0, -1); + GL11.glRotatef(90F, 0, 1F, 0F); + RenderHelper.translateToHeadLevel(player); + GL11.glScalef(1.6f, 1.6f, 1.6f); + GL11.glTranslatef(-0.25F, -0.25F, -0.25F); + mask.doRender(event.entityPlayer, 0F, 0F, 0F, 0F, 0F); + GL11.glPopMatrix(); + } + if (playerInfo.hasKey("ext17") && player == event.entityPlayer){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext17"); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick; + float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick; + float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick; + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glRotatef(yawOffset, 0, -1, 0); + GL11.glRotatef(yaw - 90, 0, 1, 0); + GL11.glRotatef(pitch, 0, 0, -1); + GL11.glRotatef(90F, 0, 1F, 0F); + RenderHelper.translateToHeadLevel(player); + GL11.glScalef(0.07f, 0.07f, 0.07f); + GL11.glTranslatef(0.0F, 3.0F, -2.0F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + earrings.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0F); + GL11.glPopMatrix(); + } + for(int i = 10; i <= 13; i++) + if (playerInfo.hasKey("ext" + i) && player == event.entityPlayer){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glTranslatef((i / 12 == 1) ? -0.275F : 0.475F, 0.2F + ((i / 12 == 1) ? (i - 12) * 0.08F : (i - 10) * 0.08F), 0F); + if (player.isSneaking()) GL11.glTranslatef(0F, 0F, -((i == 10 || i == 12) ? (0.1F) : 0.05F)); + if (i / 12 == 1){ + GL11.glScalef(0.05f, 0.03f, 0.05f); + GL11.glRotatef(main.bipedRightArm.rotateAngleX * (180F / (float)Math.PI), 1F, 0F, 0F); + GL11.glRotatef(main.bipedRightArm.rotateAngleY * (180F / (float)Math.PI), 0F, 1F, 0F); + GL11.glRotatef(main.bipedRightArm.rotateAngleZ * (180F / (float)Math.PI), 0F, 0F, 1F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + bracelet.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0.0F); + }else{ + GL11.glScalef(0.05f, 0.03f, 0.05f); + GL11.glRotatef(main.bipedLeftArm.rotateAngleX * (180F / (float)Math.PI), 1F, 0F, 0F); + GL11.glRotatef(main.bipedLeftArm.rotateAngleY * (180F / (float)Math.PI), 0F, 1F, 0F); + GL11.glRotatef(main.bipedLeftArm.rotateAngleZ * (180F / (float)Math.PI), 0F, 0F, 1F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + bracelet.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0F); + } + GL11.glPopMatrix(); + } + } + } + } + + /** + * @param string + * @return + */ + private boolean checkPlayerInfamy(String string) + { + for(int i = 0; i < infamyCache.length; i++) + if (infamyCache[i].equals(string)) return true; + return false; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c4/d08f4aa603de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c4/d08f4aa603de00141043c3025ec60dfc new file mode 100644 index 0000000..1153688 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c4/d08f4aa603de00141043c3025ec60dfc @@ -0,0 +1,278 @@ +package darkknight.jewelrycraft.tileentity; + +import java.util.ArrayList; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import darkknight.jewelrycraft.block.BlockHandPedestal; +import darkknight.jewelrycraft.block.BlockList; +import darkknight.jewelrycraft.particles.EntityShadowsFX; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class TileEntityShadowEye extends TileEntity +{ + public int opening, timer, t = 20; + public boolean active; + public ArrayList pedestalItems = new ArrayList(); + ResourceLocation particleTexture = new ResourceLocation(Variables.MODID, "textures/particle/shadows.png"); + public EntityPlayer target; + + public TileEntityShadowEye() + { + opening = 1; + timer = 20; + active = false; + } + + /** + * @param nbt + */ + @Override + public void writeToNBT(NBTTagCompound nbt) + { + super.writeToNBT(nbt); + nbt.setInteger("opening", opening); + nbt.setInteger("timer", timer); + nbt.setBoolean("active", active); + } + + /** + * @param nbt + */ + @Override + public void readFromNBT(NBTTagCompound nbt) + { + super.readFromNBT(nbt); + opening = nbt.getInteger("opening"); + timer = nbt.getInteger("timer"); + active = nbt.getBoolean("active"); + } + + /** + * + */ + @Override + public void updateEntity() + { + super.updateEntity(); + boolean valid = isValidStructure(worldObj, xCoord, yCoord, zCoord, blockMetadata); + if (active) timer--; +// if (target != null && worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(8D, 8D, 8D)).contains(target)){ +// active = false; +// timer = -1; +// } + if (opening == 4 && timer <= 0) active = false; + if (!active && timer <= 0 && opening != 1){ + if (t > 0) t--; + if (t <= 0){ + opening--; + t = 20; + } + } + if (opening == 2 && timer <= 0 && t == 10){ + addData(worldObj, xCoord, yCoord, zCoord); + TileEntityHandPedestal target = (TileEntityHandPedestal)worldObj.getTileEntity(xCoord, yCoord - 3, zCoord); + if (target != null && target.getHeldItemStack() != null) JewelryNBT.addModifiers(target.getHeldItemStack(), pedestalItems); + } + if (active && timer <= 0){ + if (opening < 4){ + opening++; + timer = 20; + } + if (valid && opening == 4) timer = 1000; + else if (!valid){ + active = false; + timer = -1; + } + } + for(Object player: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(8D, 8D, 8D))) + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", false); + } + if (active && opening == 4){ + float din = 6F; + int i = Minecraft.getMinecraft().gameSettings.particleSetting; + for(float x = -din; x <= din; x += 0.2F) + for(float z = -din; z <= din; z += 0.2F) + if (x * x + z * z >= din * din - 1 && x * x + z * z <= din * din + 1) Minecraft.getMinecraft().effectRenderer.addEffect(new EntityShadowsFX(worldObj, xCoord + x + 0.5F, yCoord - 0.5F, zCoord + z + 0.5F, 15F, 0.04F - 0.01F * i, particleTexture)); + for(int l = 0; l <= 2 - i; l++) + worldObj.spawnParticle("depthsuspend", xCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), yCoord - 2F + worldObj.rand.nextFloat(), zCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), 0, 0, 0); + for(Object player: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(8D, 8D, 8D))) + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", true); + } + } + } + + /** + * @param world + * @param x + * @param y + * @param z + * @param metadata + * @return + */ + public boolean isValidStructure(World world, int x, int y, int z, int metadata) + { + if (world.getBlockMetadata(x, y, z) == 0 || world.getBlockMetadata(x, y, z) == 2){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x + 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x + 1, y + 1, z) != 5) return false; + if (world.getBlock(x - 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x - 1, y + 1, z) != 5) return false; + // 2nd Layer + if (world.getBlock(x + 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 2, y, z) != 1) return false; + if (world.getBlock(x + 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 1, y, z) != 4) return false; + if (world.getBlock(x - 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 1, y, z) != 5) return false; + if (world.getBlock(x - 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 2, y, z) != 0) return false; + // 3rd Layer + if (world.getBlock(x + 2, y - 1, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 1, z) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x + 2, y - 2, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 2, z) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x + 2, y - 3, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 3, z) != Blocks.stonebrick) return false; + }else if (world.getBlockMetadata(x, y, z) == 1 || world.getBlockMetadata(x, y, z) == 3){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x, y + 1, z + 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z + 1) != 5) return false; + if (world.getBlock(x, y + 1, z - 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z - 1) != 5) return false; + // 2nd Layer + if (world.getBlock(x, y, z + 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 2) != 3) return false; + if (world.getBlock(x, y, z + 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 1) != 6) return false; + if (world.getBlock(x, y, z - 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 1) != 7) return false; + if (world.getBlock(x, y, z - 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 2) != 2) return false; + // 3rd Layer + if (world.getBlock(x, y - 1, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 1, z - 2) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x, y - 2, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 2, z - 2) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x, y - 3, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 3, z - 2) != Blocks.stonebrick) return false; + } + // 3rd Layer + if (world.getBlock(x - 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x - 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + // 4th Layer + if (world.getBlock(x - 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 2, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z + 4) != Blocks.stonebrick) return false; + // 5th Layer + // Pillars + if (world.getBlock(x - 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 3, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z + 4) != Blocks.stonebrick) return false; + // Pedestals + if (!(world.getBlock(x, y - 3, z) instanceof BlockHandPedestal)) return false; + if (world.getBlock(x - 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z + 2) != 1) return false; + if (world.getBlock(x - 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x - 5, y - 3, z) != 2) return false; + if (world.getBlock(x - 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z - 2) != 3) return false; + if (world.getBlock(x - 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z - 4) != 3) return false; + if (world.getBlock(x, y - 3, z - 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z - 5) != 4) return false; + if (world.getBlock(x + 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z - 4) != 5) return false; + if (world.getBlock(x + 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z - 2) != 5) return false; + if (world.getBlock(x + 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x + 5, y - 3, z) != 6) return false; + if (world.getBlock(x + 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z + 2) != 7) return false; + if (world.getBlock(x + 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z + 4) != 7) return false; + if (world.getBlock(x, y - 3, z + 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z + 5) != 0) return false; + if (world.getBlock(x - 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z + 4) != 1) return false; + return true; + } + + /** + * @param world + * @param x + * @param y + * @param z + */ + public void addData(World world, int x, int y, int z) + { + pedestalItems.clear(); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z - 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z + 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z + 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z + 4)); + } + + /** + * @param pedestal + */ + public void addPedestalInfo(TileEntityHandPedestal pedestal) + { + ItemStack heldItemStack; + if (pedestal != null && (heldItemStack = pedestal.getHeldItemStack()) != null){ + if (pedestalItems.isEmpty()) pedestalItems.add(heldItemStack.copy()); + else{ + boolean hasItem = false; + int index = 0; + for(int ind = 0; ind < pedestalItems.size() && !hasItem; ind++) + if (heldItemStack.getItem().equals(pedestalItems.get(ind).getItem()) && heldItemStack.getItemDamage() == pedestalItems.get(ind).getItemDamage()){ + index = ind; + hasItem = true; + if (heldItemStack.hasTagCompound() && pedestalItems.get(ind).hasTagCompound() && !heldItemStack.getTagCompound().equals(pedestalItems.get(ind).getTagCompound())) hasItem = false; + } + if (!hasItem) pedestalItems.add(heldItemStack.copy()); + else{ + ItemStack object = pedestalItems.get(index).copy(); + object.stackSize++; + pedestalItems.set(index, object); + } + } + pedestal.removeHeldItemStack(); + pedestal.openHand(); + } + else if(pedestal != null && target != null) JewelrycraftUtil.addCursePoints(target, 20); + } + + /** + * @return + */ + @Override + public Packet getDescriptionPacket() + { + NBTTagCompound nbttagcompound = new NBTTagCompound(); + writeToNBT(nbttagcompound); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 1, nbttagcompound); + } + + /** + * @param net + * @param packet + */ + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet) + { + readFromNBT(packet.func_148857_g()); + worldObj.func_147479_m(xCoord, yCoord, zCoord); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c5/40e0dc622bde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c5/40e0dc622bde00141043c3025ec60dfc new file mode 100644 index 0000000..286627e --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c5/40e0dc622bde00141043c3025ec60dfc @@ -0,0 +1,466 @@ +package darkknight.jewelrycraft.events; + +import ibxm.Player; +import java.io.EOFException; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Iterator; +import java.util.List; +import java.util.Random; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompressedStreamTools; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.MathHelper; +import net.minecraftforge.client.event.EntityViewRenderEvent; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.event.entity.item.ItemTossEvent; +import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.living.LivingDeathEvent; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingFallEvent; +import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; +import net.minecraftforge.event.world.WorldEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.config.ConfigHandler; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.entities.EntityHalfHeart; +import darkknight.jewelrycraft.entities.EntityHeart; +import darkknight.jewelrycraft.item.ItemBaseJewelry; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemList; +import darkknight.jewelrycraft.network.PacketClearColorCache; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.network.PacketSendCurseStats; +import darkknight.jewelrycraft.network.PacketSendPlayerInfo; +import darkknight.jewelrycraft.util.BlockUtils; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +/** + * Code taken from OpenBlocks + */ +public class EntityEventHandler +{ + /** + * @param event + */ + @SubscribeEvent + public void onEntityJoinWorld(EntityJoinWorldEvent event) + { + if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + final Entity entity = event.entity; + if (!event.world.isRemote && entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); + if (shouldGiveManual){ + ItemStack manual = new ItemStack(ItemList.guide); + if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); + persistTag.setBoolean("givenGuide", true); + } + boolean render = persistTag.getBoolean("fancyRender"); + JewelrycraftMod.fancyRender = render; + for(Curse curse: Curse.getCurseList()) + if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); + persistTag.setBoolean("sendInfo", true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityUpdate(LivingUpdateEvent event) + { + Entity entity = event.entity; + if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ + entity.motionX *= 0D; + entity.motionZ *= 0D; + entity.motionY *= 0D; + entity.rotationPitch = entity.prevRotationPitch; + entity.rotationYaw = entity.prevRotationYaw; + entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); + if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); + entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); + if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ + player.motionX *= 0D; + player.motionZ *= 0D; + player.motionY *= 0D; + player.rotationPitch = entity.prevRotationPitch; + player.rotationYaw = entity.prevRotationYaw; + playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); + if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); + player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); + } + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if(item != null) ((ItemBaseJewelry)item.getItem()).action(item, player); + } + if (!player.worldObj.isRemote){ + if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); + if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); + } + if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); + if (playerInfo.getBoolean("sendInfo")){ + JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); + playerInfo.setBoolean("sendInfo", false); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); + } + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityAttacked(LivingAttackEvent event) + { + Entity entity = event.entityLiving; + if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); + if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("negateDamage")){ + playerInfo.setBoolean("negateDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); + } + if (player.getHealth() != player.prevHealth){ + if (playerInfo.getFloat("WhiteHeart") > 0){ + playerInfo.setFloat("WhiteHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getFloat("BlueHeart") > 0){ + float damage = playerInfo.getFloat("BlueHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlueHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlueHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + }else if (playerInfo.getFloat("BlackHeart") > 0){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); + List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); + if (enemies != null && !enemies.isEmpty()){ + Iterator iterator = enemies.iterator(); + while (iterator.hasNext()){ + Entity enemy = (Entity)iterator.next(); + enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); + } + } + float damage = playerInfo.getFloat("BlackHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlackHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlackHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + } + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); + }else if (event.source.getEntity() instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.source.getEntity(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("weakDamage")){ + playerInfo.setBoolean("weakDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onPlayerRespawn(PlayerEvent.Clone event) + { + EntityPlayer player = event.entityPlayer; + if (!player.worldObj.isRemote){ + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (playerInfo.hasKey("cursePoints")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + } + playerInfo.setBoolean("sendInfo", true); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param player + * @param playerInfo + * @param curse + */ + public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) + { + System.out.println(curseNo + " " + Curse.availableCurses); + if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ + int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); + Curse cur = Curse.availableCurses.get(no); + playerInfo.setInteger(cur.getName(), 1); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) + { + Curse cur = Curse.getCurseList().get(curseID); + if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ + playerInfo.setInteger(cur.getName(), grade); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + @SubscribeEvent + public void itemToss(ItemTossEvent event) + { + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, Variables.MODID); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ + EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); + entityitem.motionX = 0; + entityitem.motionZ = 0; + entityitem.motionY = 0.11000000298023224D; + event.player.worldObj.spawnEntityInWorld(entityitem); + List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; + Iterator plrs = players.iterator(); + while (plrs.hasNext()) + ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); + event.setCanceled(true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void playerFileSave(PlayerEvent.SaveToFile event) + { + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityDead(LivingDeathEvent event) + { + final Entity entity = event.entity; + Random rand = new Random(); + String[] types = {"Red", "Blue", "White", "Black"}; + if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ + EntityLiving live = (EntityLiving)entity; + String type = types[rand.nextInt(4)]; + if (rand.nextInt(6) == 0){ + if (type == "White"){ + EntityHeart h = new EntityHalfHeart(live.worldObj); + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + }else{ + for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ + EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; + EntityHeart h = hearts[rand.nextInt(2)]; + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + } + } + } + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ + for(Curse l: Curse.getCurseList()){ + Curse.availableCurses.add(l); + if (playerInfo.getInteger(l.getName()) == 1){ + playerInfo.setInteger(l.getName(), 0); + }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); + } + if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + playerInfo.setBoolean("sendInfo", true); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldLoad(WorldEvent.Load event) + { + if (!event.world.isRemote){ + new File(JewelrycraftMod.dir + File.separator + Variables.MODID).mkdirs(); + JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + Variables.MODID, "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); + try{ + if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldSave(WorldEvent.Save event) + { + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogColors(EntityViewRenderEvent.FogColors event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + event.red = 0f; + event.green = 0f; + event.blue = 0f; + } + } + if (event.isCancelable()) event.setCanceled(true); + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogDensity(EntityViewRenderEvent.FogDensity event) + {} + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void renderFog(EntityViewRenderEvent.RenderFogEvent event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); + GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); + } + } + if (event.isCancelable()) event.setCanceled(true); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c5/e0326bc32bde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c5/e0326bc32bde00141043c3025ec60dfc new file mode 100644 index 0000000..dc8d297 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c5/e0326bc32bde00141043c3025ec60dfc @@ -0,0 +1,123 @@ +/** + * + */ +package darkknight.jewelrycraft.commands; + +/** + * @author Sorin + * + */ +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.command.WrongUsageException; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IChatComponent; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.events.EntityEventHandler; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; + +public class JewelrycraftCommands extends CommandBase +{ + private List aliases; + + public JewelrycraftCommands() + { + this.aliases = new ArrayList(); + this.aliases.add("jw"); + this.aliases.add("jewelry"); + } + + @Override + public String getCommandName() + { + return "jewelrycraft"; + } + + @Override + public String getCommandUsage(ICommandSender var1) + { + String use = "/jewelrycraft [points]"; +// use += "/jewelrycraft |"; +// use += "/jewelrycraft "; + return use; + } + + @Override + public List getCommandAliases() + { + return aliases; + } + + @Override + public void processCommand(ICommandSender commandSender, String[] astring) + { + if (astring.length == 0 || astring[0].equals("help")) throw new WrongUsageException(getCommandUsage(commandSender)); + if (astring[0].equals("getCursePoints")){ + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + commandSender.addChatMessage(new ChatComponentTranslation(Integer.toString(JewelrycraftUtil.getCursePoints(entityplayermp)))); + }else if (astring[0].equals("addCursePoints")){ + int points = CommandBase.parseIntWithMin(commandSender, astring[2], 0); + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + JewelrycraftUtil.addCursePoints(entityplayermp, points); + }else if (astring[0].equals("setCursePoints")){ + int points = CommandBase.parseIntWithMin(commandSender, astring[2], 0); + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + JewelrycraftUtil.addCursePoints(entityplayermp, points - JewelrycraftUtil.getCursePoints(entityplayermp)); + } +// else if (astring[0].equals("addModifier")){ +// ItemStack item = new ItemStack(CommandBase.getItemByText(commandSender, astring[1])); +// EntityPlayerMP entityplayermp = getPlayer(commandSender, commandSender.getCommandSenderName()); +// ArrayList modifier = new ArrayList(); +// modifier.add(item); +// JewelryNBT.addModifiers(entityplayermp.getCurrentEquippedItem(), modifier); +// } +// else if (astring[0].equals("addCurse")){ +// EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); +// int curse = Integer.valueOf(astring[2]); +// int grade = Integer.valueOf(astring[3]); +// NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(entityplayermp, "Jewelrycraft"); +// if(curse < Curse.getCurseList().size() && grade <= 2) +// { +// EntityEventHandler.addCurse(entityplayermp, playerInfo, curse, grade); +// JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); +// } +// else if(curse >= Curse.getCurseList().size()) entityplayermp.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Curse ID exceedes the maximum value of " + (Curse.getCurseList().size() - 1))); +// else entityplayermp.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Curse grade exceedes the maximum value of 2")); +// +// } + } + + @Override + public List addTabCompletionOptions(ICommandSender icommandsender, String[] astring) + { + final List MATCHES = new LinkedList(); + final String ARG_LC = astring[astring.length - 1].toLowerCase(); + if (astring.length == 1){ + if ("addCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addCursePoints"); + if ("getCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("getCursePoints"); + if ("setCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("setCursePoints"); +// if ("addModifier".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addModifier"); +// if ("addCurse".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addCurse"); + }else if (astring.length == 2){ + if (!astring[0].equals("addModifier")){ + for(String un: MinecraftServer.getServer().getAllUsernames()) + if (un.toLowerCase().startsWith(ARG_LC)) MATCHES.add(un); + }else if (!astring[0].equals("addCurse")) return getListOfStringsFromIterableMatchingLastWord(astring, Item.itemRegistry.getKeys()); + } + return MATCHES.isEmpty() ? null : MATCHES; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/7013ae1e85d000141a1fb02abca5ff55 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/7013ae1e85d000141a1fb02abca5ff55 deleted file mode 100644 index f13988b..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/7013ae1e85d000141a1fb02abca5ff55 +++ /dev/null @@ -1,79 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.block.BlockOre; -import net.minecraft.client.Minecraft; -import net.minecraft.client.settings.GameSettings.Options; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - private boolean originalVD = false; - private float originalViewDistance; - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && rand.nextInt(500) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30)*(rand.nextBoolean()?-1:1), player.posY, player.posZ + rand.nextInt(30)*(rand.nextBoolean()?-1:1)); - if (jewelry instanceof ItemRing && pos != -1 && rand.nextInt(500) == 12){ - Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 1.0F); - for(int i = (int)player.posX - 2; i <= (int)player.posX + 2; i++) - for(int j = (int)player.posY - 2; j <= (int)player.posY + 2; j++) - for(int k = (int)player.posZ - 2; k <= (int)player.posZ + 2; k++) - if(player.worldObj.getBlock(i, j, k) instanceof BlockOre) - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "You sense some " + player.worldObj.getBlock(i, j, k).getLocalizedName()) + " around you."); - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/e0433f2d7dcf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/e0433f2d7dcf00141de78e4a85bb2469 deleted file mode 100644 index c823133..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c6/e0433f2d7dcf00141de78e4a85bb2469 +++ /dev/null @@ -1,221 +0,0 @@ -package darkknight.jewelrycraft.util; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Random; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.oredict.OreDictionary; -import cpw.mods.fml.common.registry.GameData; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.events.EntityEventHandler; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; - -public class JewelrycraftUtil -{ - public static ArrayList objects = new ArrayList(); - public static ArrayList gem = new ArrayList(); - public static ArrayList jewelry = new ArrayList(); - public static ArrayList metal = new ArrayList(); - public static ArrayList ores = new ArrayList(); - public static HashMap oreToIngot = new HashMap(); - public static ArrayList jamcraftPlayers = new ArrayList(); - public static Random rand = new Random(); - - /** - * Adds gems and jewelry to their appropriate list - */ -// public static void addStuff() - { - // Jewels - for(int i = 0; i < 16; i++) - gem.add(new ItemStack(ItemList.crystal, 1, i)); - gem.add(new ItemStack(Blocks.redstone_block)); - gem.add(new ItemStack(Blocks.lapis_block)); - gem.add(new ItemStack(Blocks.obsidian)); - gem.add(new ItemStack(Items.diamond)); - gem.add(new ItemStack(Items.emerald)); - gem.add(new ItemStack(Items.ender_pearl)); - gem.add(new ItemStack(Items.nether_star)); - // Jewelry - jewelry.add(new ItemStack(ItemList.ring)); - jewelry.add(new ItemStack(ItemList.necklace)); - jewelry.add(new ItemStack(ItemList.bracelet)); - jewelry.add(new ItemStack(ItemList.earrings)); - for(Object item: GameData.getItemRegistry()){ - ArrayList items = new ArrayList(); - if (((Item)item).getHasSubtypes()) ((Item)item).getSubItems((Item)item, null, items); - else objects.add(new ItemStack((Item)item)); - - if (!items.isEmpty()) objects.addAll(items); - } - } - - /** - * Adds curse points to a player - * - * @param player the player to add the points to - * @param points amount of curse points - */ - public static void addCursePoints(EntityPlayer player, int points) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setInteger("cursePoints", playerInfo.hasKey("cursePoints") ? (playerInfo.getInteger("cursePoints") + points) : points); - playerInfo.setBoolean("playerCursePointsChanged", true); - } - - public static int getCursePoints(EntityPlayer player) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - return playerInfo.getInteger("cursePoints"); - } - - /** - * Adds the UUID's of the jamcrafters in a list - */ - public static void jamcrafters() - { - jamcraftPlayers.add("d3214311-7550-4c9c-a372-d9292c10b8a6"); - jamcraftPlayers.add("a690119f-c4a2-4bd6-a99d-d63679abb328"); - jamcraftPlayers.add("de7c9903-51fa-4a24-88cd-48faf122ca36"); - jamcraftPlayers.add("70aeb298-3a7b-46da-a393-ab10df9359f2"); - jamcraftPlayers.add("6fbe603c-14bf-4085-afdd-abe592c26e7c"); - jamcraftPlayers.add("b0d21306-36bf-4d85-84df-a956d183c45a"); - jamcraftPlayers.add("1733a31f-01f9-4f4d-82aa-7de30ca810d3"); - jamcraftPlayers.add("4833eacf-1d94-49a7-9f89-4cf88d69dcf9"); - jamcraftPlayers.add("718cf671-9084-4e78-b91f-033e80aa11bf"); - jamcraftPlayers.add("bea5e0c4-85c4-454d-a081-e1eaae6895ee"); - jamcraftPlayers.add("7ecf3e2f-fedf-4f7e-8d24-6731d078db4f"); - jamcraftPlayers.add("1b11ad3a-f0ca-4695-a019-2d7e5d83a5fd"); - jamcraftPlayers.add("3ec9ac58-2f1b-4d3f-b4eb-3b875da877ae"); - jamcraftPlayers.add("cf9fa23f-205e-4eed-aba3-9f2848cd6a4d"); - jamcraftPlayers.add("91880caa-b032-48e3-bfe8-c2c7ed31824e"); - jamcraftPlayers.add("8d0b3804-f71c-4219-897b-8c315448ea7c"); - jamcraftPlayers.add("bbb87dbe-690f-4205-bdc5-72ffb8ebc29d"); - } - - /** - * Adds a random amount of modifiers to a list - * - * @param randValue maximum number of modifiers - * @return a list containing the random modifiers - */ - public static ArrayList addRandomModifiers(int randValue) - { - ArrayList list = new ArrayList(); - for(int i = 0; i < 2 + randValue; i++){ - ItemStack item = objects.get(new Random().nextInt(objects.size())); - item.stackSize = 1 + new Random().nextInt(2); - list.add(item); - } - return list; - } - - /** - * Links ores with their appropriate ingot - */ - public static void addMetals() - { - int index = 0; - while (index < OreDictionary.getOreNames().length){ - Iterator i = OreDictionary.getOres(OreDictionary.getOreNames()[index]).iterator(); - while (i.hasNext()){ - ItemStack nextStack = i.next(); - if ((nextStack.getItem().getUnlocalizedName().toLowerCase().contains("ingot") || nextStack.getItem().getUnlocalizedName().toLowerCase().contains("alloy")) && !nextStack.getItem().getUnlocalizedName().toLowerCase().contains("powder") && !nextStack.getItem().getUnlocalizedName().toLowerCase().contains("dust") && !nextStack.getItem().getUnlocalizedName().toLowerCase().contains("block") && !metal.contains(nextStack)){ - metal.add(nextStack); - if (OreDictionary.getOres(OreDictionary.getOreNames()[index].replace("ingot", "ore")) != null){ - ores.addAll(OreDictionary.getOres(OreDictionary.getOreNames()[index].replace("ingot", "ore"))); - Iterator ores = OreDictionary.getOres(OreDictionary.getOreNames()[index].replace("ingot", "ore")).iterator(); - while (ores.hasNext()){ - ItemStack ore = ores.next(); - oreToIngot.put(ore.getItem(), nextStack); - } - } - } - } - index++; - } - } - - /** - * Checks to see if the specified item is a gem - * - * @param item ItemStack containing the item - * @return is the item a gem - */ - public static boolean isGem(ItemStack item) - { - Iterator i = gem.iterator(); - while (i.hasNext()){ - ItemStack temp = i.next(); - if (temp.getItem() == item.getItem() && temp.getItemDamage() == item.getItemDamage()) return true; - } - return false; - } - - /** - * Checks to see if the specified item is a metal - * - * @param item ItemStack containing the item - * @return is the item a metal - */ - public static boolean isMetal(ItemStack item) - { - Iterator i = metal.iterator(); - while (i.hasNext()){ - ItemStack temp = i.next(); - if (temp.getItem() == item.getItem() && temp.getItemDamage() == item.getItemDamage()) return true; - } - return false; - } - - /** - * Checks to see if the specified item is a piece of jewelry - * - * @param item ItemStack containing the item - * @return is the item a piece of jewelry - */ - public static boolean isJewelry(ItemStack item) - { - Iterator i = jewelry.iterator(); - while (i.hasNext()){ - ItemStack temp = i.next(); - if (temp.getItem() == item.getItem() && temp.getItemDamage() == item.getItemDamage()) return true; - } - return false; - } - - /** - * Checks to see if the specified item is an ore - * - * @param item ItemStack containing the item - * @return is the item an ore - */ - public static boolean isOre(ItemStack item) - { - Iterator i = ores.iterator(); - while (i.hasNext()){ - ItemStack temp = i.next(); - if (temp.getItem() == item.getItem() && temp.getItemDamage() == item.getItemDamage()) return true; - } - return false; - } - - /** - * Gets the ingot from the ore - * - * @param ore the ore - * @return the ingot - */ - public static ItemStack getIngotFromOre(Item ore) - { - return oreToIngot.get(ore); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c7/10dc615fbed000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c7/10dc615fbed000141b65e2fc7f94332d deleted file mode 100644 index ad31253..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c7/10dc615fbed000141b65e2fc7f94332d +++ /dev/null @@ -1,240 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.block.BlockShadowEye; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else if (item.isItemEqual(new ItemStack(BlockList.handPedestal))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ - // GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if (xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - if (Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockShadowEye) GL11.glTranslatef(0F, 0F, 0.025F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c7/70f09d1c7acf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c7/70f09d1c7acf00141de78e4a85bb2469 deleted file mode 100644 index 9e5b9eb..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c7/70f09d1c7acf00141de78e4a85bb2469 +++ /dev/null @@ -1,102 +0,0 @@ -package darkknight.jewelrycraft.events; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.GuiChat; -import net.minecraft.client.gui.ScaledResolution; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.MathHelper; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.event.RenderGameOverlayEvent; -import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; -import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import darkknight.jewelrycraft.curses.Curse; - -public class ScreenHandler extends Gui -{ - private Minecraft mc; - public static NBTTagCompound tagCache = null; - public static int cooldown; - static ResourceLocation texture; - static ResourceLocation hearts = new ResourceLocation("jewelrycraft", "textures/gui/hearts.png"); - - public ScreenHandler(Minecraft mc, ResourceLocation tex) - { - super(); - this.mc = mc; - texture = tex; - } - - @SubscribeEvent - public void renderScreen(RenderGameOverlayEvent event) - { -// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); - if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; - if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ - int count = 0; - int size = 32; - ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); - if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ - mc.renderEngine.bindTexture(texture); - for(Curse curse: Curse.getCurseList()){ - if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ - Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); - Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); - count++; - } - } - count = 0; - for(Curse curse: Curse.getCurseList()) - if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ - int tag = curse.getID(); - GL11.glPushMatrix(); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glScalef(0.5f, 0.5f, 0.0f); - drawTexturedModalRect(4, 4 + (size + 12) * count, tag % size * size, tag / size * size, size, size); - GL11.glPopMatrix(); - count++; - } - count = 0; - size = 16; - for(Curse curse: Curse.getCurseList()) - if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ - int tag = curse.getID(); - mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 20, 7 + (size + 6) * count, 16777215); - if (tagCache.getInteger(curse.getName()) == 2){ - mc.renderEngine.bindTexture(hearts); - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - GL11.glColor4f(1f, 1f, 1f, 0.5f); - drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); - GL11.glPopMatrix(); - } - count++; - } - } - GL11.glColor4f(1f, 1f, 1f, 1.0f); - GL11.glPushMatrix(); - mc.renderEngine.bindTexture(hearts); - count = 0; - size = 16; - if (tagCache.getFloat("BlueHeart") > 0){ - for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) - drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); - if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); - } - count++; - if (tagCache.getFloat("BlackHeart") > 0){ - for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) - drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); - if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); - } - count++; - if (tagCache.getFloat("WhiteHeart") > 0) - drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); - GL11.glPopMatrix(); - } - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c7/802694e3b6d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c7/802694e3b6d000141b65e2fc7f94332d deleted file mode 100644 index ea68151..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c7/802694e3b6d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 140, 150, 30, 30); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() - 20, gui.getTop() + 15); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c7/b0ea5e5c03de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c7/b0ea5e5c03de00141043c3025ec60dfc new file mode 100644 index 0000000..d102547 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c7/b0ea5e5c03de00141043c3025ec60dfc @@ -0,0 +1,94 @@ +package darkknight.jewelrycraft.effects; + +import java.util.Iterator; +import java.util.List; +import net.minecraft.entity.Entity; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class EffectFeather extends ModifierEffects +{ + public EffectFeather() + { + super(new ItemStack(Items.feather)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive earrings + if (jewelry instanceof ItemEarrings && pos != -1){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); + List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); + if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ + Iterator iterator = list.iterator(); + while (iterator.hasNext()){ + EntityArrow arrow = (EntityArrow)iterator.next(); + if (rand.nextInt(3) == 0 && (arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0)) arrow.setDead(); + } + } + } + // Positive bracelet + if (jewelry instanceof ItemBracelet && pos != -1){ + if (player.motionY < 0) player.motionY *= 0.6D; + player.capabilities.setPlayerWalkSpeed(0.1F); +// player.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.001D); + if (!player.isPotionActive(Potion.moveSlowdown) || player.getActivePotionEffect(Potion.moveSlowdown).getDuration() < 30) player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 80, 1)); + player.fallDistance = 0F; + } + } + + @Override + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + NBTTagCompound enemyData = target.getEntityData(); + if (jewelry instanceof ItemRing && pos != -1 && enemyData.getInteger("reAttacked") == 0){ + enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); + target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); + if (rand.nextInt(2) == 0){ + enemyData.setInteger("stunTime", 50); + enemyData.setBoolean("stunned", true); + } + playerInfo.setBoolean("weakDamage", true); + } + if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (jewelry instanceof ItemNecklace && pos != -1 && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ + player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); + playerInfo.setBoolean("negateDamage", true); + } + // Negative necklace + if (jewelry instanceof ItemNecklace && pos != -1 && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); + // Negative earrings + if (jewelry instanceof ItemEarrings && pos != -1 && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c7/d0ba6178bbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c7/d0ba6178bbd000141b65e2fc7f94332d deleted file mode 100644 index 407f05b..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c7/d0ba6178bbd000141b65e2fc7f94332d +++ /dev/null @@ -1,114 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 180, -90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 90, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c8/0088d4467ecf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c8/0088d4467ecf00141de78e4a85bb2469 deleted file mode 100644 index 40ca209..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c8/0088d4467ecf00141de78e4a85bb2469 +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Mod made by DarkKnight during the Modjam 3 - * It's an awesome mod - * I love me! :D - */ -package darkknight.jewelrycraft; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.logging.Logger; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.gen.structure.MapGenStructureIO; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.oredict.OreDictionary; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.Mod; -import cpw.mods.fml.common.Mod.EventHandler; -import cpw.mods.fml.common.Mod.Instance; -import cpw.mods.fml.common.ModMetadata; -import cpw.mods.fml.common.SidedProxy; -import cpw.mods.fml.common.event.FMLInitializationEvent; -import cpw.mods.fml.common.event.FMLPostInitializationEvent; -import cpw.mods.fml.common.event.FMLPreInitializationEvent; -import cpw.mods.fml.common.event.FMLServerStartingEvent; -import cpw.mods.fml.common.network.NetworkRegistry; -import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper; -import cpw.mods.fml.common.registry.EntityRegistry; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.common.registry.VillagerRegistry; -import cpw.mods.fml.relauncher.Side; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.commands.JewelrycraftCommands; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.container.GuiHandler; -import darkknight.jewelrycraft.curses.CurseList; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.effects.EffectsList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.events.BucketHandler; -import darkknight.jewelrycraft.events.EntityEventHandler; -import darkknight.jewelrycraft.events.KeyBindings; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketKeyPressEvent; -import darkknight.jewelrycraft.network.PacketRequestLiquidData; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendLiquidData; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.recipes.CraftingRecipes; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.worldGen.Generation; -import darkknight.jewelrycraft.worldGen.village.ComponentJewelry; -import darkknight.jewelrycraft.worldGen.village.JCTrades; -import darkknight.jewelrycraft.worldGen.village.VillageJewelryHandler; - -@Mod (modid = Reference.MODID, name = Reference.MODNAME, version = Reference.VERSION) -public class JewelrycraftMod -{ - @Instance (Reference.MODID) - public static JewelrycraftMod instance; - @SidedProxy (clientSide = "darkknight.jewelrycraft.client.ClientProxy", serverSide = "darkknight.jewelrycraft.CommonProxy") - public static CommonProxy proxy; - public static final Logger logger = Logger.getLogger("Jewelrycraft"); - public static File dir; - public static CreativeTabs jewelrycraft = new CreativeTabs("JewelryCraft"){ - @Override - public Item getTabIconItem() - { - return Item.getItemFromBlock(BlockList.jewelCraftingTable); - } - }; - public static CreativeTabs liquids = new CreativeTabLiquids("Liquids"); - public static NBTTagCompound saveData = new NBTTagCompound(); - public static NBTTagCompound clientData = new NBTTagCompound(); - public static File liquidsConf; - public static SimpleNetworkWrapper netWrapper; - public static boolean fancyRender; - public static final int MAX_CURSES = 10; - - /** - * Pre initialization of mod stuff. - * - * @param e FMLPreInitializationEvent - * @throws IOException Signals that an I/O exception has occurred. - */ - @EventHandler - public void preInit(FMLPreInitializationEvent e) throws IOException - { - ConfigHandler.preInit(e); - BlockList.preInit(e); - ItemList.preInit(e); - CraftingRecipes.preInit(e); - CurseList.preInit(e); - OreDictionary.registerOre("ingotShadow", new ItemStack(ItemList.shadowIngot)); - OreDictionary.registerOre("oreShadow", new ItemStack(BlockList.shadowOre)); - VillagerRegistry.instance().registerVillagerId(3000); - VillagerRegistry.instance().registerVillageTradeHandler(3000, new JCTrades()); - VillagerRegistry.instance().registerVillageCreationHandler(new VillageJewelryHandler()); - try{ - MapGenStructureIO.func_143031_a(ComponentJewelry.class, "Jewelrycraft:Jewelry"); - } - catch(Throwable e2){ - logger.severe("Error registering Jewelrycraft Structures with Vanilla Minecraft: this is expected in versions earlier than 1.7.10"); - } - MinecraftForge.EVENT_BUS.register(new EntityEventHandler()); - MinecraftForge.EVENT_BUS.register(BucketHandler.INSTANCE); - BucketHandler.INSTANCE.buckets.put(BlockList.moltenMetal, ItemList.bucket); - - ModMetadata metadata = e.getModMetadata(); - List authorList = new ArrayList(); - - authorList.add("DarkKnight (or sor1n)"); - authorList.add("bspkrs"); - authorList.add("domi1819"); - - dir = e.getModConfigurationDirectory(); - proxy.preInit(); - netWrapper = NetworkRegistry.INSTANCE.newSimpleChannel(Reference.MODID); - netWrapper.registerMessage(PacketRequestLiquidData.class, PacketRequestLiquidData.class, 0, Side.SERVER); - netWrapper.registerMessage(PacketSendLiquidData.class, PacketSendLiquidData.class, 1, Side.CLIENT); - netWrapper.registerMessage(PacketClearColorCache.class, PacketClearColorCache.class, 2, Side.CLIENT); - netWrapper.registerMessage(PacketKeyPressEvent.class, PacketKeyPressEvent.class, 3, Side.SERVER); - netWrapper.registerMessage(PacketRequestPlayerInfo.class, PacketRequestPlayerInfo.class, 4, Side.SERVER); - netWrapper.registerMessage(PacketSendPlayerInfo.class, PacketSendPlayerInfo.class, 5, Side.CLIENT); - netWrapper.registerMessage(PacketSendCurseStats.class, PacketSendCurseStats.class, 6, Side.CLIENT); - metadata.autogenerated = false; - metadata.authorList = authorList; - metadata.url = "https://github.com/sor1n/Jewelrycraft"; - - createEntity(EntityHeart.class, "Heart", 0x000000, 0xFF0000, true); - createEntity(EntityHalfHeart.class, "Half-Heart", 0x000000, 0xFF0000, true); - -// EntityRegistry.addSpawn(EntityMob.class, 5, 2, 3, EnumCreatureType.creature, BiomeGenBase.forest, BiomeGenBase.forestHills, BiomeGenBase.birchForest, BiomeGenBase.birchForestHills, BiomeGenBase.plains, BiomeGenBase.beach, BiomeGenBase.coldBeach, BiomeGenBase.frozenRiver); - } - - public void createEntity(Class entity, String entityName, int solidColor, int spotColor, boolean hasSpawnEgg) - { - int randomID = EntityRegistry.findGlobalUniqueEntityId(); - if(hasSpawnEgg) EntityRegistry.registerGlobalEntityID(entity, entityName, randomID, solidColor, spotColor); - else EntityRegistry.registerGlobalEntityID(entity, entityName, randomID); - EntityRegistry.registerModEntity(entity, entityName, randomID, this, 40, 3, true); - } - - /** - * Initializes the world generation and key bindings. - * - * @param e FMLInitializationEvent - */ - @EventHandler - public void init(FMLInitializationEvent e) - { - GameRegistry.registerWorldGenerator(new Generation(), 0); - if (FMLCommonHandler.instance().getSide() == Side.CLIENT) FMLCommonHandler.instance().bus().register(new KeyBindings()); - new GuiHandler(); - } - - /** - * Post initialization of metals, modifiers and others. - * - * @param e FMLPostInitializationEvent - */ - @EventHandler - public void postInit(FMLPostInitializationEvent e) - { - JewelrycraftUtil.addMetals(); - JewelrycraftUtil.addStuff(); - JewelrycraftUtil.jamcrafters(); - EffectsList.postInit(e); - DamageSourceList.postInit(e); - } - - @Mod.EventHandler - public void serverLoad(FMLServerStartingEvent event) - { - event.registerServerCommand(new JewelrycraftCommands()); - } - -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c9/10b07e76a4ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c9/10b07e76a4ce00141801ff0972626827 deleted file mode 100644 index ff9bdb5..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c9/10b07e76a4ce00141801ff0972626827 +++ /dev/null @@ -1,436 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if(entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - } - System.out.println(entity); - if (entity.motionX == 0D && entity.motionY == 0D && entity.motionZ == 0D) entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - // for(Curse curse: Curse.getCurseList()) - // if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if(((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); -// int grade = 1 + player.worldObj.rand.nextInt(2); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if(entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); -// if (!entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c9/f0711f27a7ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c9/f0711f27a7ce00141801ff0972626827 deleted file mode 100644 index 9150146..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/c9/f0711f27a7ce00141801ff0972626827 +++ /dev/null @@ -1,111 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import java.util.Iterator; -import java.util.List; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class EffectFeather extends ModifierEffects -{ - public EffectFeather() - { - super(new ItemStack(Items.feather)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - // Positive earrings - if (jewelry instanceof ItemEarrings && pos != -1){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); - List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); - if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ - Iterator iterator = list.iterator(); - while (iterator.hasNext()){ - EntityArrow arrow = (EntityArrow)iterator.next(); - if (rand.nextInt(3) == 0 && (arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0)) arrow.setDead(); - } - } - } - // Positive bracelet - if (jewelry instanceof ItemBracelet && pos != -1){ - if (player.motionY < 0) player.motionY *= 0.6D; - player.setAIMoveSpeed(player.getAIMoveSpeed() / 2); - player.fallDistance = 0F; - } - } - - @Override - public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - NBTTagCompound enemyData = target.getEntityData(); - if (jewelry instanceof ItemRing && pos != -1){ - target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); - if (target instanceof EntityPlayer){ - NBTTagCompound enemyInfo = PlayerUtils.getModPlayerPersistTag((EntityPlayer)target, "Jewelrycraft"); - enemyInfo.setInteger("reAttacked", enemyInfo.getInteger("reAttacked") + 1); - if (rand.nextInt(2) == 0){ - enemyInfo.setInteger("stunTime", 50); - enemyInfo.setBoolean("stunned", true); - } - }else if (enemyData.getInteger("reAttacked") == 0){ - enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); - if (rand.nextInt(2) == 0){ - enemyData.setInteger("stunTime", 50); - enemyData.setBoolean("stunned", true); - } - } - playerInfo.setBoolean("weakDamage", true); - } - if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (jewelry instanceof ItemNecklace && pos != -1 && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); - playerInfo.setBoolean("negateDamage", true); - } - // Negative necklace - if (jewelry instanceof ItemNecklace && pos != -1 && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); - // Negative earrings - if (jewelry instanceof ItemEarrings && pos != -1 && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ca/90cc7cc9c8df00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ca/90cc7cc9c8df00141dc6c962aec96210 new file mode 100644 index 0000000..503da22 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ca/90cc7cc9c8df00141dc6c962aec96210 @@ -0,0 +1,744 @@ +package darkknight.jewelrycraft.util; + +import java.util.ArrayList; +import java.util.List; +import net.minecraft.block.Block; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class JewelryNBT +{ + // TODO NBT Tag Adding + /** + * @param item The item you want to add the NBT data on + * @param metal The metal you want to add on the item + */ + public static void addMetal(ItemStack item, ItemStack metal) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + NBTTagCompound ingotNBT = new NBTTagCompound(); + metal.writeToNBT(ingotNBT); + itemStackData.setTag("ingot", ingotNBT); + } + + /** + * @param item The item you want to add the NBT data on + * @param gem The gem you want to add on the item + */ + public static void addGem(ItemStack item, ItemStack gem) + { + if (gem != null){ + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + NBTTagCompound gemNBT = new NBTTagCompound(); + gem.writeToNBT(gemNBT); + itemStackData.setTag("gem", gemNBT); + } + } + + /** + * @param item The item you want to add the NBT data on + * @param modifier The modifier you want to add on the item + */ + public static void addModifiers(ItemStack item, ArrayList modifier) + { + if (modifier != null){ + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + for(int i = 0; i < modifier.size(); i++){ + NBTTagCompound modifierNBT = new NBTTagCompound(); + modifier.get(i).writeToNBT(modifierNBT); + itemStackData.setTag("modifier" + i, modifierNBT); + } + itemStackData.setInteger("modifierSize", modifier.size()); + } + } + + /** + * @param item The item you want to add the NBT data on + * @param entity The entity to add on the item + */ + public static void addEntity(ItemStack item, EntityLivingBase entity) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + NBTTagCompound entityNBT = new NBTTagCompound(); + entity.writeToNBT(entityNBT); + itemStackData.setTag("entity", entityNBT); + } + + /** + * @param item + * @param entity + */ + public static void addEntityID(ItemStack item, EntityLivingBase entity) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + NBTTagCompound entityNBT = new NBTTagCompound(); + int id = EntityList.getEntityID(entity); + entityNBT.setInteger("entityID", id); + itemStackData.setTag("entityID", entityNBT); + } + + /** + * @param item + * @param x + * @param y + * @param z + */ + public static void addCoordonates(ItemStack item, double x, double y, double z) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + NBTTagCompound coords = new NBTTagCompound(); + coords.setDouble("x", x); + coords.setDouble("y", y); + coords.setDouble("z", z); + itemStackData.setTag("x", coords); + itemStackData.setTag("y", coords); + itemStackData.setTag("z", coords); + } + + /** + * @param item + * @param world + * @param x + * @param y + * @param z + */ + public static void addTileEntityBlock(ItemStack item, World world, int x, int y, int z) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + NBTTagCompound tileNBT = new NBTTagCompound(); + NBTTagCompound block = new NBTTagCompound(); + world.getTileEntity(x, y, z).writeToNBT(tileNBT); + itemStackData.setTag("tile", tileNBT); + block.setInteger("blockID", Block.getIdFromBlock(world.getBlock(x, y, z))); + block.setInteger("metadata", world.getBlockMetadata(x, y, z)); + block.setInteger("blockX", x); + block.setInteger("blockY", y); + block.setInteger("blockZ", z); + itemStackData.setTag("metadata", block); + itemStackData.setTag("blockID", block); + itemStackData.setTag("blockX", block); + itemStackData.setTag("blockY", block); + itemStackData.setTag("blockZ", block); + } + + /** + * @param item + * @param block + * @param metadata + */ + public static void addBlock(ItemStack item, int block, int metadata) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + NBTTagCompound blockNBT = new NBTTagCompound(); + blockNBT.setInteger("blockID", block); + itemStackData.setTag("blockID", blockNBT); + blockNBT.setInteger("metadata", metadata); + itemStackData.setTag("metadata", blockNBT); + } + + /** + * @param item + * @param x + * @param y + * @param z + */ + public static void addBlockCoordonates(ItemStack item, int x, int y, int z) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + NBTTagCompound coords = new NBTTagCompound(); + coords.setInteger("blockX", x); + coords.setInteger("blockY", y); + coords.setInteger("blockZ", z); + itemStackData.setTag("blockX", coords); + itemStackData.setTag("blockY", coords); + itemStackData.setTag("blockZ", coords); + } + + /** + * @param item + * @param x + * @param y + * @param z + * @param dim + * @param name + */ + public static void addCoordonatesAndDimension(ItemStack item, double x, double y, double z, int dim, String name) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + NBTTagCompound coords = new NBTTagCompound(); + coords.setDouble("x", x); + coords.setDouble("y", y); + coords.setDouble("z", z); + coords.setInteger("dimension", dim); + coords.setString("dimName", name); + itemStackData.setTag("x", coords); + itemStackData.setTag("y", coords); + itemStackData.setTag("z", coords); + itemStackData.setTag("dimension", coords); + itemStackData.setTag("dimName", coords); + } + + /** + * @param item + */ + public static void addFakeEnchantment(ItemStack item) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + itemStackData.setTag("ench", new NBTTagList()); + } + + /** + * @param item + * @param color + */ + public static void addIngotColor(ItemStack item, int color) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + NBTTagCompound colors = new NBTTagCompound(); + colors.setInteger("ingotColor", color); + itemStackData.setTag("ingotColor", colors); + } + + // TODO + /** + * @param item + * @param color + */ + public static void addGemColor(ItemStack item, int color) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + NBTTagCompound colors = new NBTTagCompound(); + colors.setInteger("gemColor", color); + itemStackData.setTag("gemColor", colors); + } + + /** + * @param item + * @param list + */ + @SuppressWarnings ("rawtypes") + public static void addEntities(ItemStack item, List list) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + NBTTagCompound entityNBT = new NBTTagCompound(); + for(int i = 0; i < list.size(); i++) + ((EntityLivingBase)list.get(i)).writeToNBT(entityNBT); + itemStackData.setTag("entities", entityNBT); + } + + // TODO NBT Tag Removing + /** + * @param item + * @param tag + */ + public static void removeNBT(ItemStack item, String tag) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + itemStackData.removeTag(tag); + } + + /** + * @param item + */ + public static void removeEntity(ItemStack item) + { + JewelryNBT.removeNBT(item, "entityID"); + JewelryNBT.removeNBT(item, "entity"); + JewelryNBT.removeNBT(item, "ench"); + } + + /** + * @param item + */ + public static void removeBlock(ItemStack item) + { + JewelryNBT.removeNBT(item, "blockID"); + JewelryNBT.removeNBT(item, "metadata"); + JewelryNBT.removeNBT(item, "tile"); + JewelryNBT.removeNBT(item, "blockX"); + JewelryNBT.removeNBT(item, "blockY"); + JewelryNBT.removeNBT(item, "blockZ"); + } + + // TODO NTB Tag Checking + /** + * @param item + * @param tag + * @return + */ + public static boolean hasTag(ItemStack item, String tag) + { + NBTTagCompound itemStackData; + if (item.hasTagCompound()) itemStackData = item.getTagCompound(); + else{ + itemStackData = new NBTTagCompound(); + item.setTagCompound(itemStackData); + } + if (itemStackData.hasKey(tag)) return true; + return false; + } + + /** + * @param stack + * @param gem + * @return + */ + public static boolean isGemX(ItemStack stack, ItemStack gem) + { + if (gem(stack) != null && gem(stack).getItem() == gem.getItem() && gem(stack).getItemDamage() == gem.getItemDamage()) return true; + return false; + } + + /** + * @param stack + * @param modifier + * @return + */ + public static int doesModifierExist(ItemStack stack, ItemStack modifier) + { + if (modifier(stack) != null){ + ArrayList list = modifier(stack); + for(int i = 0; i < list.size(); i++) + if (list.get(i).getItem() == modifier.getItem() && list.get(i).getItemDamage() == modifier.getItemDamage()) return i; + } + return -1; + } + + public static int modifierSize(ItemStack stack, ItemStack modifier) + { + if (modifier(stack) != null){ + ArrayList list = modifier(stack); + for(int i = 0; i < list.size(); i++) + if (list.get(i).getItem() == modifier.getItem() && list.get(i).getItemDamage() == modifier.getItemDamage()) return list.get(i).stackSize; + } + return -1; + } + + public static int numberOfModifiers(ItemStack stack) + { + if (modifier(stack) != null) return modifier(stack).size(); + return -1; + } + + /** + * @param stack + * @param ingot + * @return + */ + public static boolean isIngotX(ItemStack stack, ItemStack ingot) + { + if (ingot(stack) != null && ingot(stack).getItem() == ingot.getItem() && ingot(stack).getItemDamage() == ingot.getItemDamage()) return true; + return false; + } + + /** + * @param stack + * @param player + * @param entity + * @return + */ + public static boolean isEntityX(ItemStack stack, EntityPlayer player, EntityLivingBase entity) + { + if (entity != null && entity instanceof EntityLivingBase && entity(stack, player) != null && entity(stack, player).equals(entity)) return true; + return false; + } + + /** + * @param stack + * @param dimName + * @return + */ + public static boolean isDimNameX(ItemStack stack, String dimName) + { + if (ingot(stack) != null && dimName(stack).equals(dimName)) return true; + return false; + } + + /** + * @param stack + * @param dimension + * @return + */ + public static boolean isDimensionX(ItemStack stack, int dimension) + { + if (dimension(stack) != -2 && dimension(stack) == dimension) return true; + return false; + } + + // TODO Return components based on NBT + /** + * @param stack + * @return + */ + public static ItemStack gem(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.hasTagCompound() && stack.getTagCompound().hasKey("gem")){ + NBTTagCompound jewelNBT = (NBTTagCompound)stack.getTagCompound().getTag("gem"); + ItemStack gem = new ItemStack(Item.getItemById(0), 0, 0); + gem.readFromNBT(jewelNBT); + return gem; + } + return null; + } + + /** + * @param stack + * @return + */ + public static ArrayList modifier(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.hasTagCompound()){ + int size = stack.getTagCompound().getInteger("modifierSize"); + ArrayList list = new ArrayList(); + for(int i = 0; i < size; i++){ + ItemStack modifier = new ItemStack(Item.getItemById(0), 0, 0); + NBTTagCompound modifierNBT = (NBTTagCompound)stack.getTagCompound().getTag("modifier" + i); + modifier.readFromNBT(modifierNBT); + list.add(modifier); + } + return list; + } + return null; + } + + /** + * @param stack + * @return + */ + public static ItemStack ingot(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.hasTagCompound() && stack.getTagCompound().hasKey("ingot")){ + NBTTagCompound ingotNBT = (NBTTagCompound)stack.getTagCompound().getTag("ingot"); + ItemStack ingot = new ItemStack(Item.getItemById(0), 0, 0); + ingot.readFromNBT(ingotNBT); + return ingot; + } + return null; + } + + /** + * @param stack + * @param player + * @return + */ + public static EntityLivingBase entity(ItemStack stack, EntityPlayer player) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.getTagCompound().hasKey("entityID") && stack.getTagCompound().hasKey("entity")){ + NBTTagCompound enID = (NBTTagCompound)stack.getTagCompound().getTag("entityID"); + NBTTagCompound en = (NBTTagCompound)stack.getTagCompound().getTag("entity"); + int entityID = 0; + entityID = enID.getInteger("entityID"); + EntityLivingBase entity = (EntityLivingBase)EntityList.createEntityByID(entityID, player.worldObj); + if (entity != null && entity instanceof EntityLivingBase){ + entity.readFromNBT(en); + return entity; + }else return null; + } + return null; + } + + /** + * @param stack + * @return + */ + public static TileEntity tileEntity(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.getTagCompound().hasKey("tile")){ + NBTTagCompound tileNBT = (NBTTagCompound)stack.getTagCompound().getTag("tile"); + TileEntity tile = TileEntity.createAndLoadEntity(tileNBT); + if (tile != null && tile instanceof TileEntity){ + tile.readFromNBT(tileNBT); + return tile; + }else return null; + } + return null; + } + + /** + * @param stack + * @return + */ + public static String dimName(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.hasTagCompound() && stack.getTagCompound().hasKey("dimName")){ + NBTTagCompound dim = (NBTTagCompound)stack.getTagCompound().getTag("dimName"); + String name = dim.getString("dimName"); + return name; + } + return null; + } + + /** + * @param stack + * @return + */ + public static String modeName(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.hasTagCompound() && stack.getTagCompound().hasKey("mode")){ + NBTTagCompound dim = (NBTTagCompound)stack.getTagCompound().getTag("mode"); + String name = dim.getString("mode"); + return name; + } + return null; + } + + /** + * @param stack + * @return + */ + public static int dimension(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.hasTagCompound() && stack.getTagCompound().hasKey("dimension")){ + NBTTagCompound dim = (NBTTagCompound)stack.getTagCompound().getTag("dimension"); + int dimension = dim.getInteger("dimension"); + return dimension; + } + return -2; + } + + /** + * @param stack + * @return + */ + public static int blockCoordX(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.getTagCompound().hasKey("blockX")){ + NBTTagCompound x = (NBTTagCompound)stack.getTagCompound().getTag("blockX"); + int posX = x.getInteger("blockX"); + return posX; + } + return -1; + } + + /** + * @param stack + * @return + */ + public static int blockCoordY(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.getTagCompound().hasKey("blockY")){ + NBTTagCompound y = (NBTTagCompound)stack.getTagCompound().getTag("blockY"); + int posY = y.getInteger("blockY"); + return posY; + } + return -1; + } + + /** + * @param stack + * @return + */ + public static int blockCoordZ(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.getTagCompound().hasKey("blockZ")){ + NBTTagCompound z = (NBTTagCompound)stack.getTagCompound().getTag("blockZ"); + int posZ = z.getInteger("blockZ"); + return posZ; + } + return -1; + } + + /** + * @param stack + * @return + */ + public static int blockID(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.getTagCompound().hasKey("blockID")){ + NBTTagCompound blockID = (NBTTagCompound)stack.getTagCompound().getTag("blockID"); + int blockId = blockID.getInteger("blockID"); + return blockId; + } + return -1; + } + + /** + * @param stack + * @return + */ + public static int blockMetadata(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.getTagCompound().hasKey("metadata")){ + NBTTagCompound metadataNBT = (NBTTagCompound)stack.getTagCompound().getTag("metadata"); + int metadata = metadataNBT.getInteger("metadata"); + return metadata; + } + return -1; + } + + /** + * @param stack + * @return + */ + public static double playerPosX(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.getTagCompound().hasKey("x")){ + NBTTagCompound x = (NBTTagCompound)stack.getTagCompound().getTag("x"); + double posX = x.getDouble("x"); + return posX; + } + return -1; + } + + /** + * @param stack + * @return + */ + public static double playerPosY(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.getTagCompound().hasKey("y")){ + NBTTagCompound y = (NBTTagCompound)stack.getTagCompound().getTag("y"); + double posY = y.getDouble("y"); + return posY; + } + return -1; + } + + /** + * @param stack + * @return + */ + public static double playerPosZ(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.getTagCompound().hasKey("z")){ + NBTTagCompound z = (NBTTagCompound)stack.getTagCompound().getTag("z"); + double posZ = z.getDouble("z"); + return posZ; + } + return -1; + } + + /** + * @param stack + * @return + */ + public static int ingotColor(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.hasTagCompound() && stack.getTagCompound().hasKey("ingotColor")){ + NBTTagCompound colors = (NBTTagCompound)stack.getTagCompound().getTag("ingotColor"); + int color = colors.getInteger("ingotColor"); + return color; + } + return 16777215; + } + + // TODO + /** + * @param stack + * @return + */ + public static int gemColor(ItemStack stack) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.hasTagCompound() && stack.getTagCompound().hasKey("gemColor")){ + NBTTagCompound colors = (NBTTagCompound)stack.getTagCompound().getTag("gemColor"); + int color = colors.getInteger("gemColor"); + return color; + } + return 16777215; + } + + /** + * @param stack + * @param player + * @return + */ + @SuppressWarnings ({"rawtypes", "unchecked", "null"}) + public static List entities(ItemStack stack, EntityPlayer player) + { + if (stack != null && stack != new ItemStack(Item.getItemById(0), 0, 0) && stack.getTagCompound().hasKey("entities")){ + NBTTagCompound enID = (NBTTagCompound)stack.getTagCompound().getTag("entitiesID"); + List list = null; + int[] entityID; + EntityLivingBase entity; + entityID = enID.getIntArray("entitiesID"); + for(int element: entityID){ + entity = (EntityLivingBase)EntityList.createEntityByID(element, player.worldObj); + list.add(entity); + } + return list; + } + return null; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ca/f037376012cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ca/f037376012cf00141c41f52413db5e31 deleted file mode 100644 index 008410a..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ca/f037376012cf00141c41f52413db5e31 +++ /dev/null @@ -1,88 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import java.util.ArrayList; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; - -public class Curse -{ - protected int id, texturepack; - protected String name, description; - private static ArrayList curses = new ArrayList(); - public static ArrayList availableCurses = new ArrayList(); - - /** - * @param id the ID of the curse - * @param name the name of the curse - * @param texturepack the ID of the pack the texture is located in - */ - protected Curse(int id, String name, int texturepack) - { - this.id = id; - this.name = name; - this.texturepack = texturepack; - curses.add(this); - availableCurses.add(this); - } - - /** - * @return the name of the curse - */ - public String getName() - { - return name; - } - - /** - * @return the description of the curse - */ - public String getDescription() - { - return description; - } - - public Curse setDescription(String desc) - { - description = desc; - return this; - } - - /** - * @return the curse ID - */ - public int getID() - { - return id; - } - - /** - * @return the texture pack ID - */ - public int getTexturePack() - { - return texturepack; - } - - /** - * @param world - * @param player - */ - public void action(World world, EntityPlayer player) - {} - - public void deathAction(World world, EntityPlayer player) - {} - - public boolean itemToss() - { - return false; - } - - /** - * @return - */ - public static ArrayList getCurseList() - { - return curses; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/20c24219cedf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/20c24219cedf00141dc6c962aec96210 new file mode 100644 index 0000000..26f5b0f --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/20c24219cedf00141dc6c962aec96210 @@ -0,0 +1,87 @@ +package darkknight.jewelrycraft.effects; + +import net.minecraft.block.BlockOre; +import net.minecraft.client.Minecraft; +import net.minecraft.client.settings.GameSettings.Options; +import net.minecraft.entity.monster.EntityEnderman; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.biome.BiomeGenBase; +import cpw.mods.fml.relauncher.ReflectionHelper; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; + +public class EffectEnderEye extends ModifierEffects +{ + private boolean originalVD = false; + private float originalViewDistance; + + public EffectEnderEye() + { + super(new ItemStack(Items.ender_eye)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemEarrings && exists && !player.worldObj.isRemote){ + for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ + EntityEnderman enderman = (EntityEnderman)e; + ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); + Vec3 vec3 = player.getLook(1.0F).normalize(); + Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); + double d0 = vec31.lengthVector(); + vec31 = vec31.normalize(); + double d1 = vec3.dotProduct(vec31); + if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ + // Positive earrings + if(rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0) enderman.setTarget(null); + // Negative earrings + if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2 + JewelryNBT.numberOfModifiers(item)/4)); + } + } + } + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote){ + ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); + if (chunkposition != null){ + Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX)*(rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0? 1:-1); + Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ)*(rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0? 1:-1); + } + } + // Positive bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 150 - JewelryNBT.numberOfModifiers(item)*10, 2 - JewelryNBT.numberOfModifiers(item)/5)); + // Negative bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && rand.nextInt(500) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1), player.posY, player.posZ + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1)); + if (jewelry instanceof ItemRing && exists && rand.nextInt(200) == 12){ + // Negative ring + Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 1.0F); + // Positive ring + for(int i = (int)player.posX - 2; i <= (int)player.posX + 2; i++) + for(int j = (int)player.posY - 2; j <= (int)player.posY + 2; j++) + for(int k = (int)player.posZ - 2; k <= (int)player.posZ + 2; k++) + if (player.worldObj.getBlock(i, j, k) instanceof BlockOre) player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "You sense some " + player.worldObj.getBlock(i, j, k).getLocalizedName() + " around you.")); + } + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/700a357f67dd001412dce27813e7be4a b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/700a357f67dd001412dce27813e7be4a new file mode 100644 index 0000000..d6876f8 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/700a357f67dd001412dce27813e7be4a @@ -0,0 +1,123 @@ +package darkknight.jewelrycraft.events; + +import java.util.Iterator; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderPlayerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.entities.renders.RenderHelper; +import darkknight.jewelrycraft.item.render.BraceletRender; +import darkknight.jewelrycraft.item.render.EarringsRender; +import darkknight.jewelrycraft.item.render.MaskRender; +import darkknight.jewelrycraft.model.ModelBracelet; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class PlayerRenderHandler +{ + MaskRender mask = new MaskRender(); + EarringsRender earrings = new EarringsRender(); + BraceletRender bracelet = new BraceletRender(); + public static String[] infamyCache = new String[]{}; + + @SubscribeEvent + public void renderScreen(RenderPlayerEvent.Specials.Post event) + { + ModelBiped main = event.renderer.modelBipedMain; + Iterator players = event.entityPlayer.worldObj.playerEntities.iterator(); + if (infamyCache != null){ + while (players.hasNext()){ + EntityPlayer player = players.next(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + System.out.println(playerInfo); + if (checkPlayerInfamy(player.getDisplayName()) && event.entityPlayer.getDisplayName().equals(player.getDisplayName())){ + float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick; + float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick; + float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick; + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glRotatef(yawOffset, 0, -1, 0); + GL11.glRotatef(yaw - 90, 0, 1, 0); + GL11.glRotatef(pitch, 0, 0, -1); + GL11.glRotatef(90F, 0, 1F, 0F); + RenderHelper.translateToHeadLevel(player); + GL11.glScalef(1.6f, 1.6f, 1.6f); + GL11.glTranslatef(-0.25F, -0.25F, -0.25F); + mask.doRender(event.entityPlayer, 0F, 0F, 0F, 0F, 0F); + GL11.glPopMatrix(); + } + if (playerInfo.hasKey("ext17") && player == event.entityPlayer){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext17"); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick; + float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick; + float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick; + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glRotatef(yawOffset, 0, -1, 0); + GL11.glRotatef(yaw - 90, 0, 1, 0); + GL11.glRotatef(pitch, 0, 0, -1); + GL11.glRotatef(90F, 0, 1F, 0F); + RenderHelper.translateToHeadLevel(player); + GL11.glScalef(0.07f, 0.07f, 0.07f); + GL11.glTranslatef(0.0F, 3.0F, -2.0F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + earrings.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0F); + GL11.glPopMatrix(); + } + for(int i = 10; i <= 13; i++) + if (playerInfo.hasKey("ext" + i) && player == event.entityPlayer){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glTranslatef((i / 12 == 1) ? -0.275F : 0.475F, 0.2F + ((i / 12 == 1) ? (i - 12) * 0.08F : (i - 10) * 0.08F), 0F); + if (player.isSneaking()) GL11.glTranslatef(0F, 0F, -((i == 10 || i == 12) ? (0.1F) : 0.05F)); + if (i / 12 == 1){ + GL11.glScalef(0.05f, 0.03f, 0.05f); + GL11.glRotatef(main.bipedRightArm.rotateAngleX * (180F / (float)Math.PI), 1F, 0F, 0F); + GL11.glRotatef(main.bipedRightArm.rotateAngleY * (180F / (float)Math.PI), 0F, 1F, 0F); + GL11.glRotatef(main.bipedRightArm.rotateAngleZ * (180F / (float)Math.PI), 0F, 0F, 1F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + bracelet.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0.0F); + }else{ + GL11.glScalef(0.05f, 0.03f, 0.05f); + GL11.glRotatef(main.bipedLeftArm.rotateAngleX * (180F / (float)Math.PI), 1F, 0F, 0F); + GL11.glRotatef(main.bipedLeftArm.rotateAngleY * (180F / (float)Math.PI), 0F, 1F, 0F); + GL11.glRotatef(main.bipedLeftArm.rotateAngleZ * (180F / (float)Math.PI), 0F, 0F, 1F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + bracelet.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0F); + } + GL11.glPopMatrix(); + } + } + } + } + + /** + * @param string + * @return + */ + private boolean checkPlayerInfamy(String string) + { + for(int i = 0; i < infamyCache.length; i++) + if (infamyCache[i].equals(string)) return true; + return false; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/c061a2c326de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/c061a2c326de00141043c3025ec60dfc new file mode 100644 index 0000000..f156440 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/c061a2c326de00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 20) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 20, 7 + (size + 6) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/c0eb4d77b9d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/c0eb4d77b9d000141b65e2fc7f94332d deleted file mode 100644 index c32655f..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cb/c0eb4d77b9d000141b65e2fc7f94332d +++ /dev/null @@ -1,233 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ - GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(25.0F, -1.0F, 0.0F, 0.0F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/10c08f90b7d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/10c08f90b7d000141b65e2fc7f94332d deleted file mode 100644 index 1c7c5be..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/10c08f90b7d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 153, 12, 12); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() - 20, gui.getTop() + 15); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 25, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/600bf435bdd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/600bf435bdd000141b65e2fc7f94332d deleted file mode 100644 index df50bb3..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/600bf435bdd000141b65e2fc7f94332d +++ /dev/null @@ -1,125 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.shadowEye), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - - case 5: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_slab, 1, 1), 0, -90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.shadowEye), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - break; - } - } - - @Override - public int getMaxPages() - { - return 5; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/80d5ff84bed000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/80d5ff84bed000141b65e2fc7f94332d deleted file mode 100644 index 3226599..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cc/80d5ff84bed000141b65e2fc7f94332d +++ /dev/null @@ -1,241 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.block.BlockShadowEye; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else if (item.isItemEqual(new ItemStack(BlockList.handPedestal))){ - GL11.glScalef(0.2F, 0.2F, 0.2F); - GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0F, 0.1F, 0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ - // GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if (xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - if (Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockShadowEye) GL11.glTranslatef(0F, 0F, 0.025F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cd/b0a79825a3ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cd/b0a79825a3ce00141801ff0972626827 deleted file mode 100644 index da7c0f8..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/cd/b0a79825a3ce00141801ff0972626827 +++ /dev/null @@ -1,435 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if(entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - // for(Curse curse: Curse.getCurseList()) - // if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if(((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); -// int grade = 1 + player.worldObj.rand.nextInt(2); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if(entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); -// if (!entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ce/60bee40466dd001412dce27813e7be4a b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ce/60bee40466dd001412dce27813e7be4a new file mode 100644 index 0000000..4d2ae5c --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ce/60bee40466dd001412dce27813e7be4a @@ -0,0 +1,122 @@ +package darkknight.jewelrycraft.events; + +import java.util.Iterator; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderPlayerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.entities.renders.RenderHelper; +import darkknight.jewelrycraft.item.render.BraceletRender; +import darkknight.jewelrycraft.item.render.EarringsRender; +import darkknight.jewelrycraft.item.render.MaskRender; +import darkknight.jewelrycraft.model.ModelBracelet; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class PlayerRenderHandler +{ + MaskRender mask = new MaskRender(); + EarringsRender earrings = new EarringsRender(); + BraceletRender bracelet = new BraceletRender(); + public static String[] infamyCache = new String[]{}; + + @SubscribeEvent + public void renderScreen(RenderPlayerEvent.Specials.Post event) + { + ModelBiped main = event.renderer.modelBipedMain; + Iterator players = event.entityPlayer.worldObj.playerEntities.iterator(); + if (infamyCache != null){ + while (players.hasNext()){ + EntityPlayer player = players.next(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (checkPlayerInfamy(player.getDisplayName()) && event.entityPlayer.getDisplayName().equals(player.getDisplayName())){ + float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick; + float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick; + float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick; + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glRotatef(yawOffset, 0, -1, 0); + GL11.glRotatef(yaw - 90, 0, 1, 0); + GL11.glRotatef(pitch, 0, 0, -1); + GL11.glRotatef(90F, 0, 1F, 0F); + RenderHelper.translateToHeadLevel(player); + GL11.glScalef(1.6f, 1.6f, 1.6f); + GL11.glTranslatef(-0.25F, -0.25F, -0.25F); + mask.doRender(event.entityPlayer, 0F, 0F, 0F, 0F, 0F); + GL11.glPopMatrix(); + } + if (playerInfo.hasKey("ext17")){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext17"); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick; + float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick; + float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick; + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glRotatef(yawOffset, 0, -1, 0); + GL11.glRotatef(yaw - 90, 0, 1, 0); + GL11.glRotatef(pitch, 0, 0, -1); + GL11.glRotatef(90F, 0, 1F, 0F); + RenderHelper.translateToHeadLevel(player); + GL11.glScalef(0.07f, 0.07f, 0.07f); + GL11.glTranslatef(0.0F, 3.0F, -2.0F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + earrings.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0F); + GL11.glPopMatrix(); + } + for(int i = 10; i <= 13; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glTranslatef((i / 12 == 1) ? -0.275F : 0.475F, 0.2F + ((i / 12 == 1) ? (i - 12) * 0.08F : (i - 10) * 0.08F), 0F); + if (player.isSneaking()) GL11.glTranslatef(0F, 0F, -((i == 10 || i == 12) ? (0.1F) : 0.05F)); + if (i / 12 == 1){ + GL11.glScalef(0.05f, 0.03f, 0.05f); + GL11.glRotatef(main.bipedRightArm.rotateAngleX * (180F / (float)Math.PI), 1F, 0F, 0F); + GL11.glRotatef(main.bipedRightArm.rotateAngleY * (180F / (float)Math.PI), 0F, 1F, 0F); + GL11.glRotatef(main.bipedRightArm.rotateAngleZ * (180F / (float)Math.PI), 0F, 0F, 1F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + bracelet.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0.0F); + }else{ + GL11.glScalef(0.05f, 0.03f, 0.05f); + GL11.glRotatef(main.bipedLeftArm.rotateAngleX * (180F / (float)Math.PI), 1F, 0F, 0F); + GL11.glRotatef(main.bipedLeftArm.rotateAngleY * (180F / (float)Math.PI), 0F, 1F, 0F); + GL11.glRotatef(main.bipedLeftArm.rotateAngleZ * (180F / (float)Math.PI), 0F, 0F, 1F); + int gemColor = -1; + int ingotColor = -1; + if (JewelryNBT.gem(item) != null) gemColor = JewelryNBT.gemColor(item); + if (JewelryNBT.ingot(item) != null) ingotColor = JewelryNBT.ingotColor(item); + bracelet.doRender(event.entityPlayer, 0F, 0F, (float)ingotColor, (float)gemColor, 0F); + } + GL11.glPopMatrix(); + } + } + } + } + + /** + * @param string + * @return + */ + private boolean checkPlayerInfamy(String string) + { + for(int i = 0; i < infamyCache.length; i++) + if (infamyCache[i].equals(string)) return true; + return false; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ce/70b3113c6fcf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ce/70b3113c6fcf00141de78e4a85bb2469 deleted file mode 100644 index bf94dc6..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ce/70b3113c6fcf00141de78e4a85bb2469 +++ /dev/null @@ -1,39 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player, Entity target) - { - if (!world.isRemote && !(target instanceof EntityMob) && target instanceof EntityLiving && !(target instanceof EntityHeart) && !(target instanceof EntityHalfHeart)){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (rand.nextInt(2) == 0){ - if(playerInfo.getFloat("BlackHeart") < 20F) playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 1.0F); - if(player.getMaxHealth() >= 3F) player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() - 1.0F); - } - JewelrycraftUtil.addCursePoints(player, 10); - } - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ce/802d6c7d12cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ce/802d6c7d12cf00141c41f52413db5e31 deleted file mode 100644 index 73e8701..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ce/802d6c7d12cf00141c41f52413db5e31 +++ /dev/null @@ -1,97 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import java.util.ArrayList; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; - -public class Curse -{ - protected int id, texturepack; - protected String name, description; - private static ArrayList curses = new ArrayList(); - public static ArrayList availableCurses = new ArrayList(); - - /** - * @param id the ID of the curse - * @param name the name of the curse - * @param texturepack the ID of the pack the texture is located in - */ - protected Curse(int id, String name, int texturepack) - { - this.id = id; - this.name = name; - this.texturepack = texturepack; - curses.add(this); - availableCurses.add(this); - } - - /** - * @return the name of the curse - */ - public String getName() - { - return name; - } - - /** - * @return the description of the curse - */ - public String getDescription() - { - return description; - } - - public Curse setDescription(String desc) - { - description = desc; - return this; - } - - /** - * @return the curse ID - */ - public int getID() - { - return id; - } - - /** - * @return the texture pack ID - */ - public int getTexturePack() - { - return texturepack; - } - - /** - * @param world - * @param player - */ - public void action(World world, EntityPlayer player) - {} - - public void deathAction(World world, EntityPlayer player) - {} - - public void respawnAction(World world, EntityPlayer player) - {} - - public void attackedAction(World world, EntityPlayer player) - {} - - public void attackedByPlayerAction(World world, EntityPlayer player) - {} - - public boolean itemToss() - { - return false; - } - - /** - * @return - */ - public static ArrayList getCurseList() - { - return curses; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ce/e02d96277ecf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ce/e02d96277ecf00141de78e4a85bb2469 deleted file mode 100644 index ff732a4..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ce/e02d96277ecf00141de78e4a85bb2469 +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Mod made by DarkKnight during the Modjam 3 - * It's an awesome mod - * I love me! :D - */ -package darkknight.jewelrycraft; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.logging.Logger; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.gen.structure.MapGenStructureIO; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.oredict.OreDictionary; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.Mod; -import cpw.mods.fml.common.Mod.EventHandler; -import cpw.mods.fml.common.Mod.Instance; -import cpw.mods.fml.common.ModMetadata; -import cpw.mods.fml.common.SidedProxy; -import cpw.mods.fml.common.event.FMLInitializationEvent; -import cpw.mods.fml.common.event.FMLPostInitializationEvent; -import cpw.mods.fml.common.event.FMLPreInitializationEvent; -import cpw.mods.fml.common.event.FMLServerStartingEvent; -import cpw.mods.fml.common.network.NetworkRegistry; -import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper; -import cpw.mods.fml.common.registry.EntityRegistry; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.common.registry.VillagerRegistry; -import cpw.mods.fml.relauncher.Side; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.commands.JewelrycraftCommands; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.container.GuiHandler; -import darkknight.jewelrycraft.curses.CurseList; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.effects.EffectsList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.events.BucketHandler; -import darkknight.jewelrycraft.events.EntityEventHandler; -import darkknight.jewelrycraft.events.KeyBindings; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketKeyPressEvent; -import darkknight.jewelrycraft.network.PacketRequestLiquidData; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendLiquidData; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.recipes.CraftingRecipes; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.worldGen.Generation; -import darkknight.jewelrycraft.worldGen.village.ComponentJewelry; -import darkknight.jewelrycraft.worldGen.village.JCTrades; -import darkknight.jewelrycraft.worldGen.village.VillageJewelryHandler; - -@Mod (modid = Reference.MODID, name = Reference.MODNAME, version = Reference.VERSION) -public class JewelrycraftMod -{ - @Instance (Reference.MODID) - public static JewelrycraftMod instance; - @SidedProxy (clientSide = "darkknight.jewelrycraft.client.ClientProxy", serverSide = "darkknight.jewelrycraft.CommonProxy") - public static CommonProxy proxy; - public static final Logger logger = Logger.getLogger("Jewelrycraft"); - public static File dir; - public static CreativeTabs jewelrycraft = new CreativeTabs("JewelryCraft"){ - @Override - public Item getTabIconItem() - { - return Item.getItemFromBlock(BlockList.jewelCraftingTable); - } - }; - public static CreativeTabs liquids = new CreativeTabLiquids("Liquids"); - public static NBTTagCompound saveData = new NBTTagCompound(); - public static NBTTagCompound clientData = new NBTTagCompound(); - public static File liquidsConf; - public static SimpleNetworkWrapper netWrapper; - public static boolean fancyRender; - public static final int MAX_CURSES = 10; - - /** - * Pre initialization of mod stuff. - * - * @param e FMLPreInitializationEvent - * @throws IOException Signals that an I/O exception has occurred. - */ - @EventHandler - public void preInit(FMLPreInitializationEvent e) throws IOException - { - ConfigHandler.preInit(e); - BlockList.preInit(e); - ItemList.preInit(e); - CraftingRecipes.preInit(e); - CurseList.preInit(e); - OreDictionary.registerOre("ingotShadow", new ItemStack(ItemList.shadowIngot)); - OreDictionary.registerOre("oreShadow", new ItemStack(BlockList.shadowOre)); - VillagerRegistry.instance().registerVillagerId(3000); - VillagerRegistry.instance().registerVillageTradeHandler(3000, new JCTrades()); - VillagerRegistry.instance().registerVillageCreationHandler(new VillageJewelryHandler()); - try{ - MapGenStructureIO.func_143031_a(ComponentJewelry.class, "Jewelrycraft:Jewelry"); - } - catch(Throwable e2){ - logger.severe("Error registering Jewelrycraft Structures with Vanilla Minecraft: this is expected in versions earlier than 1.7.10"); - } - MinecraftForge.EVENT_BUS.register(new EntityEventHandler()); - MinecraftForge.EVENT_BUS.register(BucketHandler.INSTANCE); - BucketHandler.INSTANCE.buckets.put(BlockList.moltenMetal, ItemList.bucket); - - ModMetadata metadata = e.getModMetadata(); - List authorList = new ArrayList(); - - authorList.add("DarkKnight (or sor1n)"); - authorList.add("bspkrs"); - authorList.add("domi1819"); - - dir = e.getModConfigurationDirectory(); - proxy.registerRenderers(); - netWrapper = NetworkRegistry.INSTANCE.newSimpleChannel(Reference.MODID); - netWrapper.registerMessage(PacketRequestLiquidData.class, PacketRequestLiquidData.class, 0, Side.SERVER); - netWrapper.registerMessage(PacketSendLiquidData.class, PacketSendLiquidData.class, 1, Side.CLIENT); - netWrapper.registerMessage(PacketClearColorCache.class, PacketClearColorCache.class, 2, Side.CLIENT); - netWrapper.registerMessage(PacketKeyPressEvent.class, PacketKeyPressEvent.class, 3, Side.SERVER); - netWrapper.registerMessage(PacketRequestPlayerInfo.class, PacketRequestPlayerInfo.class, 4, Side.SERVER); - netWrapper.registerMessage(PacketSendPlayerInfo.class, PacketSendPlayerInfo.class, 5, Side.CLIENT); - netWrapper.registerMessage(PacketSendCurseStats.class, PacketSendCurseStats.class, 6, Side.CLIENT); - metadata.autogenerated = false; - metadata.authorList = authorList; - metadata.url = "https://github.com/sor1n/Jewelrycraft"; - - createEntity(EntityHeart.class, "Heart", 0x000000, 0xFF0000, true); - createEntity(EntityHalfHeart.class, "Half-Heart", 0x000000, 0xFF0000, true); - -// EntityRegistry.addSpawn(EntityMob.class, 5, 2, 3, EnumCreatureType.creature, BiomeGenBase.forest, BiomeGenBase.forestHills, BiomeGenBase.birchForest, BiomeGenBase.birchForestHills, BiomeGenBase.plains, BiomeGenBase.beach, BiomeGenBase.coldBeach, BiomeGenBase.frozenRiver); - } - - public void createEntity(Class entity, String entityName, int solidColor, int spotColor, boolean hasSpawnEgg) - { - int randomID = EntityRegistry.findGlobalUniqueEntityId(); - if(hasSpawnEgg) EntityRegistry.registerGlobalEntityID(entity, entityName, randomID, solidColor, spotColor); - else EntityRegistry.registerGlobalEntityID(entity, entityName, randomID); - EntityRegistry.registerModEntity(entity, entityName, randomID, this, 40, 3, true); - } - - /** - * Initializes the world generation and key bindings. - * - * @param e FMLInitializationEvent - */ - @EventHandler - public void init(FMLInitializationEvent e) - { - GameRegistry.registerWorldGenerator(new Generation(), 0); - if (FMLCommonHandler.instance().getSide() == Side.CLIENT) FMLCommonHandler.instance().bus().register(new KeyBindings()); - new GuiHandler(); - } - - /** - * Post initialization of metals, modifiers and others. - * - * @param e FMLPostInitializationEvent - */ - @EventHandler - public void postInit(FMLPostInitializationEvent e) - { - JewelrycraftUtil.addMetals(); - JewelrycraftUtil.addStuff(); - JewelrycraftUtil.jamcrafters(); - EffectsList.postInit(e); - DamageSourceList.postInit(e); - } - - @Mod.EventHandler - public void serverLoad(FMLServerStartingEvent event) - { - event.registerServerCommand(new JewelrycraftCommands()); - } - -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d/20ce60e681d000141a1fb02abca5ff55 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d/20ce60e681d000141a1fb02abca5ff55 deleted file mode 100644 index 387e18f..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d/20ce60e681d000141a1fb02abca5ff55 +++ /dev/null @@ -1,66 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.DamageSource; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && rand.nextInt(500) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30)*(rand.nextBoolean()?-1:1), player.posY, player.posZ + rand.nextInt(30)*(rand.nextBoolean()?-1:1)); - if (jewelry instanceof ItemRing && pos != -1) Minecraft.getMinecraft().gameSettings.renderDistanceChunks = 0; - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d/406be580bed000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d/406be580bed000141b65e2fc7f94332d deleted file mode 100644 index f7a4b53..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d/406be580bed000141b65e2fc7f94332d +++ /dev/null @@ -1,240 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.block.BlockShadowEye; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else if (item.isItemEqual(new ItemStack(BlockList.handPedestal))){ - GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0F, 0.1F, 0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ - // GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if (xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - if (Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockShadowEye) GL11.glTranslatef(0F, 0F, 0.025F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d0/306fef1113cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d0/306fef1113cf00141c41f52413db5e31 deleted file mode 100644 index 4975634..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d0/306fef1113cf00141c41f52413db5e31 +++ /dev/null @@ -1,235 +0,0 @@ -package darkknight.jewelrycraft.item; - -import java.awt.image.BufferedImage; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import javax.imageio.ImageIO; -import net.minecraft.block.Block; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.texture.TextureManager; -import net.minecraft.client.resources.IResourceManager; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.StatCollector; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.effects.ModifierEffects; -import darkknight.jewelrycraft.util.JewelryNBT; - -public abstract class ItemBaseJewelry extends Item -{ - public ItemBaseJewelry() - { - super(); - setMaxStackSize(1); - setCreativeTab(JewelrycraftMod.jewelrycraft); - } - - public boolean requiresMultipleRenderPasses() - { - return true; - } - - @SideOnly (Side.CLIENT) - public int getColorFromItemStack(ItemStack stack, int pass) - { - try{ - return color(stack, pass); - } - catch(IOException e){ - e.printStackTrace(); - } - return 16777215; - } - - /** - * @param stack - * @param pass - * @return - * @throws IOException - */ - public static int color(ItemStack stack, int pass) throws IOException - { - IResourceManager rm = Minecraft.getMinecraft().getResourceManager(); - BufferedImage icon; - if (pass == 0 && stack != null && JewelryNBT.ingot(stack) != null && Item.getIdFromItem(JewelryNBT.ingot(stack).getItem()) > 0 && JewelryNBT.ingot(stack).getIconIndex() != null && JewelryNBT.ingotColor(stack) == 16777215){ - ItemStack ingot = JewelryNBT.ingot(stack); - icon = ImageIO.read(rm.getResource(getLocation(ingot, stack, true)).getInputStream()); - int height = icon.getHeight(); - int width = icon.getWidth(); - Map m = new HashMap(); - for(int i = 0; i < width; i++) - for(int j = 0; j < height; j++){ - int rgb = icon.getRGB(i, j); - int red = rgb >> 16 & 0xff; - int green = rgb >> 8 & 0xff; - int blue = rgb & 0xff; - int[] rgbArr = {red, green, blue}; - int Cmax = Math.max(red, Math.max(green, blue)); - int Cmin = Math.min(red, Math.min(green, blue)); - if (!isGray(rgbArr)) m.put(rgb, (Cmax + Cmin) / 2); - } - int color = getMostCommonColour(m); - if (JewelryNBT.ingot(stack) != null && JewelryNBT.ingot(stack).getItem().getColorFromItemStack(JewelryNBT.ingot(stack), 1) != 16777215) JewelryNBT.addIngotColor(stack, JewelryNBT.ingot(stack).getItem().getColorFromItemStack(JewelryNBT.ingot(stack), 1)); - else JewelryNBT.addIngotColor(stack, color); - }else if (pass == 1 && stack != null && JewelryNBT.gem(stack) != null && JewelryNBT.gem(stack).getIconIndex() != null && JewelryNBT.gem(stack) != null){ - ItemStack gem = JewelryNBT.gem(stack); - icon = ImageIO.read(rm.getResource(getLocation(gem, stack, true)).getInputStream()); - int height = icon.getHeight(); - int width = icon.getWidth(); - Map m = new HashMap(); - for(int i = 0; i < width; i++) - for(int j = 0; j < height; j++){ - int rgb = icon.getRGB(i, j); - int red = rgb >> 16 & 0xff; - int green = rgb >> 8 & 0xff; - int blue = rgb & 0xff; - int[] rgbArr = {red, green, blue}; - int Cmax = Math.max(red, Math.max(green, blue)); - int Cmin = Math.min(red, Math.min(green, blue)); - if (!isGray(rgbArr)) m.put(rgb, (Cmax + Cmin) / 2); - } - int color = getMostCommonColour(m); - if (JewelryNBT.gem(stack).getItem().getColorFromItemStack(JewelryNBT.gem(stack), 1) == 16777215) JewelryNBT.addGemColor(stack, color); - else JewelryNBT.addGemColor(stack, JewelryNBT.gem(stack).getItem().getColorFromItemStack(JewelryNBT.gem(stack), 1)); - } - if (pass == 0 && JewelryNBT.ingot(stack) != null) return JewelryNBT.ingotColor(stack); - if (pass == 1 && JewelryNBT.gem(stack) != null) return JewelryNBT.gemColor(stack); - else if (JewelryNBT.ingot(stack) != null) return JewelryNBT.ingotColor(stack); - return 16777215; - } - - /** - * @param item - * @param stack - * @param changeMeta - * @return - */ - public static ResourceLocation getLocation(ItemStack item, ItemStack stack, boolean changeMeta) - { - String domain = ""; - String texture; - if (changeMeta && (Item.getIdFromItem(item.getItem()) == Block.getIdFromBlock(Blocks.stained_glass) || Item.getIdFromItem(item.getItem()) == Block.getIdFromBlock(Blocks.stained_hardened_clay) || Item.getIdFromItem(item.getItem()) == Block.getIdFromBlock(Blocks.wool) || Item.getIdFromItem(item.getItem()) == Block.getIdFromBlock(Blocks.carpet))) item.setItemDamage(15 - item.getItemDamage()); - IIcon itemIcon = item.getItem().getIcon(item, 0); - String iconName = itemIcon.getIconName(); - if (iconName.substring(0, iconName.indexOf(":") + 1) != "") domain = iconName.substring(0, iconName.indexOf(":") + 1).replace(":", " ").trim(); - else domain = "minecraft"; - texture = iconName.substring(iconName.lastIndexOf(":") + 1) + ".png"; - ResourceLocation textureLocation = null; - TextureManager texturemanager = Minecraft.getMinecraft().getTextureManager(); - if (texturemanager.getResourceLocation(item.getItemSpriteNumber()).toString().contains("items")) textureLocation = new ResourceLocation(domain.toLowerCase(), "textures/items/" + texture); - else textureLocation = new ResourceLocation(domain.toLowerCase(), "textures/blocks/" + texture); - return textureLocation; - } - - /** - * @param map - * @return - */ - public static int getMostCommonColour(Map map) - { - List list = new LinkedList(map.entrySet()); - Collections.sort(list, new Comparator(){ - public int compare(Object o1, Object o2) - { - return ((Comparable)((Map.Entry)o1).getValue()).compareTo(((Map.Entry)o2).getValue()); - } - }); - Map.Entry me = (Map.Entry)list.get(list.size() - 1); - for(int i = 0; i < list.size(); i++){ - float alpha = Float.valueOf(list.get(i).toString().split("=")[1]); - if (alpha < 180) me = (Map.Entry)list.get(i); - } - int rgb = (Integer)me.getKey(); - return rgb; - } - - /** - * @param rgbArr - * @return - */ - public static boolean isGray(int[] rgbArr) - { - int rgbSum = rgbArr[0] + rgbArr[1] + rgbArr[2]; - if (rgbSum > 0 && rgbSum < 256 * 3) return false; - return true; - } - - /** - * @param stack - * @return - */ - public String getItemStackDisplayName(ItemStack stack) - { - if (JewelryNBT.ingot(stack) != null && Item.getIdFromItem(JewelryNBT.ingot(stack).getItem()) > 0) return JewelryNBT.ingot(stack).getDisplayName().replace("Ingot", " ").trim() + " " + ("" + StatCollector.translateToLocal(getUnlocalizedNameInefficiently(stack) + ".name")).trim(); - return ("" + StatCollector.translateToLocal(getUnlocalizedNameInefficiently(stack) + ".name")).trim(); - } - - /** - * allows items to add custom lines of information to the mouseover description. - * - * @param stack - * @param player - * @param list - * @param par4 - */ - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean par4) - { - if (stack.hasTagCompound() && par4){ - ItemStack ingot = JewelryNBT.ingot(stack); - if (ingot != null && Item.getIdFromItem(JewelryNBT.ingot(stack).getItem()) > 0) list.add("Ingot: " + EnumChatFormatting.YELLOW + ingot.getDisplayName()); - ItemStack gem = JewelryNBT.gem(stack); - if (gem != null) list.add("Gem: " + EnumChatFormatting.BLUE + gem.getDisplayName()); - ArrayList modifier = JewelryNBT.modifier(stack); - if (!modifier.isEmpty()) list.add("Modifiers: "); - for(int i = 0; i < modifier.size(); i++) - list.add(EnumChatFormatting.DARK_PURPLE + modifier.get(i).getDisplayName() + " x" + modifier.get(i).stackSize); - } - } - - /** - * @param stack - * @param player - */ - public void action(ItemStack stack, EntityPlayer player) - { - for(ModifierEffects mod: ModifierEffects.getEffects()) - mod.action(stack, player, this); - } - - /** - * @param item - * @param player - * @param source - * @return - */ - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, float amount) - { - for(ModifierEffects mod: ModifierEffects.getEffects()) mod.onPlayerAttacked(item, player, source, this, amount); - } - - /** - * @param item - * @param player - * @param target - * @return - */ - public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, float amount) - { - for(ModifierEffects mod: ModifierEffects.getEffects()) mod.onEntityAttacked(item, player, target, this, amount); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d0/905dc04d2bde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d0/905dc04d2bde00141043c3025ec60dfc new file mode 100644 index 0000000..1667bd7 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d0/905dc04d2bde00141043c3025ec60dfc @@ -0,0 +1,466 @@ +package darkknight.jewelrycraft.events; + +import ibxm.Player; +import java.io.EOFException; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Iterator; +import java.util.List; +import java.util.Random; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompressedStreamTools; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.MathHelper; +import net.minecraftforge.client.event.EntityViewRenderEvent; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.event.entity.item.ItemTossEvent; +import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.living.LivingDeathEvent; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingFallEvent; +import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; +import net.minecraftforge.event.world.WorldEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.config.ConfigHandler; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.entities.EntityHalfHeart; +import darkknight.jewelrycraft.entities.EntityHeart; +import darkknight.jewelrycraft.item.ItemBaseJewelry; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemList; +import darkknight.jewelrycraft.network.PacketClearColorCache; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.network.PacketSendCurseStats; +import darkknight.jewelrycraft.network.PacketSendPlayerInfo; +import darkknight.jewelrycraft.util.BlockUtils; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +/** + * Code taken from OpenBlocks + */ +public class EntityEventHandler +{ + /** + * @param event + */ + @SubscribeEvent + public void onEntityJoinWorld(EntityJoinWorldEvent event) + { + if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + final Entity entity = event.entity; + if (!event.world.isRemote && entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); + if (shouldGiveManual){ + ItemStack manual = new ItemStack(ItemList.guide); + if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); + persistTag.setBoolean("givenGuide", true); + } + boolean render = persistTag.getBoolean("fancyRender"); + JewelrycraftMod.fancyRender = render; + for(Curse curse: Curse.getCurseList()) + if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); + persistTag.setBoolean("sendInfo", true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityUpdate(LivingUpdateEvent event) + { + Entity entity = event.entity; + if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ + entity.motionX *= 0D; + entity.motionZ *= 0D; + entity.motionY *= 0D; + entity.rotationPitch = entity.prevRotationPitch; + entity.rotationYaw = entity.prevRotationYaw; + entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); + if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); + entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); + if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ + player.motionX *= 0D; + player.motionZ *= 0D; + player.motionY *= 0D; + player.rotationPitch = entity.prevRotationPitch; + player.rotationYaw = entity.prevRotationYaw; + playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); + if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); + player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); + } + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if(item != null) ((ItemBaseJewelry)item.getItem()).action(item, player); + } + if (!player.worldObj.isRemote){ + if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); + if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); + } + if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); + if (playerInfo.getBoolean("sendInfo")){ + JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); + playerInfo.setBoolean("sendInfo", false); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); + } + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityAttacked(LivingAttackEvent event) + { + Entity entity = event.entityLiving; + if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); + if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("negateDamage")){ + playerInfo.setBoolean("negateDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); + } + if (player.getHealth() != player.prevHealth){ + if (playerInfo.getFloat("WhiteHeart") > 0){ + playerInfo.setFloat("WhiteHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getFloat("BlueHeart") > 0){ + float damage = playerInfo.getFloat("BlueHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlueHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlueHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + }else if (playerInfo.getFloat("BlackHeart") > 0){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); + List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); + if (enemies != null && !enemies.isEmpty()){ + Iterator iterator = enemies.iterator(); + while (iterator.hasNext()){ + Entity enemy = (Entity)iterator.next(); + enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); + } + } + float damage = playerInfo.getFloat("BlackHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlackHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlackHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + } + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); + }else if (event.source.getEntity() instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.source.getEntity(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("weakDamage")){ + playerInfo.setBoolean("weakDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onPlayerRespawn(PlayerEvent.Clone event) + { + EntityPlayer player = event.entityPlayer; + if (!player.worldObj.isRemote){ + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (playerInfo.hasKey("cursePoints")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + } + playerInfo.setBoolean("sendInfo", true); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param player + * @param playerInfo + * @param curse + */ + public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) + { + System.out.println(curseNo + " " + Curse.availableCurses); + if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ + int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); + Curse cur = Curse.availableCurses.get(no); + playerInfo.setInteger(cur.getName(), 1); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) + { + Curse cur = Curse.getCurseList().get(curseID); + if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ + playerInfo.setInteger(cur.getName(), grade); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + @SubscribeEvent + public void itemToss(ItemTossEvent event) + { + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, Variables.MODID); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ + EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); + entityitem.motionX = 0; + entityitem.motionZ = 0; + entityitem.motionY = 0.11000000298023224D; + event.player.worldObj.spawnEntityInWorld(entityitem); + List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; + Iterator plrs = players.iterator(); + while (plrs.hasNext()) + ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); + event.setCanceled(true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void playerFileSave(PlayerEvent.SaveToFile event) + { + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityDead(LivingDeathEvent event) + { + final Entity entity = event.entity; + Random rand = new Random(); + String[] types = {"Red", "Blue", "White", "Black"}; + if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ + EntityLiving live = (EntityLiving)entity; + String type = types[rand.nextInt(4)]; + if (rand.nextInt(6) == 0){ + if (type == "White"){ + EntityHeart h = new EntityHalfHeart(live.worldObj); + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + }else{ + for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ + EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; + EntityHeart h = hearts[rand.nextInt(2)]; + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + } + } + } + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ + for(Curse l: Curse.getCurseList()){ + if (playerInfo.getInteger(l.getName()) == 1){ + playerInfo.setInteger(l.getName(), 0); + if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); + }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); + } + if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + playerInfo.setBoolean("sendInfo", true); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldLoad(WorldEvent.Load event) + { + if (!event.world.isRemote){ + new File(JewelrycraftMod.dir + File.separator + Variables.MODID).mkdirs(); + JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + Variables.MODID, "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); + try{ + if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldSave(WorldEvent.Save event) + { + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogColors(EntityViewRenderEvent.FogColors event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + event.red = 0f; + event.green = 0f; + event.blue = 0f; + } + } + if (event.isCancelable()) event.setCanceled(true); + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogDensity(EntityViewRenderEvent.FogDensity event) + {} + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void renderFog(EntityViewRenderEvent.RenderFogEvent event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); + GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); + } + } + if (event.isCancelable()) event.setCanceled(true); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d1/406cb68309de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d1/406cb68309de00141043c3025ec60dfc new file mode 100644 index 0000000..55fb25c --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d1/406cb68309de00141043c3025ec60dfc @@ -0,0 +1,184 @@ +package darkknight.jewelrycraft.model; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + System.out.println((int)f3); + if ((int)f3 != -1){ + int ingotColor = Math.abs((int)f3); + int red = (ingotColor >> 16) & 0xff; + int green = (ingotColor >> 8) & 0xff; + int blue = ingotColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d1/6037b5cdcedf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d1/6037b5cdcedf00141dc6c962aec96210 new file mode 100644 index 0000000..c1e2dd8 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d1/6037b5cdcedf00141dc6c962aec96210 @@ -0,0 +1,87 @@ +package darkknight.jewelrycraft.effects; + +import net.minecraft.block.BlockOre; +import net.minecraft.client.Minecraft; +import net.minecraft.client.settings.GameSettings.Options; +import net.minecraft.entity.monster.EntityEnderman; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.biome.BiomeGenBase; +import cpw.mods.fml.relauncher.ReflectionHelper; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; + +public class EffectEnderEye extends ModifierEffects +{ + private boolean originalVD = false; + private float originalViewDistance; + + public EffectEnderEye() + { + super(new ItemStack(Items.ender_eye)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemEarrings && exists && !player.worldObj.isRemote){ + for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ + EntityEnderman enderman = (EntityEnderman)e; + ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); + Vec3 vec3 = player.getLook(1.0F).normalize(); + Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); + double d0 = vec31.lengthVector(); + vec31 = vec31.normalize(); + double d1 = vec3.dotProduct(vec31); + if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ + // Positive earrings + if (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0) enderman.setTarget(null); + // Negative earrings + if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2 + JewelryNBT.numberOfModifiers(item) / 4)); + } + } + } + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote){ + ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); + if (chunkposition != null){ + Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX) * (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0 ? 1 : -1); + Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ) * (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0 ? 1 : -1); + } + } + // Positive bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 150 - JewelryNBT.numberOfModifiers(item) * 10, 2 - JewelryNBT.numberOfModifiers(item) / 5)); + // Negative bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && rand.nextInt(520 - JewelryNBT.numberOfModifiers(item) * 20) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1), player.posY, player.posZ + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1)); + // Negative ring + if (jewelry instanceof ItemRing && exists) Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 2F - JewelryNBT.numberOfModifiers(item) * 0.1F); + // Positive ring + if (jewelry instanceof ItemRing && exists && rand.nextInt(180 + JewelryNBT.numberOfModifiers(item)*20) == 12){ + for(int i = (int)player.posX - 2; i <= (int)player.posX + 2; i++) + for(int j = (int)player.posY - 2; j <= (int)player.posY + 2; j++) + for(int k = (int)player.posZ - 2; k <= (int)player.posZ + 2; k++) + if (player.worldObj.getBlock(i, j, k) instanceof BlockOre) player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "You sense some " + player.worldObj.getBlock(i, j, k).getLocalizedName() + " around you.")); + } + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d2/1003962904de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d2/1003962904de00141043c3025ec60dfc new file mode 100644 index 0000000..88ab92e --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d2/1003962904de00141043c3025ec60dfc @@ -0,0 +1,278 @@ +package darkknight.jewelrycraft.tileentity; + +import java.util.ArrayList; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import darkknight.jewelrycraft.block.BlockHandPedestal; +import darkknight.jewelrycraft.block.BlockList; +import darkknight.jewelrycraft.particles.EntityShadowsFX; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class TileEntityShadowEye extends TileEntity +{ + public int opening, timer, t = 20; + public boolean active; + public ArrayList pedestalItems = new ArrayList(); + ResourceLocation particleTexture = new ResourceLocation(Variables.MODID, "textures/particle/shadows.png"); + public EntityPlayer target; + + public TileEntityShadowEye() + { + opening = 1; + timer = 20; + active = false; + } + + /** + * @param nbt + */ + @Override + public void writeToNBT(NBTTagCompound nbt) + { + super.writeToNBT(nbt); + nbt.setInteger("opening", opening); + nbt.setInteger("timer", timer); + nbt.setBoolean("active", active); + } + + /** + * @param nbt + */ + @Override + public void readFromNBT(NBTTagCompound nbt) + { + super.readFromNBT(nbt); + opening = nbt.getInteger("opening"); + timer = nbt.getInteger("timer"); + active = nbt.getBoolean("active"); + } + + /** + * + */ + @Override + public void updateEntity() + { + super.updateEntity(); + boolean valid = isValidStructure(worldObj, xCoord, yCoord, zCoord, blockMetadata); + if (active) timer--; + if (active && target != null && worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(8D, 8D, 8D)).contains(target)){ + active = false; + timer = -1; + } + if (opening == 4 && timer <= 0) active = false; + if (!active && timer <= 0 && opening != 1){ + if (t > 0) t--; + if (t <= 0){ + opening--; + t = 20; + } + } + if (opening == 2 && timer <= 0 && t == 10){ + addData(worldObj, xCoord, yCoord, zCoord); + TileEntityHandPedestal target = (TileEntityHandPedestal)worldObj.getTileEntity(xCoord, yCoord - 3, zCoord); + if (target != null && target.getHeldItemStack() != null) JewelryNBT.addModifiers(target.getHeldItemStack(), pedestalItems); + } + if (active && timer <= 0){ + if (opening < 4){ + opening++; + timer = 20; + } + if (valid && opening == 4) timer = 1000; + else if (!valid){ + active = false; + timer = -1; + } + } + for(Object player: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(8D, 8D, 8D))) + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", false); + } + if (active && opening == 4){ + float din = 6F; + int i = Minecraft.getMinecraft().gameSettings.particleSetting; + for(float x = -din; x <= din; x += 0.2F) + for(float z = -din; z <= din; z += 0.2F) + if (x * x + z * z >= din * din - 1 && x * x + z * z <= din * din + 1) Minecraft.getMinecraft().effectRenderer.addEffect(new EntityShadowsFX(worldObj, xCoord + x + 0.5F, yCoord - 0.5F, zCoord + z + 0.5F, 15F, 0.04F - 0.01F * i, particleTexture)); + for(int l = 0; l <= 2 - i; l++) + worldObj.spawnParticle("depthsuspend", xCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), yCoord - 2F + worldObj.rand.nextFloat(), zCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), 0, 0, 0); + for(Object player: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(8D, 8D, 8D))) + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", true); + } + } + } + + /** + * @param world + * @param x + * @param y + * @param z + * @param metadata + * @return + */ + public boolean isValidStructure(World world, int x, int y, int z, int metadata) + { + if (world.getBlockMetadata(x, y, z) == 0 || world.getBlockMetadata(x, y, z) == 2){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x + 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x + 1, y + 1, z) != 5) return false; + if (world.getBlock(x - 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x - 1, y + 1, z) != 5) return false; + // 2nd Layer + if (world.getBlock(x + 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 2, y, z) != 1) return false; + if (world.getBlock(x + 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 1, y, z) != 4) return false; + if (world.getBlock(x - 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 1, y, z) != 5) return false; + if (world.getBlock(x - 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 2, y, z) != 0) return false; + // 3rd Layer + if (world.getBlock(x + 2, y - 1, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 1, z) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x + 2, y - 2, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 2, z) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x + 2, y - 3, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 3, z) != Blocks.stonebrick) return false; + }else if (world.getBlockMetadata(x, y, z) == 1 || world.getBlockMetadata(x, y, z) == 3){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x, y + 1, z + 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z + 1) != 5) return false; + if (world.getBlock(x, y + 1, z - 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z - 1) != 5) return false; + // 2nd Layer + if (world.getBlock(x, y, z + 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 2) != 3) return false; + if (world.getBlock(x, y, z + 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 1) != 6) return false; + if (world.getBlock(x, y, z - 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 1) != 7) return false; + if (world.getBlock(x, y, z - 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 2) != 2) return false; + // 3rd Layer + if (world.getBlock(x, y - 1, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 1, z - 2) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x, y - 2, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 2, z - 2) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x, y - 3, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 3, z - 2) != Blocks.stonebrick) return false; + } + // 3rd Layer + if (world.getBlock(x - 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x - 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + // 4th Layer + if (world.getBlock(x - 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 2, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z + 4) != Blocks.stonebrick) return false; + // 5th Layer + // Pillars + if (world.getBlock(x - 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 3, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z + 4) != Blocks.stonebrick) return false; + // Pedestals + if (!(world.getBlock(x, y - 3, z) instanceof BlockHandPedestal)) return false; + if (world.getBlock(x - 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z + 2) != 1) return false; + if (world.getBlock(x - 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x - 5, y - 3, z) != 2) return false; + if (world.getBlock(x - 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z - 2) != 3) return false; + if (world.getBlock(x - 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z - 4) != 3) return false; + if (world.getBlock(x, y - 3, z - 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z - 5) != 4) return false; + if (world.getBlock(x + 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z - 4) != 5) return false; + if (world.getBlock(x + 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z - 2) != 5) return false; + if (world.getBlock(x + 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x + 5, y - 3, z) != 6) return false; + if (world.getBlock(x + 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z + 2) != 7) return false; + if (world.getBlock(x + 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z + 4) != 7) return false; + if (world.getBlock(x, y - 3, z + 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z + 5) != 0) return false; + if (world.getBlock(x - 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z + 4) != 1) return false; + return true; + } + + /** + * @param world + * @param x + * @param y + * @param z + */ + public void addData(World world, int x, int y, int z) + { + pedestalItems.clear(); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z - 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z + 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z + 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z + 4)); + } + + /** + * @param pedestal + */ + public void addPedestalInfo(TileEntityHandPedestal pedestal) + { + ItemStack heldItemStack; + if (pedestal != null && (heldItemStack = pedestal.getHeldItemStack()) != null){ + if (pedestalItems.isEmpty()) pedestalItems.add(heldItemStack.copy()); + else{ + boolean hasItem = false; + int index = 0; + for(int ind = 0; ind < pedestalItems.size() && !hasItem; ind++) + if (heldItemStack.getItem().equals(pedestalItems.get(ind).getItem()) && heldItemStack.getItemDamage() == pedestalItems.get(ind).getItemDamage()){ + index = ind; + hasItem = true; + if (heldItemStack.hasTagCompound() && pedestalItems.get(ind).hasTagCompound() && !heldItemStack.getTagCompound().equals(pedestalItems.get(ind).getTagCompound())) hasItem = false; + } + if (!hasItem) pedestalItems.add(heldItemStack.copy()); + else{ + ItemStack object = pedestalItems.get(index).copy(); + object.stackSize++; + pedestalItems.set(index, object); + } + } + pedestal.removeHeldItemStack(); + pedestal.openHand(); + } + else if(pedestal != null && target != null) JewelrycraftUtil.addCursePoints(target, 20); + } + + /** + * @return + */ + @Override + public Packet getDescriptionPacket() + { + NBTTagCompound nbttagcompound = new NBTTagCompound(); + writeToNBT(nbttagcompound); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 1, nbttagcompound); + } + + /** + * @param net + * @param packet + */ + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet) + { + readFromNBT(packet.func_148857_g()); + worldObj.func_147479_m(xCoord, yCoord, zCoord); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d2/c001ded384d000141a1fb02abca5ff55 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d2/c001ded384d000141a1fb02abca5ff55 deleted file mode 100644 index 40654fd..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d2/c001ded384d000141a1fb02abca5ff55 +++ /dev/null @@ -1,79 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.block.BlockOre; -import net.minecraft.client.Minecraft; -import net.minecraft.client.settings.GameSettings.Options; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import net.minecraft.world.biome.BiomeGenBase; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - private boolean originalVD = false; - private float originalViewDistance; - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 140, 1)); - if (jewelry instanceof ItemBracelet && pos != -1 && !player.worldObj.isRemote && rand.nextInt(500) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30)*(rand.nextBoolean()?-1:1), player.posY, player.posZ + rand.nextInt(30)*(rand.nextBoolean()?-1:1)); - if (jewelry instanceof ItemRing && pos != -1 && rand.nextInt(50) == 12){ - Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 1.0F); - for(int i = (int)player.posX - 2; i <= (int)player.posX + 2; i++) - for(int j = (int)player.posY - 2; j <= (int)player.posY + 2; j++) - for(int k = (int)player.posZ - 2; k <= (int)player.posZ + 2; k++) - if(player.worldObj.getBlock(i, j, k) instanceof BlockOre) - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "You sense some ore around you.")); - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/40e36e70b9d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/40e36e70b9d000141b65e2fc7f94332d deleted file mode 100644 index 23f0f27..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/40e36e70b9d000141b65e2fc7f94332d +++ /dev/null @@ -1,233 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ - GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - if(ItemStack.areItemStacksEqual(item, new ItemStack(Blocks.light_weighted_pressure_plate, 1, 0)))GL11.glRotatef(25.0F, -1.0F, 0.0F, 0.0F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/8065ef51d1df00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/8065ef51d1df00141dc6c962aec96210 new file mode 100644 index 0000000..3a3445f --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/8065ef51d1df00141dc6c962aec96210 @@ -0,0 +1,119 @@ +/** + * + */ +package darkknight.jewelrycraft.commands; + +/** + * @author Sorin + * + */ +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.command.WrongUsageException; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IChatComponent; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.events.EntityEventHandler; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; + +public class JewelrycraftCommands extends CommandBase +{ + private List aliases; + + public JewelrycraftCommands() + { + this.aliases = new ArrayList(); + this.aliases.add("jw"); + this.aliases.add("jewelry"); + } + + @Override + public String getCommandName() + { + return "jewelrycraft"; + } + + @Override + public String getCommandUsage(ICommandSender var1) + { + return "/jewelrycraft [points]"; + } + + @Override + public List getCommandAliases() + { + return aliases; + } + + @Override + public void processCommand(ICommandSender commandSender, String[] astring) + { + if (astring.length == 0 || astring[0].equals("help")) throw new WrongUsageException(getCommandUsage(commandSender)); + if (astring[0].equals("getCursePoints")){ + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + commandSender.addChatMessage(new ChatComponentTranslation(Integer.toString(JewelrycraftUtil.getCursePoints(entityplayermp)))); + }else if (astring[0].equals("addCursePoints")){ + int points = CommandBase.parseIntWithMin(commandSender, astring[2], 0); + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + JewelrycraftUtil.addCursePoints(entityplayermp, points); + }else if (astring[0].equals("setCursePoints")){ + int points = CommandBase.parseIntWithMin(commandSender, astring[2], 0); + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + JewelrycraftUtil.addCursePoints(entityplayermp, points - JewelrycraftUtil.getCursePoints(entityplayermp)); + } + // else if (astring[0].equals("addModifier")){ + // ItemStack item = new ItemStack(CommandBase.getItemByText(commandSender, astring[1])); + // EntityPlayerMP entityplayermp = getPlayer(commandSender, commandSender.getCommandSenderName()); + // ArrayList modifier = new ArrayList(); + // modifier.add(item); + // JewelryNBT.addModifiers(entityplayermp.getCurrentEquippedItem(), modifier); + // } + // else if (astring[0].equals("addCurse")){ + // EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + // int curse = Integer.valueOf(astring[2]); + // int grade = Integer.valueOf(astring[3]); + // NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(entityplayermp, "Jewelrycraft"); + // if(curse < Curse.getCurseList().size() && grade <= 2) + // { + // EntityEventHandler.addCurse(entityplayermp, playerInfo, curse, grade); + // JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + // } + // else if(curse >= Curse.getCurseList().size()) entityplayermp.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Curse ID exceedes the maximum value of " + (Curse.getCurseList().size() - 1))); + // else entityplayermp.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Curse grade exceedes the maximum value of 2")); + // + // } + } + + @Override + public List addTabCompletionOptions(ICommandSender icommandsender, String[] astring) + { + final List MATCHES = new LinkedList(); + final String ARG_LC = astring[astring.length - 1].toLowerCase(); + if (astring.length == 1){ + if ("addCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addCursePoints"); + if ("getCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("getCursePoints"); + if ("setCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("setCursePoints"); + // if ("addModifier".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addModifier"); + // if ("addCurse".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addCurse"); + }else if (astring.length == 2){ + for(String un: MinecraftServer.getServer().getAllUsernames()) + if (un.toLowerCase().startsWith(ARG_LC)) MATCHES.add(un); + // else if (!astring[0].equals("addCurse")) return getListOfStringsFromIterableMatchingLastWord(astring, Item.itemRegistry.getKeys()); + } + return MATCHES.isEmpty() ? null : MATCHES; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/80bf6f449bd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/80bf6f449bd000141b65e2fc7f94332d deleted file mode 100644 index eef17bf..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/80bf6f449bd000141b65e2fc7f94332d +++ /dev/null @@ -1,12 +0,0 @@ -/** - * - */ -package darkknight.jewelrycraft.container; - -/** - * @author Sorin - * - */ -public class GuiTabIntroduction -{ -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/c054e7fab5d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/c054e7fab5d000141b65e2fc7f94332d deleted file mode 100644 index 9bf6158..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d3/c054e7fab5d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 145, 150, 35, 30); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 9 && mouseX <= x + 19 && mouseY >= y + 19 && mouseY <= y + 30) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/60ad6fa0bcd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/60ad6fa0bcd000141b65e2fc7f94332d deleted file mode 100644 index b9cb84c..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/60ad6fa0bcd000141b65e2fc7f94332d +++ /dev/null @@ -1,245 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_LIGHT0); - GL11.glEnable(GL11.GL_LIGHT1); - RenderHelper.disableStandardItemLighting(); - } - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - GL11.glDisable(GL11.GL_LIGHT0); - GL11.glDisable(GL11.GL_LIGHTING); - } - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/d0970b5004de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/d0970b5004de00141043c3025ec60dfc new file mode 100644 index 0000000..364ec79 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/d0970b5004de00141043c3025ec60dfc @@ -0,0 +1,278 @@ +package darkknight.jewelrycraft.tileentity; + +import java.util.ArrayList; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import darkknight.jewelrycraft.block.BlockHandPedestal; +import darkknight.jewelrycraft.block.BlockList; +import darkknight.jewelrycraft.particles.EntityShadowsFX; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class TileEntityShadowEye extends TileEntity +{ + public int opening, timer, t = 20; + public boolean active; + public ArrayList pedestalItems = new ArrayList(); + ResourceLocation particleTexture = new ResourceLocation(Variables.MODID, "textures/particle/shadows.png"); + public EntityPlayer target; + + public TileEntityShadowEye() + { + opening = 1; + timer = 20; + active = false; + } + + /** + * @param nbt + */ + @Override + public void writeToNBT(NBTTagCompound nbt) + { + super.writeToNBT(nbt); + nbt.setInteger("opening", opening); + nbt.setInteger("timer", timer); + nbt.setBoolean("active", active); + } + + /** + * @param nbt + */ + @Override + public void readFromNBT(NBTTagCompound nbt) + { + super.readFromNBT(nbt); + opening = nbt.getInteger("opening"); + timer = nbt.getInteger("timer"); + active = nbt.getBoolean("active"); + } + + /** + * + */ + @Override + public void updateEntity() + { + super.updateEntity(); + boolean valid = isValidStructure(worldObj, xCoord, yCoord, zCoord, blockMetadata); + if (active) timer--; + if (active && target != null && this.getDistanceFrom(target.posX, target.posY, target.posZ) > 25D){ + active = false; + timer = -1; + } + if (opening == 4 && timer <= 0) active = false; + if (!active && timer <= 0 && opening != 1){ + if (t > 0) t--; + if (t <= 0){ + opening--; + t = 20; + } + } + if (opening == 2 && timer <= 0 && t == 10){ + addData(worldObj, xCoord, yCoord, zCoord); + TileEntityHandPedestal target = (TileEntityHandPedestal)worldObj.getTileEntity(xCoord, yCoord - 3, zCoord); + if (target != null && target.getHeldItemStack() != null) JewelryNBT.addModifiers(target.getHeldItemStack(), pedestalItems); + } + if (active && timer <= 0){ + if (opening < 4){ + opening++; + timer = 20; + } + if (valid && opening == 4) timer = 1000; + else if (!valid){ + active = false; + timer = -1; + } + } + for(Object player: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(8D, 8D, 8D))) + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", false); + } + if (active && opening == 4){ + float din = 6F; + int i = Minecraft.getMinecraft().gameSettings.particleSetting; + for(float x = -din; x <= din; x += 0.2F) + for(float z = -din; z <= din; z += 0.2F) + if (x * x + z * z >= din * din - 1 && x * x + z * z <= din * din + 1) Minecraft.getMinecraft().effectRenderer.addEffect(new EntityShadowsFX(worldObj, xCoord + x + 0.5F, yCoord - 0.5F, zCoord + z + 0.5F, 15F, 0.04F - 0.01F * i, particleTexture)); + for(int l = 0; l <= 2 - i; l++) + worldObj.spawnParticle("depthsuspend", xCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), yCoord - 2F + worldObj.rand.nextFloat(), zCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), 0, 0, 0); + for(Object player: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(8D, 8D, 8D))) + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", true); + } + } + } + + /** + * @param world + * @param x + * @param y + * @param z + * @param metadata + * @return + */ + public boolean isValidStructure(World world, int x, int y, int z, int metadata) + { + if (world.getBlockMetadata(x, y, z) == 0 || world.getBlockMetadata(x, y, z) == 2){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x + 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x + 1, y + 1, z) != 5) return false; + if (world.getBlock(x - 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x - 1, y + 1, z) != 5) return false; + // 2nd Layer + if (world.getBlock(x + 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 2, y, z) != 1) return false; + if (world.getBlock(x + 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 1, y, z) != 4) return false; + if (world.getBlock(x - 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 1, y, z) != 5) return false; + if (world.getBlock(x - 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 2, y, z) != 0) return false; + // 3rd Layer + if (world.getBlock(x + 2, y - 1, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 1, z) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x + 2, y - 2, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 2, z) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x + 2, y - 3, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 3, z) != Blocks.stonebrick) return false; + }else if (world.getBlockMetadata(x, y, z) == 1 || world.getBlockMetadata(x, y, z) == 3){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x, y + 1, z + 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z + 1) != 5) return false; + if (world.getBlock(x, y + 1, z - 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z - 1) != 5) return false; + // 2nd Layer + if (world.getBlock(x, y, z + 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 2) != 3) return false; + if (world.getBlock(x, y, z + 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 1) != 6) return false; + if (world.getBlock(x, y, z - 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 1) != 7) return false; + if (world.getBlock(x, y, z - 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 2) != 2) return false; + // 3rd Layer + if (world.getBlock(x, y - 1, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 1, z - 2) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x, y - 2, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 2, z - 2) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x, y - 3, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 3, z - 2) != Blocks.stonebrick) return false; + } + // 3rd Layer + if (world.getBlock(x - 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x - 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + // 4th Layer + if (world.getBlock(x - 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 2, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z + 4) != Blocks.stonebrick) return false; + // 5th Layer + // Pillars + if (world.getBlock(x - 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 3, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z + 4) != Blocks.stonebrick) return false; + // Pedestals + if (!(world.getBlock(x, y - 3, z) instanceof BlockHandPedestal)) return false; + if (world.getBlock(x - 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z + 2) != 1) return false; + if (world.getBlock(x - 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x - 5, y - 3, z) != 2) return false; + if (world.getBlock(x - 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z - 2) != 3) return false; + if (world.getBlock(x - 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z - 4) != 3) return false; + if (world.getBlock(x, y - 3, z - 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z - 5) != 4) return false; + if (world.getBlock(x + 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z - 4) != 5) return false; + if (world.getBlock(x + 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z - 2) != 5) return false; + if (world.getBlock(x + 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x + 5, y - 3, z) != 6) return false; + if (world.getBlock(x + 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z + 2) != 7) return false; + if (world.getBlock(x + 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z + 4) != 7) return false; + if (world.getBlock(x, y - 3, z + 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z + 5) != 0) return false; + if (world.getBlock(x - 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z + 4) != 1) return false; + return true; + } + + /** + * @param world + * @param x + * @param y + * @param z + */ + public void addData(World world, int x, int y, int z) + { + pedestalItems.clear(); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z - 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z + 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z + 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z + 4)); + } + + /** + * @param pedestal + */ + public void addPedestalInfo(TileEntityHandPedestal pedestal) + { + ItemStack heldItemStack; + if (pedestal != null && (heldItemStack = pedestal.getHeldItemStack()) != null){ + if (pedestalItems.isEmpty()) pedestalItems.add(heldItemStack.copy()); + else{ + boolean hasItem = false; + int index = 0; + for(int ind = 0; ind < pedestalItems.size() && !hasItem; ind++) + if (heldItemStack.getItem().equals(pedestalItems.get(ind).getItem()) && heldItemStack.getItemDamage() == pedestalItems.get(ind).getItemDamage()){ + index = ind; + hasItem = true; + if (heldItemStack.hasTagCompound() && pedestalItems.get(ind).hasTagCompound() && !heldItemStack.getTagCompound().equals(pedestalItems.get(ind).getTagCompound())) hasItem = false; + } + if (!hasItem) pedestalItems.add(heldItemStack.copy()); + else{ + ItemStack object = pedestalItems.get(index).copy(); + object.stackSize++; + pedestalItems.set(index, object); + } + } + pedestal.removeHeldItemStack(); + pedestal.openHand(); + } + else if(pedestal != null && target != null) JewelrycraftUtil.addCursePoints(target, 20); + } + + /** + * @return + */ + @Override + public Packet getDescriptionPacket() + { + NBTTagCompound nbttagcompound = new NBTTagCompound(); + writeToNBT(nbttagcompound); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 1, nbttagcompound); + } + + /** + * @param net + * @param packet + */ + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet) + { + readFromNBT(packet.func_148857_g()); + worldObj.func_147479_m(xCoord, yCoord, zCoord); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/d0b060aabcd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/d0b060aabcd000141b65e2fc7f94332d deleted file mode 100644 index bce53b6..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d4/d0b060aabcd000141b65e2fc7f94332d +++ /dev/null @@ -1,246 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_LIGHT0); - GL11.glEnable(GL11.GL_LIGHT1); - } - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - RenderHelper.disableStandardItemLighting(); - GL11.glDisable(GL11.GL_LIGHT1); - GL11.glDisable(GL11.GL_LIGHT0); - GL11.glDisable(GL11.GL_LIGHTING); - } - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d5/303797fd70cf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d5/303797fd70cf00141de78e4a85bb2469 deleted file mode 100644 index 776a6e8..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d5/303797fd70cf00141de78e4a85bb2469 +++ /dev/null @@ -1,41 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player, Entity target) - { - if (rand.nextInt(5) == 0 && !world.isRemote && !(target instanceof EntityMob) && target instanceof EntityLiving && !(target instanceof EntityHeart) && !(target instanceof EntityHalfHeart) && target.canAttackWithItem()){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.getFloat("BlackHeart") < 20F) playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 1.0F); - if (player.getMaxHealth() >= 3F){ - player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() - 1.0F); - player.setHealth(player.getHealth() - 2.0F); - } - JewelrycraftUtil.addCursePoints(player, 10); - } - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d5/a098cba6bbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d5/a098cba6bbd000141b65e2fc7f94332d deleted file mode 100644 index 1e2ce65..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d5/a098cba6bbd000141b65e2fc7f94332d +++ /dev/null @@ -1,114 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d6/40cea7b326de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d6/40cea7b326de00141043c3025ec60dfc new file mode 100644 index 0000000..8222727 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d6/40cea7b326de00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(20, 14 + (size + 20) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 20, 7 + (size + 6) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d6/8057ba46b6d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d6/8057ba46b6d000141b65e2fc7f94332d deleted file mode 100644 index 221db97..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d6/8057ba46b6d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 145, 150, 35, 30); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() - 10, gui.getTop() + 20); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d6/f0ef569c3fcf001411138789b9e67617 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d6/f0ef569c3fcf001411138789b9e67617 deleted file mode 100644 index 6845bba..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d6/f0ef569c3fcf001411138789b9e67617 +++ /dev/null @@ -1,74 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.block.material.Material; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectBlazePowder extends ModifierEffects -{ - public EffectBlazePowder() - { - super(new ItemStack(Items.blaze_powder)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemNecklace && pos != -1){ - //Positive for necklace - player.extinguish(); - - //Negative for necklace - if (player.isInWater()) player.attackEntityFrom(DamageSource.drown, 1f); - } - //Negative for bracelet - if (jewelry instanceof ItemBracelet && pos != -1 && player.isInWater()){ - player.motionX *= 0.6D; - player.motionY *= 0.6D; - player.motionZ *= 0.6D; - player.motionY -= 0.02D; - if (player.isCollidedHorizontally) player.motionY = 0.30000001192092896D; - } - - //Negative for earrings - if (jewelry instanceof ItemEarrings && pos != -1){ - if (player.getAir() >= 300) player.setAir(player.getAir() / 2); - else player.setAir(player.getAir() - 1); - } - } - - @Override - public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - //Balanced for ring - if (jewelry instanceof ItemRing && pos != -1 && !player.isInWater()) target.setFire(2); - return false; - } - - @Override - public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && rand.nextInt(4) == 0) if (source == DamageSource.lava || source == DamageSource.inFire || source == DamageSource.onFire){ - //Positive for earrings - int stackSize = JewelryNBT.modifier(item).get(pos).stackSize; - player.heal((float)(0.05 * stackSize)); - return true; - } - //Positive for bracelet - if (jewelry instanceof ItemBracelet && pos != -1) if (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava && player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY - 0.7, player.boundingBox.maxZ), Material.lava) && !player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY + 0.9, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY, player.boundingBox.maxZ), Material.lava)) return true; - return false; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/40e71d74a5ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/40e71d74a5ce00141801ff0972626827 deleted file mode 100644 index 1943439..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/40e71d74a5ce00141801ff0972626827 +++ /dev/null @@ -1,446 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if(entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if(playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - // for(Curse curse: Curse.getCurseList()) - // if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if(((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); -// int grade = 1 + player.worldObj.rand.nextInt(2); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if(entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); -// if (!entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/f08bbf16c9df00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/f08bbf16c9df00141dc6c962aec96210 new file mode 100644 index 0000000..67769c9 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d7/f08bbf16c9df00141dc6c962aec96210 @@ -0,0 +1,94 @@ +package darkknight.jewelrycraft.effects; + +import java.util.Iterator; +import java.util.List; +import net.minecraft.entity.Entity; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class EffectFeather extends ModifierEffects +{ + public EffectFeather() + { + super(new ItemStack(Items.feather)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive earrings + if (jewelry instanceof ItemEarrings && pos != -1){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); + List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); + if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ + Iterator iterator = list.iterator(); + while (iterator.hasNext()){ + EntityArrow arrow = (EntityArrow)iterator.next(); + if (rand.nextInt(3) == 0 && (arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0)) arrow.setDead(); + } + } + } + // Positive bracelet + if (jewelry instanceof ItemBracelet && pos != -1){ + if (player.motionY < 0) player.motionY *= 0.6D; +// player.capabilities.setPlayerWalkSpeed(0.1F); +// player.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.001D); + if (!player.isPotionActive(Potion.moveSlowdown) || player.getActivePotionEffect(Potion.moveSlowdown).getDuration() < 30) player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 80, 1)); + player.fallDistance = 0F; + } + } + + @Override + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + NBTTagCompound enemyData = target.getEntityData(); + if (jewelry instanceof ItemRing && pos != -1 && enemyData.getInteger("reAttacked") == 0){ + enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); + target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); + if (rand.nextInt(2) == 0){ + enemyData.setInteger("stunTime", 50); + enemyData.setBoolean("stunned", true); + } + playerInfo.setBoolean("weakDamage", true); + } + if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (jewelry instanceof ItemNecklace && pos != -1 && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ + player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); + playerInfo.setBoolean("negateDamage", true); + } + // Negative necklace + if (jewelry instanceof ItemNecklace && pos != -1 && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); + // Negative earrings + if (jewelry instanceof ItemEarrings && pos != -1 && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d8/802536bc07de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d8/802536bc07de00141043c3025ec60dfc new file mode 100644 index 0000000..f120450 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d8/802536bc07de00141043c3025ec60dfc @@ -0,0 +1,186 @@ +package darkknight.jewelrycraft.model; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + if ((int)f3 != -1){ + int ingotColor = (int)f3; + int red = ingotColor >> 16 & 0xff; + int green = ingotColor >> 8 & 0xff; + int blue = ingotColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal1.render(f5); + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal2.render(f5); + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal3.render(f5); + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d9/10f9057570cf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d9/10f9057570cf00141de78e4a85bb2469 deleted file mode 100644 index 3eabae1..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d9/10f9057570cf00141de78e4a85bb2469 +++ /dev/null @@ -1,23 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; - -public class CurseFlamingSoul extends Curse -{ - public CurseFlamingSoul(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void action(World world, EntityPlayer player) - { - if (!player.isBurning() && rand.nextInt(20) == 0) player.setFire(60); - } - - public String getDescription() - { - return "Is it me or is it getting hot in here?"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d9/20879a0e7ccf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d9/20879a0e7ccf00141de78e4a85bb2469 deleted file mode 100644 index 8754e8f..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/d9/20879a0e7ccf00141de78e4a85bb2469 +++ /dev/null @@ -1,78 +0,0 @@ -package darkknight.jewelrycraft.container; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.client.GuiGuide; -import darkknight.jewelrycraft.util.JewelrycraftUtil; - -public class GuiTabGemsAndIngots extends GuiTab -{ - - /** - * @param id - */ - public GuiTabGemsAndIngots(int id) - { - super("Gems and ingots", id); - } - - /** - * @return - */ - @Override - public ItemStack getIcon() - { - return new ItemStack(Items.emerald); - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - for(int i = (page - 1) * 9; i < page * 9; i++) - if (i < JewelrycraftUtil.objects.size()){ - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Gems", gui.getLeft() + xPos + 40, gui.getTop(), 0); - gui.renderItem(JewelrycraftUtil.gem.get(i), gui.getLeft() + xPos + 10, gui.getTop() + 22 + 16 * (i - 9 * (page - 1)), 30f); - gui.getFont().drawString(String.format("%-1.18s", JewelrycraftUtil.gem.get(i).getDisplayName()), gui.getLeft() + xPos + 20, gui.getTop() + 12 + 16 * (i - 9 * (page - 1)), 0); - GL11.glDisable(GL11.GL_LIGHTING); - } - page -= JewelrycraftUtil.gem.size() / 9 + 1; - for(int i = (page - 1) * 9; i < page * 9; i++) - if (i < JewelrycraftUtil.metal.size() && page > 0){ - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Ingots", gui.getLeft() + xPos + 40, gui.getTop(), 0); - gui.renderItem(JewelrycraftUtil.metal.get(i).copy(), gui.getLeft() + xPos + 10, gui.getTop() + 22 + 16 * (i - 9 * (page - 1)), 30f); - gui.getFont().drawString(String.format("%-1.18s", JewelrycraftUtil.metal.get(i).copy().getDisplayName()), gui.getLeft() + xPos + 20, gui.getTop() + 12 + 16 * (i - 9 * (page - 1)), 0); - GL11.glDisable(GL11.GL_LIGHTING); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @return - */ - @Override - public int getMaxPages() - { - return JewelrycraftUtil.objects.size() / 9 + JewelrycraftUtil.metal.size() / 9 + 2; - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/da/30ea349dbbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/da/30ea349dbbd000141b65e2fc7f94332d deleted file mode 100644 index afd9dd3..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/da/30ea349dbbd000141b65e2fc7f94332d +++ /dev/null @@ -1,114 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/50bc8a77d0df00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/50bc8a77d0df00141dc6c962aec96210 new file mode 100644 index 0000000..d8c8e51 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/50bc8a77d0df00141dc6c962aec96210 @@ -0,0 +1,87 @@ +package darkknight.jewelrycraft.effects; + +import net.minecraft.block.BlockOre; +import net.minecraft.client.Minecraft; +import net.minecraft.client.settings.GameSettings.Options; +import net.minecraft.entity.monster.EntityEnderman; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.biome.BiomeGenBase; +import cpw.mods.fml.relauncher.ReflectionHelper; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; + +public class EffectEnderEye extends ModifierEffects +{ + private boolean originalVD = false; + private float originalViewDistance; + + public EffectEnderEye() + { + super(new ItemStack(Items.ender_eye)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemEarrings && exists && !player.worldObj.isRemote){ + for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ + EntityEnderman enderman = (EntityEnderman)e; + ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); + Vec3 vec3 = player.getLook(1.0F).normalize(); + Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); + double d0 = vec31.lengthVector(); + vec31 = vec31.normalize(); + double d1 = vec3.dotProduct(vec31); + if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ + // Positive earrings + if (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0) enderman.setTarget(null); + // Negative earrings + if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2 + JewelryNBT.numberOfModifiers(item) / 4)); + } + } + } + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote){ + ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); + if (chunkposition != null){ + Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX) * (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0 ? 1 : -1); + Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ) * (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0 ? 1 : -1); + } + } + // Positive bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 150 - JewelryNBT.numberOfModifiers(item) * 10, 2 - JewelryNBT.numberOfModifiers(item) / 5)); + // Negative bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && rand.nextInt(520 - JewelryNBT.numberOfModifiers(item) * 20) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1), player.posY, player.posZ + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1)); + // Negative ring + if (jewelry instanceof ItemRing && exists) Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 1.2F - JewelryNBT.numberOfModifiers(item) * 0.1F); + // Positive ring + if (jewelry instanceof ItemRing && exists && rand.nextInt(180 + JewelryNBT.numberOfModifiers(item)*20) == 12){ + for(int i = (int)player.posX - 2; i <= (int)player.posX + 2; i++) + for(int j = (int)player.posY - 2; j <= (int)player.posY + 2; j++) + for(int k = (int)player.posZ - 2; k <= (int)player.posZ + 2; k++) + if (player.worldObj.getBlock(i, j, k) instanceof BlockOre) player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "You sense some " + player.worldObj.getBlock(i, j, k).getLocalizedName() + " around you.")); + } + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100 + JewelryNBT.numberOfModifiers(item)*30, 1)); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/80e1e997f2cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/80e1e997f2cf0014170de422db399e8d deleted file mode 100644 index 770960c..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/db/80e1e997f2cf0014170de422db399e8d +++ /dev/null @@ -1,64 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null && chunkposition.chunkPosX != player.posX && chunkposition.chunkPosZ != player.posZ){ - Minecraft.getMinecraft().thePlayer.motionX -= 0.01D*Math.signum((double)chunkposition.chunkPosX); - Minecraft.getMinecraft().thePlayer.motionZ -= 0.01D*Math.signum((double)chunkposition.chunkPosZ); - System.out.println(chunkposition.chunkPosX + " " + player.posX); -// player.addChatMessage(new ChatComponentText("You hear a faint whisper telling you: \"You are getting closer, just " + (int)player.getDistance((double)chunkposition.chunkPosX, (double)chunkposition.chunkPosY, (double)chunkposition.chunkPosZ) + " more blocks to go.\"")); - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); -// if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/80c6ef06b6d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/80c6ef06b6d000141b65e2fc7f94332d deleted file mode 100644 index a1b1a49..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dc/80c6ef06b6d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 145, 150, 35, 30); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 30 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dd/7040acbf14cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dd/7040acbf14cf00141c41f52413db5e31 deleted file mode 100644 index 0d6e167..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/dd/7040acbf14cf00141c41f52413db5e31 +++ /dev/null @@ -1,453 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(player.worldObj, player); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - // int grade = 1 + player.worldObj.rand.nextInt(2); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - // if (!entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/de/007d82c399d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/de/007d82c399d000141b65e2fc7f94332d deleted file mode 100644 index dd6da36..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/de/007d82c399d000141b65e2fc7f94332d +++ /dev/null @@ -1,74 +0,0 @@ -package darkknight.jewelrycraft.container; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabModifiers extends GuiTab -{ - int maxPages; - public GuiTabModifiers(int id) - { - super("Modifiers", id); - } - - /** - * @return - */ - @Override - public ItemStack getIcon() - { - return new ItemStack(Items.blaze_powder); - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - String text = ""; - int xPos = page % 2 == 0 ? 107 : -35; - maxPages = 0; - switch(page) - { - case 1: - text = "Although you can add anything as a modifier, only some objects have an effect. In this tab you can find all of modifiers that have a use and what they do, in the form of a story/riddle/poem. However different jewellery have different effects for the same modifier."; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - maxPages++; - break; - case 2: - text = "The ancient ones talked about a rising fire in your heart. Fret do not, for flames do not burn, but water might sting a turn. Watch your step, do not be cocky, for its protection is a bit sloppy."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), new ItemStack(Items.blaze_powder), text, 40f); - maxPages++; - break; - case 3: - text = "Light and swift as a feather can be good all together. Enemies miss and get confused, this power can be abused. Be aware, against an arrow you can't compare. Fire is your enemy and weakness is the penalty."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), new ItemStack(Items.feather), text, 40f); - maxPages++; - break; - } - } - - /** - * @return - */ - @Override - public int getMaxPages() - { - return maxPages; - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/de/a05f4f052dde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/de/a05f4f052dde00141043c3025ec60dfc new file mode 100644 index 0000000..2353237 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/de/a05f4f052dde00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e/1035499a26de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e/1035499a26de00141043c3025ec60dfc new file mode 100644 index 0000000..f0a322c --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e/1035499a26de00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.5f, 0.5f, 0.0f); + drawTexturedModalRect(20, 24 + (size + 12) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 20, 7 + (size + 6) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e0/307fa52624cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e0/307fa52624cf00141c41f52413db5e31 deleted file mode 100644 index f869530..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e0/307fa52624cf00141c41f52413db5e31 +++ /dev/null @@ -1,99 +0,0 @@ -package darkknight.jewelrycraft.events; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.GuiChat; -import net.minecraft.client.gui.ScaledResolution; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.MathHelper; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.event.RenderGameOverlayEvent; -import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; -import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import darkknight.jewelrycraft.curses.Curse; - -public class ScreenHandler extends Gui -{ - private Minecraft mc; - public static NBTTagCompound tagCache = null; - public static int cooldown; - static ResourceLocation texture; - static ResourceLocation hearts = new ResourceLocation("jewelrycraft", "textures/gui/hearts.png"); - - public ScreenHandler(Minecraft mc, ResourceLocation tex) - { - super(); - this.mc = mc; - texture = tex; - } - - @SubscribeEvent - public void renderScreen(RenderGameOverlayEvent event) - { - if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); - if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; - if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ - int count = 0; - int size = 32; - ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); - if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ - mc.renderEngine.bindTexture(texture); - for(Curse curse: Curse.getCurseList()){ - if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ - Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); - Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); - count++; - } - } - count = 0; - for(Curse curse: Curse.getCurseList()) - if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ - int tag = curse.getID(); - GL11.glPushMatrix(); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glScalef(0.5f, 0.5f, 0.0f); - drawTexturedModalRect(4, 4 + (size + 12) * count, tag % size * size, tag / size * size, size, size); - GL11.glPopMatrix(); - count++; - } - count = 0; - size = 16; - for(Curse curse: Curse.getCurseList()) - if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ - int tag = curse.getID(); - mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 20, 7 + (size + 6) * count, 16777215); - if (tagCache.getInteger(curse.getName()) == 2){ - mc.renderEngine.bindTexture(hearts); - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - GL11.glColor4f(1f, 1f, 1f, 0.5f); - drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); - GL11.glPopMatrix(); - } - count++; - } - } - GL11.glColor4f(1f, 1f, 1f, 1.0f); - mc.renderEngine.bindTexture(hearts); - count = 0; - if (tagCache.getFloat("BlueHeart") > 0){ - for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) - drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); - if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); - } - count++; - if (tagCache.getFloat("BlackHeart") > 0){ - for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) - drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); - if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); - } - count++; - if (tagCache.getFloat("WhiteHeart") > 0) - drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); - } - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e0/4010cd0b71cf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e0/4010cd0b71cf00141de78e4a85bb2469 deleted file mode 100644 index f46605a..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e0/4010cd0b71cf00141de78e4a85bb2469 +++ /dev/null @@ -1,41 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player, Entity target) - { - if (rand.nextInt(3) == 0 && !world.isRemote && !(target instanceof EntityMob) && target instanceof EntityLiving && !(target instanceof EntityHeart) && !(target instanceof EntityHalfHeart) && target.canAttackWithItem()){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.getFloat("BlackHeart") < 20F) playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 1.0F); - if (player.getMaxHealth() >= 3F){ - player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() - 1.0F); - player.setHealth(player.getHealth() - 1.0F); - } - JewelrycraftUtil.addCursePoints(player, 10); - } - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e2/10498d82cbdf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e2/10498d82cbdf00141dc6c962aec96210 new file mode 100644 index 0000000..804520a --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e2/10498d82cbdf00141dc6c962aec96210 @@ -0,0 +1,97 @@ +package darkknight.jewelrycraft.effects; + +import java.util.Iterator; +import java.util.List; +import net.minecraft.entity.Entity; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class EffectFeather extends ModifierEffects +{ + public EffectFeather() + { + super(new ItemStack(Items.feather)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive earrings + if (jewelry instanceof ItemEarrings && exists){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); + List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); + if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ + Iterator iterator = list.iterator(); + while (iterator.hasNext()){ + EntityArrow arrow = (EntityArrow)iterator.next(); + if ((arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0) && rand.nextInt(2 + JewelryNBT.numberOfModifiers(item)) == 0) arrow.setDead(); + } + } + } + + if (jewelry instanceof ItemBracelet && exists){ + // Positive bracelet + if (player.motionY < 0) player.motionY *= 0.6D; + // Negative bracelet + if (!player.isPotionActive(Potion.moveSlowdown) || player.getActivePotionEffect(Potion.moveSlowdown).getDuration() < 30) player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 80, 1)); + player.fallDistance = 0F; + } + } + + @Override + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + NBTTagCompound enemyData = target.getEntityData(); + if (jewelry instanceof ItemRing && exists && enemyData.getInteger("reAttacked") == 0){ + // Negative ring + enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); + target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); + // Positive ring + if (rand.nextInt(2) == 0){ + enemyData.setInteger("stunTime", 50); + enemyData.setBoolean("stunned", true); + } + playerInfo.setBoolean("weakDamage", true); + } + if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ + player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); + playerInfo.setBoolean("negateDamage", true); + } + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); + // Negative earrings + if (jewelry instanceof ItemEarrings && exists && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e3/20ac2f520bde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e3/20ac2f520bde00141043c3025ec60dfc new file mode 100644 index 0000000..46c5a8e --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e3/20ac2f520bde00141043c3025ec60dfc @@ -0,0 +1,185 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + if ((int)f3 != -1){ + int ingotColor = (int)f3; + int red = (ingotColor >> 16) & 0xff; + int green = (ingotColor >> 8) & 0xff; + int blue = ingotColor & 0xff; + System.out.println(f3 + " " + 0xf3); + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e3/d0e62fdca5ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e3/d0e62fdca5ce00141801ff0972626827 deleted file mode 100644 index 9e8ca39..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e3/d0e62fdca5ce00141801ff0972626827 +++ /dev/null @@ -1,448 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if(entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - playerInfo.setBoolean("stunned", true); - playerInfo.setInteger("stunTime", 50); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if(playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - // for(Curse curse: Curse.getCurseList()) - // if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if(((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); -// int grade = 1 + player.worldObj.rand.nextInt(2); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if(entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); -// if (!entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/0043edd426de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/0043edd426de00141043c3025ec60dfc new file mode 100644 index 0000000..7ce8c54 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/0043edd426de00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 20, 7 + (size + 6) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(40 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/50ed324c0bde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/50ed324c0bde00141043c3025ec60dfc new file mode 100644 index 0000000..0f6eade --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/50ed324c0bde00141043c3025ec60dfc @@ -0,0 +1,185 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + if ((int)f3 != -1){ + int ingotColor = (int)f3; + int red = (ingotColor >> 16) & 0xff; + int green = (ingotColor >> 8) & 0xff; + int blue = ingotColor & 0xff; + System.out.println(red + " " + green + " "); + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/a0630cfe22cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/a0630cfe22cf00141c41f52413db5e31 deleted file mode 100644 index 52599de..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e4/a0630cfe22cf00141c41f52413db5e31 +++ /dev/null @@ -1,459 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e5/c04fd795a3d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e5/c04fd795a3d000141b65e2fc7f94332d deleted file mode 100644 index 992d88e..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e5/c04fd795a3d000141b65e2fc7f94332d +++ /dev/null @@ -1,68 +0,0 @@ -package darkknight.jewelrycraft.events; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraftforge.client.event.RenderPlayerEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import darkknight.jewelrycraft.entities.renders.RenderHelper; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.model.ModelMask; -import darkknight.jewelrycraft.tileentity.renders.MaskRender; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class PlayerRenderHandler -{ - ModelMask maskModel = new ModelMask(); - public static MaskRender mask = new MaskRender(); - - public static String[] infamyCache = new String[] {}; - - @SubscribeEvent - public void renderScreen(RenderPlayerEvent.Specials.Post event) - { - if (infamyCache != null) - { - Iterator players = event.entityPlayer.worldObj.playerEntities.iterator(); - - while(players.hasNext()) - { - EntityPlayer player = players.next(); - if (checkPlayerInfamy(player.getDisplayName()) && event.entityPlayer.getDisplayName().equals(player.getDisplayName())) - { - float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick; - float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick; - float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick; - GL11.glPushMatrix(); - GL11.glColor4f(1, 1, 1, 1); - GL11.glRotatef(yawOffset, 0, -1, 0); - GL11.glRotatef(yaw - 90, 0, 1, 0); - GL11.glRotatef(pitch, 0, 0, -1); - GL11.glRotatef(90F, 0, 1F, 0F); - RenderHelper.translateToHeadLevel(player); - GL11.glScalef(1.6f, 1.6f, 1.6f); - GL11.glTranslatef(-0.25F, -0.25F, -0.25F); - mask.doRender(event.entityPlayer, 0F, 0F, 0F, 0F, 0F); - GL11.glPopMatrix(); - } - } - } - } - - /** - * @param string - * @return - */ - private boolean checkPlayerInfamy(String string) - { - for (int i = 0; i < infamyCache.length; i++) - if (infamyCache[i].equals(string)) return true; - - return false; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e6/b04cd9362ede00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e6/b04cd9362ede00141043c3025ec60dfc new file mode 100644 index 0000000..b7fbeb5 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e6/b04cd9362ede00141043c3025ec60dfc @@ -0,0 +1,109 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ +// for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(5 + 16*count, resolution.getScaledHeight() - 20, 0 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlackHeart")) / 2.0F), 15, resolution.getScaledHeight() - 20, 16777215); +// if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("BlackHeart") > 0){ +// for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(5 + 16*count, resolution.getScaledHeight() - 20, 1 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlackHeart")) / 2.0F), 15, resolution.getScaledHeight() - 20, 16777215); +// if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(5 + 16*count, resolution.getScaledHeight() - 20, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e6/f095e7a126de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e6/f095e7a126de00141043c3025ec60dfc new file mode 100644 index 0000000..3fb6c1c --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e6/f095e7a126de00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.5f, 0.5f, 0.0f); + drawTexturedModalRect(20, 20 + (size + 20) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 20, 7 + (size + 6) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e7/50b3265a70cf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e7/50b3265a70cf00141de78e4a85bb2469 deleted file mode 100644 index 48140ea..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e7/50b3265a70cf00141de78e4a85bb2469 +++ /dev/null @@ -1,463 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setFloat("BlueHeart", 0f); - playerInfo.setFloat("BlackHeart", 0f); - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e7/600fcefeb6d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e7/600fcefeb6d000141b65e2fc7f94332d deleted file mode 100644 index aee8381..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e7/600fcefeb6d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 153, 10, 30); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() - 20, gui.getTop() + 15); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/7006558fa4ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/7006558fa4ce00141801ff0972626827 deleted file mode 100644 index 62ed599..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/7006558fa4ce00141801ff0972626827 +++ /dev/null @@ -1,436 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if(entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - System.out.println(entity); - } - if (entity.motionX == 0D && entity.motionY == 0D && entity.motionZ == 0D) entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - // for(Curse curse: Curse.getCurseList()) - // if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if(((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); -// int grade = 1 + player.worldObj.rand.nextInt(2); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if(entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); -// if (!entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/70d65d9f29de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/70d65d9f29de00141043c3025ec60dfc new file mode 100644 index 0000000..1557064 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/70d65d9f29de00141043c3025ec60dfc @@ -0,0 +1,122 @@ +/** + * + */ +package darkknight.jewelrycraft.commands; + +/** + * @author Sorin + * + */ +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.command.WrongUsageException; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IChatComponent; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.events.EntityEventHandler; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; + +public class JewelrycraftCommands extends CommandBase +{ + private List aliases; + + public JewelrycraftCommands() + { + this.aliases = new ArrayList(); + this.aliases.add("jw"); + this.aliases.add("jewelry"); + } + + @Override + public String getCommandName() + { + return "jewelrycraft"; + } + + @Override + public String getCommandUsage(ICommandSender var1) + { + String use = "/jewelrycraft [points] | "; + use += "/jewelrycraft |"; + use += "/jewelrycraft "; + return use; + } + + @Override + public List getCommandAliases() + { + return aliases; + } + + @Override + public void processCommand(ICommandSender commandSender, String[] astring) + { + if (astring.length == 0 || astring[0].equals("help")) throw new WrongUsageException(getCommandUsage(commandSender)); + if (astring[0].equals("getCursePoints")){ + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + commandSender.addChatMessage(new ChatComponentTranslation(Integer.toString(JewelrycraftUtil.getCursePoints(entityplayermp)))); + }else if (astring[0].equals("addCursePoints")){ + int points = CommandBase.parseIntWithMin(commandSender, astring[2], 0); + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + JewelrycraftUtil.addCursePoints(entityplayermp, points); + }else if (astring[0].equals("setCursePoints")){ + int points = CommandBase.parseIntWithMin(commandSender, astring[2], 0); + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + JewelrycraftUtil.addCursePoints(entityplayermp, points - JewelrycraftUtil.getCursePoints(entityplayermp)); + }else if (astring[0].equals("addModifier")){ + ItemStack item = new ItemStack(CommandBase.getItemByText(commandSender, astring[1])); + EntityPlayerMP entityplayermp = getPlayer(commandSender, commandSender.getCommandSenderName()); + ArrayList modifier = new ArrayList(); + modifier.add(item); + JewelryNBT.addModifiers(entityplayermp.getCurrentEquippedItem(), modifier); + }else if (astring[0].equals("addCurse")){ + EntityPlayerMP entityplayermp = getPlayer(commandSender, astring[1]); + int curse = Integer.valueOf(astring[2]); + int grade = Integer.valueOf(astring[3]); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(entityplayermp, "Jewelrycraft"); + if(curse < Curse.getCurseList().size() && grade <= 2) + { + System.out.println("add curse " + curse + " " + grade); + EntityEventHandler.addCurse(entityplayermp, playerInfo, curse, grade); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + else if(curse >= Curse.getCurseList().size()) entityplayermp.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Curse ID exceedes the maximum value of " + (Curse.getCurseList().size() - 1))); + else entityplayermp.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Curse grade exceedes the maximum value of 2")); + + } + } + + @Override + public List addTabCompletionOptions(ICommandSender icommandsender, String[] astring) + { + final List MATCHES = new LinkedList(); + final String ARG_LC = astring[astring.length - 1].toLowerCase(); + if (astring.length == 1){ + if ("addCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addCursePoints"); + if ("getCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("getCursePoints"); + if ("setCursePoints".toLowerCase().startsWith(ARG_LC)) MATCHES.add("setCursePoints"); + if ("addModifier".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addModifier"); + if ("addCurse".toLowerCase().startsWith(ARG_LC)) MATCHES.add("addCurse"); + }else if (astring.length == 2){ + if (!astring[0].equals("addModifier")){ + for(String un: MinecraftServer.getServer().getAllUsernames()) + if (un.toLowerCase().startsWith(ARG_LC)) MATCHES.add(un); + }else if (!astring[0].equals("addCurse")) return getListOfStringsFromIterableMatchingLastWord(astring, Item.itemRegistry.getKeys()); + } + return MATCHES.isEmpty() ? null : MATCHES; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/f0038df208de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/f0038df208de00141043c3025ec60dfc new file mode 100644 index 0000000..7faaa17 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e8/f0038df208de00141043c3025ec60dfc @@ -0,0 +1,184 @@ +package darkknight.jewelrycraft.model; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + System.out.println((int)f3); + if ((int)f3 != -1){ + int ingotColor = (int)f3; + int red = ingotColor >> 16 & 0xff; + int green = ingotColor >> 8 & 0xff; + int blue = ingotColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e9/a0901cd92dde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e9/a0901cd92dde00141043c3025ec60dfc new file mode 100644 index 0000000..46765e9 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e9/a0901cd92dde00141043c3025ec60dfc @@ -0,0 +1,106 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() - 50 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ +// for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(5, resolution.getScaledHeight() - 50 + 16 * count, 1 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlackHeart")) / 2.0F), 15, resolution.getScaledHeight() - 45 + 16 * count, 16777215); +// if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() - 50 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e9/d0507977c8df00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e9/d0507977c8df00141dc6c962aec96210 new file mode 100644 index 0000000..94f9447 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/e9/d0507977c8df00141dc6c962aec96210 @@ -0,0 +1,92 @@ +package darkknight.jewelrycraft.effects; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class EffectBlazePowder extends ModifierEffects +{ + public EffectBlazePowder() + { + super(new ItemStack(Items.blaze_powder)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemNecklace && pos != -1){ + // Positive for necklace + if (player.isBurning() && rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0) player.extinguish(); + // Negative for necklace + if (player.isInWater()) player.attackEntityFrom(DamageSource.drown, 1f + (JewelryNBT.numberOfModifiers(item) - 1) * 0.1F); + } + // Negative for bracelet + if (jewelry instanceof ItemBracelet && pos != -1 && player.isInWater()){ + player.motionX *= 0.6D; + player.motionY *= 0.6D; + player.motionZ *= 0.6D; + player.motionY -= 0.02D; + if (player.isCollidedHorizontally) player.motionY = 0.30000001192092896D; + } + // Negative for earrings + if (jewelry instanceof ItemEarrings && pos != -1){ + if (player.getAir() >= 300) player.setAir(player.getAir() / 2); + else player.setAir(player.getAir() - 1); + } + } + + @Override + public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + // Balanced for ring + if (jewelry instanceof ItemRing && pos != -1 && !player.isInWater()) target.setFire(2); + return false; + } + + @Override + public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + // int pos = JewelryNBT.doesModifierExist(item, modifier); + // if (jewelry instanceof ItemEarrings && pos != -1 && rand.nextInt(4) == 0) if (source == DamageSource.lava || source == DamageSource.inFire || source == DamageSource.onFire){ + // //Positive for earrings + // int stackSize = JewelryNBT.modifier(item).get(pos).stackSize; + // player.heal((float)(0.05 * stackSize)); + // return true; + // } + // //Positive for bracelet + // if (jewelry instanceof ItemBracelet && pos != -1) if (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava && player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY - 0.7, player.boundingBox.maxZ), Material.lava) && !player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY + 0.9, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY, player.boundingBox.maxZ), Material.lava)) return true; + return false; + } + + public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) + {} + + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + int pos = JewelryNBT.doesModifierExist(item, modifier); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (jewelry instanceof ItemEarrings && pos != -1 && rand.nextInt(4) == 0) if (source == DamageSource.lava || source == DamageSource.inFire || source == DamageSource.onFire){ + // Positive for earrings + int stackSize = JewelryNBT.modifier(item).get(pos).stackSize; + player.heal((float)(0.05 * stackSize)); + playerInfo.setBoolean("negateDamage", true); + } + // Positive for bracelet + if (jewelry instanceof ItemBracelet && pos != -1) if (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava && player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY - 0.7, player.boundingBox.maxZ), Material.lava) && !player.worldObj.isMaterialInBB(AxisAlignedBB.getBoundingBox(player.boundingBox.minX, player.boundingBox.minY + 0.9, player.boundingBox.minZ, player.boundingBox.maxX, player.boundingBox.maxY, player.boundingBox.maxZ), Material.lava)) playerInfo.setBoolean("negateDamage", true); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ea/d02f62a6b8d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ea/d02f62a6b8d000141b65e2fc7f94332d deleted file mode 100644 index b010b1a..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ea/d02f62a6b8d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 153, 12, 12); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, x, y - 20); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 15, y + 25, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/eb/104b1fe0b6d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/eb/104b1fe0b6d000141b65e2fc7f94332d deleted file mode 100644 index abfc4a1..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/eb/104b1fe0b6d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 145, 150, 30, 30); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() - 20, gui.getTop() + 15); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/eb/20010f43a5ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/eb/20010f43a5ce00141801ff0972626827 deleted file mode 100644 index d9be141..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/eb/20010f43a5ce00141801ff0972626827 +++ /dev/null @@ -1,102 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import java.util.Iterator; -import java.util.List; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.item.ItemRing; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class EffectFeather extends ModifierEffects -{ - public EffectFeather() - { - super(new ItemStack(Items.feather)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - // Positive earrings - if (jewelry instanceof ItemEarrings && pos != -1){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(1.0D, 1.0D, 1.0D); - List list = player.worldObj.getEntitiesWithinAABB(EntityArrow.class, axisalignedbb); - if (!player.worldObj.isRemote && list != null && !list.isEmpty()){ - Iterator iterator = list.iterator(); - while (iterator.hasNext()){ - EntityArrow arrow = (EntityArrow)iterator.next(); - if (rand.nextInt(3) == 0 && (arrow.shootingEntity == null || !(arrow.shootingEntity.equals(player)) || arrow.canBePickedUp == 0)) arrow.setDead(); - } - } - } - // Positive bracelet - if (jewelry instanceof ItemBracelet && pos != -1){ - if (player.motionY < 0) player.motionY *= 0.6D; - player.setAIMoveSpeed(player.getAIMoveSpeed() / 2); - player.fallDistance = 0F; - } - } - - @Override - public boolean onEntityAttackedCacellable(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public boolean onPlayerAttackedCacellable(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - return false; - } - - @Override - public void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - NBTTagCompound enemyData = target.getEntityData(); - if (jewelry instanceof ItemRing && pos != -1 && enemyData.getInteger("reAttacked") == 0){ - enemyData.setInteger("reAttacked", enemyData.getInteger("reAttacked") + 1); - target.attackEntityFrom(DamageSource.causePlayerDamage(player), amount / 2F); - if (rand.nextInt(2) == 0){ - enemyData.setInteger("stunTime", 50); - enemyData.setBoolean("stunned", true); - } - playerInfo.setBoolean("weakDamage", true); - } - if (enemyData.getInteger("reAttacked") == 1) enemyData.setInteger("reAttacked", 0); - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (jewelry instanceof ItemNecklace && pos != -1 && rand.nextInt(4) == 0 && source != DamageSourceList.weak && source != DamageSource.inFire && source != DamageSource.onFire && source != DamageSource.lava){ - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "The necklace protected you from taking damage!")); - playerInfo.setBoolean("negateDamage", true); - } - // Negative necklace - if (jewelry instanceof ItemNecklace && pos != -1 && (source == DamageSource.inFire || source == DamageSource.onFire || source == DamageSource.lava) && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 3F); - // Negative earrings - if (jewelry instanceof ItemEarrings && pos != -1 && source.damageType.equals("arrow") && source != DamageSourceList.weak) player.attackEntityFrom(DamageSourceList.weak, amount * 2F); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ec/20d3910bbdd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ec/20d3910bbdd000141b65e2fc7f94332d deleted file mode 100644 index e45417c..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ec/20d3910bbdd000141b65e2fc7f94332d +++ /dev/null @@ -1,242 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_LIGHT0); - } - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - GL11.glDisable(GL11.GL_LIGHT0); - GL11.glDisable(GL11.GL_LIGHTING); - } - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ec/509d9ad2cfdf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ec/509d9ad2cfdf00141dc6c962aec96210 new file mode 100644 index 0000000..1f977b7 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ec/509d9ad2cfdf00141dc6c962aec96210 @@ -0,0 +1,102 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); +// if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(95, 7 + (size + 10) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); +// } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 0 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlueHeart")) / 2.0F), 15 + 35*count, resolution.getScaledHeight() - 16, 16777215); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("BlackHeart") > 0){ + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 1 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlackHeart")) / 2.0F), 15 + 35*count, resolution.getScaledHeight() - 16, 16777215); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ec/e0847d256fcf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ec/e0847d256fcf00141de78e4a85bb2469 deleted file mode 100644 index 549f956..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ec/e0847d256fcf00141de78e4a85bb2469 +++ /dev/null @@ -1,37 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player, Entity target) - { - if (!world.isRemote && !(target instanceof EntityMob) && target instanceof EntityLiving){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (rand.nextInt(2) == 0){ - if(playerInfo.getFloat("BlackHeart") < 20F) playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 1.0F); - if(player.getMaxHealth() >= 3F) player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() - 1.0F); - } - JewelrycraftUtil.addCursePoints(player, 10); - } - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/508104ffb9d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/508104ffb9d000141b65e2fc7f94332d deleted file mode 100644 index e569381..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/508104ffb9d000141b65e2fc7f94332d +++ /dev/null @@ -1,232 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/50fc2bb229de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/50fc2bb229de00141043c3025ec60dfc new file mode 100644 index 0000000..248fa0c --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/50fc2bb229de00141043c3025ec60dfc @@ -0,0 +1,466 @@ +package darkknight.jewelrycraft.events; + +import ibxm.Player; +import java.io.EOFException; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Iterator; +import java.util.List; +import java.util.Random; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompressedStreamTools; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.MathHelper; +import net.minecraftforge.client.event.EntityViewRenderEvent; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.event.entity.item.ItemTossEvent; +import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.living.LivingDeathEvent; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.event.entity.living.LivingFallEvent; +import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; +import net.minecraftforge.event.world.WorldEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.config.ConfigHandler; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.entities.EntityHalfHeart; +import darkknight.jewelrycraft.entities.EntityHeart; +import darkknight.jewelrycraft.item.ItemBaseJewelry; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemList; +import darkknight.jewelrycraft.network.PacketClearColorCache; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.network.PacketSendCurseStats; +import darkknight.jewelrycraft.network.PacketSendPlayerInfo; +import darkknight.jewelrycraft.util.BlockUtils; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +/** + * Code taken from OpenBlocks + */ +public class EntityEventHandler +{ + /** + * @param event + */ + @SubscribeEvent + public void onEntityJoinWorld(EntityJoinWorldEvent event) + { + if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + final Entity entity = event.entity; + if (!event.world.isRemote && entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); + if (shouldGiveManual){ + ItemStack manual = new ItemStack(ItemList.guide); + if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); + persistTag.setBoolean("givenGuide", true); + } + boolean render = persistTag.getBoolean("fancyRender"); + JewelrycraftMod.fancyRender = render; + for(Curse curse: Curse.getCurseList()) + if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); + persistTag.setBoolean("sendInfo", true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityUpdate(LivingUpdateEvent event) + { + Entity entity = event.entity; + if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ + entity.motionX *= 0D; + entity.motionZ *= 0D; + entity.motionY *= 0D; + entity.rotationPitch = entity.prevRotationPitch; + entity.rotationYaw = entity.prevRotationYaw; + entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); + if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); + entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); + if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ + player.motionX *= 0D; + player.motionZ *= 0D; + player.motionY *= 0D; + player.rotationPitch = entity.prevRotationPitch; + player.rotationYaw = entity.prevRotationYaw; + playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); + if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); + player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); + } + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if(item != null) ((ItemBaseJewelry)item.getItem()).action(item, player); + } + if (!player.worldObj.isRemote){ + if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); + if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); + } + if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); + if (playerInfo.getBoolean("sendInfo")){ + JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); + playerInfo.setBoolean("sendInfo", false); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); + } + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityAttacked(LivingAttackEvent event) + { + Entity entity = event.entityLiving; + if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); + if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("negateDamage")){ + playerInfo.setBoolean("negateDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); + } + if (player.getHealth() != player.prevHealth){ + if (playerInfo.getFloat("WhiteHeart") > 0){ + playerInfo.setFloat("WhiteHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + if (playerInfo.getFloat("BlueHeart") > 0){ + float damage = playerInfo.getFloat("BlueHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlueHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlueHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + }else if (playerInfo.getFloat("BlackHeart") > 0){ + AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); + List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); + if (enemies != null && !enemies.isEmpty()){ + Iterator iterator = enemies.iterator(); + while (iterator.hasNext()){ + Entity enemy = (Entity)iterator.next(); + enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); + } + } + float damage = playerInfo.getFloat("BlackHeart") - event.ammount; + if (damage >= 0){ + playerInfo.setFloat("BlackHeart", damage); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(event.ammount); + }else{ + playerInfo.setFloat("BlackHeart", 0f); + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + player.heal(Math.abs(damage)); + } + } + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); + }else if (event.source.getEntity() instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.source.getEntity(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + for(int i = 0; i < 18; i++) + if (playerInfo.hasKey("ext" + i)){ + NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); + ItemStack item = ItemStack.loadItemStackFromNBT(nbt); + if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ + event.setCanceled(true); + break; + } + if (playerInfo.getBoolean("weakDamage")){ + playerInfo.setBoolean("weakDamage", false); + event.setCanceled(true); + break; + } + ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); + } + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onPlayerRespawn(PlayerEvent.Clone event) + { + EntityPlayer player = event.entityPlayer; + if (!player.worldObj.isRemote){ + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (playerInfo.hasKey("cursePoints")){ + int points = playerInfo.getInteger("cursePoints"); + for(int i = 1; i <= Variables.MAX_CURSES; i++) + if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); + if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + } + playerInfo.setBoolean("sendInfo", true); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param player + * @param playerInfo + * @param curse + */ + public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) + { + if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ + int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); + Curse cur = Curse.availableCurses.get(no); + playerInfo.setInteger(cur.getName(), 1); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) + { + Curse cur = Curse.getCurseList().get(curseID); + if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ + System.out.println("add curse " + cur + " " + grade); + playerInfo.setInteger(cur.getName(), grade); + Curse.availableCurses.remove(cur); + playerInfo.setBoolean("sendInfo", true); + } + } + + @SubscribeEvent + public void itemToss(ItemTossEvent event) + { + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, Variables.MODID); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ + EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); + entityitem.motionX = 0; + entityitem.motionZ = 0; + entityitem.motionY = 0.11000000298023224D; + event.player.worldObj.spawnEntityInWorld(entityitem); + List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; + Iterator plrs = players.iterator(); + while (plrs.hasNext()) + ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); + event.setCanceled(true); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void playerFileSave(PlayerEvent.SaveToFile event) + { + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onEntityDead(LivingDeathEvent event) + { + final Entity entity = event.entity; + Random rand = new Random(); + String[] types = {"Red", "Blue", "White", "Black"}; + if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ + EntityLiving live = (EntityLiving)entity; + String type = types[rand.nextInt(4)]; + if (rand.nextInt(6) == 0){ + if (type == "White"){ + EntityHeart h = new EntityHalfHeart(live.worldObj); + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + }else{ + for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ + EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; + EntityHeart h = hearts[rand.nextInt(2)]; + h.setType(type); + h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + live.worldObj.spawnEntityInWorld(h); + } + } + } + } + if (entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)entity; + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + playerInfo.setFloat("BlueHeart", 0f); + playerInfo.setFloat("BlackHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); + if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ + for(Curse l: Curse.getCurseList()){ + if (playerInfo.getInteger(l.getName()) == 1){ + playerInfo.setInteger(l.getName(), 0); + if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); + }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); + } + if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + playerInfo.setBoolean("sendInfo", true); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); + } + if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldLoad(WorldEvent.Load event) + { + if (!event.world.isRemote){ + new File(JewelrycraftMod.dir + File.separator + Variables.MODID).mkdirs(); + JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + Variables.MODID, "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); + try{ + if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + public void onWorldSave(WorldEvent.Save event) + { + if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ + if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); + } + catch(EOFException e){ + e.printStackTrace(); + } + catch(IOException e){ + e.printStackTrace(); + } + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogColors(EntityViewRenderEvent.FogColors event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + event.red = 0f; + event.green = 0f; + event.blue = 0f; + } + } + if (event.isCancelable()) event.setCanceled(true); + } + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void fogDensity(EntityViewRenderEvent.FogDensity event) + {} + + /** + * @param event + */ + @SubscribeEvent + @SideOnly (Side.CLIENT) + public void renderFog(EntityViewRenderEvent.RenderFogEvent event) + { + if (event.entity instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + if (persistTag.getBoolean("nearStartedRitual")){ + GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); + GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); + } + } + if (event.isCancelable()) event.setCanceled(true); + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/90284a44bbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/90284a44bbd000141b65e2fc7f94332d deleted file mode 100644 index 39f2329..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ed/90284a44bbd000141b65e2fc7f94332d +++ /dev/null @@ -1,112 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ee/d0e63671bcd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ee/d0e63671bcd000141b65e2fc7f94332d deleted file mode 100644 index 349eb74..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ee/d0e63671bcd000141b65e2fc7f94332d +++ /dev/null @@ -1,238 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_LIGHT0); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ef/90de6b157dcf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ef/90de6b157dcf00141de78e4a85bb2469 deleted file mode 100644 index b50b132..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ef/90de6b157dcf00141de78e4a85bb2469 +++ /dev/null @@ -1,221 +0,0 @@ -package darkknight.jewelrycraft.util; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Random; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.oredict.OreDictionary; -import cpw.mods.fml.common.registry.GameData; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.events.EntityEventHandler; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; - -public class JewelrycraftUtil -{ - public static ArrayList objects = new ArrayList(); - public static ArrayList gem = new ArrayList(); - public static ArrayList jewelry = new ArrayList(); - public static ArrayList metal = new ArrayList(); - public static ArrayList ores = new ArrayList(); - public static HashMap oreToIngot = new HashMap(); - public static ArrayList jamcraftPlayers = new ArrayList(); - public static Random rand = new Random(); - - /** - * Adds gems and jewelry to their appropriate list - */ - public static void addStuff() - { - // Jewels - for(int i = 0; i < 16; i++) - gem.add(new ItemStack(ItemList.crystal, 1, i)); - gem.add(new ItemStack(Blocks.redstone_block)); - gem.add(new ItemStack(Blocks.lapis_block)); - gem.add(new ItemStack(Blocks.obsidian)); - gem.add(new ItemStack(Items.diamond)); - gem.add(new ItemStack(Items.emerald)); - gem.add(new ItemStack(Items.ender_pearl)); - gem.add(new ItemStack(Items.nether_star)); - // Jewelry - jewelry.add(new ItemStack(ItemList.ring)); - jewelry.add(new ItemStack(ItemList.necklace)); - jewelry.add(new ItemStack(ItemList.bracelet)); - jewelry.add(new ItemStack(ItemList.earrings)); - for(Object item: GameData.getItemRegistry()){ - ArrayList items = new ArrayList(); - if (((Item)item).getHasSubtypes()) ((Item)item).getSubItems((Item)item, null, items); - else objects.add(new ItemStack((Item)item)); - - if (!items.isEmpty()) objects.addAll(items); - } - } - - /** - * Adds curse points to a player - * - * @param player the player to add the points to - * @param points amount of curse points - */ - public static void addCursePoints(EntityPlayer player, int points) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setInteger("cursePoints", playerInfo.hasKey("cursePoints") ? (playerInfo.getInteger("cursePoints") + points) : points); - playerInfo.setBoolean("playerCursePointsChanged", true); - } - - public static int getCursePoints(EntityPlayer player) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - return playerInfo.getInteger("cursePoints"); - } - - /** - * Adds the UUID's of the jamcrafters in a list - */ - public static void jamcrafters() - { - jamcraftPlayers.add("d3214311-7550-4c9c-a372-d9292c10b8a6"); - jamcraftPlayers.add("a690119f-c4a2-4bd6-a99d-d63679abb328"); - jamcraftPlayers.add("de7c9903-51fa-4a24-88cd-48faf122ca36"); - jamcraftPlayers.add("70aeb298-3a7b-46da-a393-ab10df9359f2"); - jamcraftPlayers.add("6fbe603c-14bf-4085-afdd-abe592c26e7c"); - jamcraftPlayers.add("b0d21306-36bf-4d85-84df-a956d183c45a"); - jamcraftPlayers.add("1733a31f-01f9-4f4d-82aa-7de30ca810d3"); - jamcraftPlayers.add("4833eacf-1d94-49a7-9f89-4cf88d69dcf9"); - jamcraftPlayers.add("718cf671-9084-4e78-b91f-033e80aa11bf"); - jamcraftPlayers.add("bea5e0c4-85c4-454d-a081-e1eaae6895ee"); - jamcraftPlayers.add("7ecf3e2f-fedf-4f7e-8d24-6731d078db4f"); - jamcraftPlayers.add("1b11ad3a-f0ca-4695-a019-2d7e5d83a5fd"); - jamcraftPlayers.add("3ec9ac58-2f1b-4d3f-b4eb-3b875da877ae"); - jamcraftPlayers.add("cf9fa23f-205e-4eed-aba3-9f2848cd6a4d"); - jamcraftPlayers.add("91880caa-b032-48e3-bfe8-c2c7ed31824e"); - jamcraftPlayers.add("8d0b3804-f71c-4219-897b-8c315448ea7c"); - jamcraftPlayers.add("bbb87dbe-690f-4205-bdc5-72ffb8ebc29d"); - } - - /** - * Adds a random amount of modifiers to a list - * - * @param randValue maximum number of modifiers - * @return a list containing the random modifiers - */ - public static ArrayList addRandomModifiers(int randValue) - { - ArrayList list = new ArrayList(); - for(int i = 0; i < 2 + randValue; i++){ - ItemStack item = objects.get(new Random().nextInt(objects.size())); - item.stackSize = 1 + new Random().nextInt(2); - list.add(item); - } - return list; - } - - /** - * Links ores with their appropriate ingot - */ - public static void addMetals() - { - int index = 0; - while (index < OreDictionary.getOreNames().length){ - Iterator i = OreDictionary.getOres(OreDictionary.getOreNames()[index]).iterator(); - while (i.hasNext()){ - ItemStack nextStack = i.next(); - if ((nextStack.getItem().getUnlocalizedName().toLowerCase().contains("ingot") || nextStack.getItem().getUnlocalizedName().toLowerCase().contains("alloy")) && !nextStack.getItem().getUnlocalizedName().toLowerCase().contains("powder") && !nextStack.getItem().getUnlocalizedName().toLowerCase().contains("dust") && !nextStack.getItem().getUnlocalizedName().toLowerCase().contains("block") && !metal.contains(nextStack)){ - metal.add(nextStack); - if (OreDictionary.getOres(OreDictionary.getOreNames()[index].replace("ingot", "ore")) != null){ - ores.addAll(OreDictionary.getOres(OreDictionary.getOreNames()[index].replace("ingot", "ore"))); - Iterator ores = OreDictionary.getOres(OreDictionary.getOreNames()[index].replace("ingot", "ore")).iterator(); - while (ores.hasNext()){ - ItemStack ore = ores.next(); - oreToIngot.put(ore.getItem(), nextStack); - } - } - } - } - index++; - } - } - - /** - * Checks to see if the specified item is a gem - * - * @param item ItemStack containing the item - * @return is the item a gem - */ - public static boolean isGem(ItemStack item) - { - Iterator i = gem.iterator(); - while (i.hasNext()){ - ItemStack temp = i.next(); - if (temp.getItem() == item.getItem() && temp.getItemDamage() == item.getItemDamage()) return true; - } - return false; - } - - /** - * Checks to see if the specified item is a metal - * - * @param item ItemStack containing the item - * @return is the item a metal - */ - public static boolean isMetal(ItemStack item) - { - Iterator i = metal.iterator(); - while (i.hasNext()){ - ItemStack temp = i.next(); - if (temp.getItem() == item.getItem() && temp.getItemDamage() == item.getItemDamage()) return true; - } - return false; - } - - /** - * Checks to see if the specified item is a piece of jewelry - * - * @param item ItemStack containing the item - * @return is the item a piece of jewelry - */ - public static boolean isJewelry(ItemStack item) - { - Iterator i = jewelry.iterator(); - while (i.hasNext()){ - ItemStack temp = i.next(); - if (temp.getItem() == item.getItem() && temp.getItemDamage() == item.getItemDamage()) return true; - } - return false; - } - - /** - * Checks to see if the specified item is an ore - * - * @param item ItemStack containing the item - * @return is the item an ore - */ - public static boolean isOre(ItemStack item) - { - Iterator i = ores.iterator(); - while (i.hasNext()){ - ItemStack temp = i.next(); - if (temp.getItem() == item.getItem() && temp.getItemDamage() == item.getItemDamage()) return true; - } - return false; - } - - /** - * Gets the ingot from the ore - * - * @param ore the ore - * @return the ingot - */ - public static ItemStack getIngotFromOre(Item ore) - { - return oreToIngot.get(ore); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ef/d0c544f1bdd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ef/d0c544f1bdd000141b65e2fc7f94332d deleted file mode 100644 index dd63fd1..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ef/d0c544f1bdd000141b65e2fc7f94332d +++ /dev/null @@ -1,237 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.block.BlockShadowEye; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - if(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockShadowEye) GL11.glTranslatef(0F, 0F, 0.1F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f/208abec412cf00141c41f52413db5e31 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f/208abec412cf00141c41f52413db5e31 deleted file mode 100644 index 8ee0c9b..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f/208abec412cf00141c41f52413db5e31 +++ /dev/null @@ -1,57 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import java.util.ArrayList; -import java.util.Random; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.DamageSource; - -public abstract class ModifierEffects -{ - protected ItemStack modifier; - protected Random rand = new Random(); - protected static ArrayList effects = new ArrayList(); - - /** - * @param modifier - */ - public ModifierEffects(ItemStack modifier) - { - this.modifier = modifier; - effects.add(this); - } - - /** - * @return - */ - public static ArrayList getEffects() - { - return effects; - } - - /** - * @param item - * @param player - * @param jewelry - */ - public abstract void action(ItemStack item, EntityPlayer player, Item jewelry); - /** - * @param item - * @param player - * @param target - * @param jewelry - * @return - */ - public abstract void onEntityAttacked(ItemStack item, EntityPlayer player, Entity target, Item jewelry, float amount); - - /** - * @param item - * @param player - * @param source - * @param jewelry - * @return - */ - public abstract void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount); -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/10a6e789b7d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/10a6e789b7d000141b65e2fc7f94332d deleted file mode 100644 index cd0101c..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/10a6e789b7d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 153, 12, 12); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() - 20, gui.getTop() + 15); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/d0a08c8ed0df00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/d0a08c8ed0df00141dc6c962aec96210 new file mode 100644 index 0000000..6d8b9ef --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/d0a08c8ed0df00141dc6c962aec96210 @@ -0,0 +1,87 @@ +package darkknight.jewelrycraft.effects; + +import net.minecraft.block.BlockOre; +import net.minecraft.client.Minecraft; +import net.minecraft.client.settings.GameSettings.Options; +import net.minecraft.entity.monster.EntityEnderman; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.Vec3; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.biome.BiomeGenBase; +import cpw.mods.fml.relauncher.ReflectionHelper; +import darkknight.jewelrycraft.item.ItemBracelet; +import darkknight.jewelrycraft.item.ItemEarrings; +import darkknight.jewelrycraft.item.ItemNecklace; +import darkknight.jewelrycraft.item.ItemRing; +import darkknight.jewelrycraft.util.JewelryNBT; + +public class EffectEnderEye extends ModifierEffects +{ + private boolean originalVD = false; + private float originalViewDistance; + + public EffectEnderEye() + { + super(new ItemStack(Items.ender_eye)); + } + + @Override + public void action(ItemStack item, EntityPlayer player, Item jewelry) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + if (jewelry instanceof ItemEarrings && exists && !player.worldObj.isRemote){ + for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ + EntityEnderman enderman = (EntityEnderman)e; + ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); + Vec3 vec3 = player.getLook(1.0F).normalize(); + Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); + double d0 = vec31.lengthVector(); + vec31 = vec31.normalize(); + double d1 = vec3.dotProduct(vec31); + if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ + // Positive earrings + if (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0) enderman.setTarget(null); + // Negative earrings + if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2 + JewelryNBT.numberOfModifiers(item) / 4)); + } + } + } + // Positive necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote){ + ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); + if (chunkposition != null){ + Minecraft.getMinecraft().thePlayer.motionX += 0.01D * Math.signum((double)chunkposition.chunkPosX - player.posX) * (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0 ? 1 : -1); + Minecraft.getMinecraft().thePlayer.motionZ += 0.01D * Math.signum((double)chunkposition.chunkPosZ - player.posZ) * (rand.nextInt(JewelryNBT.numberOfModifiers(item)) == 0 ? 1 : -1); + } + } + // Positive bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && player.worldObj.getBiomeGenForCoords((int)player.posX, (int)player.posZ) == BiomeGenBase.sky && (!player.isPotionActive(Potion.moveSpeed) || player.getActivePotionEffect(Potion.moveSpeed).getDuration() < 30)) player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 150 - JewelryNBT.numberOfModifiers(item) * 10, 2 - JewelryNBT.numberOfModifiers(item) / 5)); + // Negative bracelet + if (jewelry instanceof ItemBracelet && exists && !player.worldObj.isRemote && rand.nextInt(520 - JewelryNBT.numberOfModifiers(item) * 20) == 15) player.setPositionAndUpdate(player.posX + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1), player.posY, player.posZ + rand.nextInt(30) * (rand.nextBoolean() ? -1 : 1)); + // Negative ring + if (jewelry instanceof ItemRing && exists) Minecraft.getMinecraft().gameSettings.setOptionFloatValue(Options.RENDER_DISTANCE, 2.1F - JewelryNBT.numberOfModifiers(item) * 0.1F); + // Positive ring + if (jewelry instanceof ItemRing && exists && rand.nextInt(180 + JewelryNBT.numberOfModifiers(item)*20) == 12){ + for(int i = (int)player.posX - 2; i <= (int)player.posX + 2; i++) + for(int j = (int)player.posY - 2; j <= (int)player.posY + 2; j++) + for(int k = (int)player.posZ - 2; k <= (int)player.posZ + 2; k++) + if (player.worldObj.getBlock(i, j, k) instanceof BlockOre) player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.GRAY + "You sense some " + player.worldObj.getBlock(i, j, k).getLocalizedName() + " around you.")); + } + } + + @Override + public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) + { + boolean exists = JewelryNBT.doesModifierExist(item, modifier); + // Negative necklace + if (jewelry instanceof ItemNecklace && exists && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100 + JewelryNBT.numberOfModifiers(item)*30, 1)); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/f0d537e7bdd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/f0d537e7bdd000141b65e2fc7f94332d deleted file mode 100644 index 1f59387..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f0/f0d537e7bdd000141b65e2fc7f94332d +++ /dev/null @@ -1,237 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.block.BlockShadowEye; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - if(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockShadowEye) GL11.glTranslatef(-0.2F, 0F, 0F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/70f21455bdd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/70f21455bdd000141b65e2fc7f94332d deleted file mode 100644 index 1cf2647..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f1/70f21455bdd000141b65e2fc7f94332d +++ /dev/null @@ -1,125 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.shadowEye), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 180); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - - case 5: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_slab, 1, 5), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_slab, 1, 5), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_slab, 1, 5), 0, 0, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 5; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f2/f043f225a4ce00141801ff0972626827 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f2/f043f225a4ce00141801ff0972626827 deleted file mode 100644 index 5e2818b..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f2/f043f225a4ce00141801ff0972626827 +++ /dev/null @@ -1,435 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; -// if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if(entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); -// } - if (entity.motionX == 0D && entity.motionY == 0D && entity.motionZ == 0D && entity.rotationPitch == entity.prevRotationPitch && entity.rotationYaw == entity.prevRotationYaw) entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getInteger(Reference.MODNAME + ":" + "Infamy") > 0) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - // for(Curse curse: Curse.getCurseList()) - // if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if(((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); -// int grade = 1 + player.worldObj.rand.nextInt(2); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if(entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); -// if (!entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/00fc7df4b6d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/00fc7df4b6d000141b65e2fc7f94332d deleted file mode 100644 index 07d0b63..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/00fc7df4b6d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 155, 30, 30); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() - 20, gui.getTop() + 15); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/1004bc969bd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/1004bc969bd000141b65e2fc7f94332d deleted file mode 100644 index 97bba20..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/1004bc969bd000141b65e2fc7f94332d +++ /dev/null @@ -1,44 +0,0 @@ -package darkknight.jewelrycraft.container; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import darkknight.jewelrycraft.client.GuiGuide; -import darkknight.jewelrycraft.item.ItemList; - -public class GuiTabIntroduction extends GuiTab -{ - public GuiTabIntroduction(int id) - { - super("Introduction", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(ItemList.ring); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - String text = ""; - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - text = "Welcome to jewelrycraft!\nThis mod"; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/20259783bbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/20259783bbd000141b65e2fc7f94332d deleted file mode 100644 index f319394..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/20259783bbd000141b65e2fc7f94332d +++ /dev/null @@ -1,114 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 135, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 180, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, -35, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 270, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 225, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*3, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*5, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 180, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, -90, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/20c13d5102de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/20c13d5102de00141043c3025ec60dfc new file mode 100644 index 0000000..bba603a --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/20c13d5102de00141043c3025ec60dfc @@ -0,0 +1,272 @@ +package darkknight.jewelrycraft.tileentity; + +import java.util.ArrayList; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import darkknight.jewelrycraft.block.BlockHandPedestal; +import darkknight.jewelrycraft.block.BlockList; +import darkknight.jewelrycraft.particles.EntityShadowsFX; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class TileEntityShadowEye extends TileEntity +{ + public int opening, timer, t = 20; + public boolean active; + public ArrayList pedestalItems = new ArrayList(); + ResourceLocation particleTexture = new ResourceLocation(Variables.MODID, "textures/particle/shadows.png"); + public EntityPlayer target; + + public TileEntityShadowEye() + { + opening = 1; + timer = 20; + active = false; + } + + /** + * @param nbt + */ + @Override + public void writeToNBT(NBTTagCompound nbt) + { + super.writeToNBT(nbt); + nbt.setInteger("opening", opening); + nbt.setInteger("timer", timer); + nbt.setBoolean("active", active); + } + + /** + * @param nbt + */ + @Override + public void readFromNBT(NBTTagCompound nbt) + { + super.readFromNBT(nbt); + opening = nbt.getInteger("opening"); + timer = nbt.getInteger("timer"); + active = nbt.getBoolean("active"); + } + + /** + * + */ + @Override + public void updateEntity() + { + super.updateEntity(); + boolean valid = isValidStructure(worldObj, xCoord, yCoord, zCoord, blockMetadata); + if (active) timer--; + if (opening == 4 && timer <= 0) active = false; + if (!active && timer <= 0 && opening != 1){ + if (t > 0) t--; + if (t <= 0){ + opening--; + t = 20; + } + } + if (opening == 2 && timer <= 0 && t == 10){ + addData(worldObj, xCoord, yCoord, zCoord); + TileEntityHandPedestal target = (TileEntityHandPedestal)worldObj.getTileEntity(xCoord, yCoord - 3, zCoord); + if (target != null && target.getHeldItemStack() != null) JewelryNBT.addModifiers(target.getHeldItemStack(), pedestalItems); + } + if (active && timer <= 0){ + if (opening < 4){ + opening++; + timer = 20; + } + if (valid && opening == 4) timer = 1000; + else if (!valid){ + active = false; + timer = -1; + } + } + for(Object player1: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(8D, 8D, 8D))) + if (player1 != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player1, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", false); + } + if (active && opening == 4){ + float din = 6F; + int i = Minecraft.getMinecraft().gameSettings.particleSetting; + for(float x = -din; x <= din; x += 0.2F) + for(float z = -din; z <= din; z += 0.2F) + if (x * x + z * z >= din * din - 1 && x * x + z * z <= din * din + 1) Minecraft.getMinecraft().effectRenderer.addEffect(new EntityShadowsFX(worldObj, xCoord + x + 0.5F, yCoord - 0.5F, zCoord + z + 0.5F, 15F, 0.04F - 0.01F * i, particleTexture)); + for(int l = 0; l <= 2 - i; l++) + worldObj.spawnParticle("depthsuspend", xCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), yCoord - 2F + worldObj.rand.nextFloat(), zCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), 0, 0, 0); + EntityPlayer player = worldObj.getClosestPlayer(xCoord, yCoord, zCoord, 6F); + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", true); + } + } + } + + /** + * @param world + * @param x + * @param y + * @param z + * @param metadata + * @return + */ + public boolean isValidStructure(World world, int x, int y, int z, int metadata) + { + if (world.getBlockMetadata(x, y, z) == 0 || world.getBlockMetadata(x, y, z) == 2){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x + 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x + 1, y + 1, z) != 5) return false; + if (world.getBlock(x - 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x - 1, y + 1, z) != 5) return false; + // 2nd Layer + if (world.getBlock(x + 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 2, y, z) != 1) return false; + if (world.getBlock(x + 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 1, y, z) != 4) return false; + if (world.getBlock(x - 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 1, y, z) != 5) return false; + if (world.getBlock(x - 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 2, y, z) != 0) return false; + // 3rd Layer + if (world.getBlock(x + 2, y - 1, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 1, z) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x + 2, y - 2, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 2, z) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x + 2, y - 3, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 3, z) != Blocks.stonebrick) return false; + }else if (world.getBlockMetadata(x, y, z) == 1 || world.getBlockMetadata(x, y, z) == 3){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x, y + 1, z + 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z + 1) != 5) return false; + if (world.getBlock(x, y + 1, z - 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z - 1) != 5) return false; + // 2nd Layer + if (world.getBlock(x, y, z + 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 2) != 3) return false; + if (world.getBlock(x, y, z + 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 1) != 6) return false; + if (world.getBlock(x, y, z - 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 1) != 7) return false; + if (world.getBlock(x, y, z - 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 2) != 2) return false; + // 3rd Layer + if (world.getBlock(x, y - 1, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 1, z - 2) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x, y - 2, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 2, z - 2) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x, y - 3, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 3, z - 2) != Blocks.stonebrick) return false; + } + // 3rd Layer + if (world.getBlock(x - 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x - 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + // 4th Layer + if (world.getBlock(x - 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 2, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z + 4) != Blocks.stonebrick) return false; + // 5th Layer + // Pillars + if (world.getBlock(x - 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 3, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z + 4) != Blocks.stonebrick) return false; + // Pedestals + if (!(world.getBlock(x, y - 3, z) instanceof BlockHandPedestal)) return false; + if (world.getBlock(x - 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z + 2) != 1) return false; + if (world.getBlock(x - 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x - 5, y - 3, z) != 2) return false; + if (world.getBlock(x - 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z - 2) != 3) return false; + if (world.getBlock(x - 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z - 4) != 3) return false; + if (world.getBlock(x, y - 3, z - 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z - 5) != 4) return false; + if (world.getBlock(x + 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z - 4) != 5) return false; + if (world.getBlock(x + 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z - 2) != 5) return false; + if (world.getBlock(x + 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x + 5, y - 3, z) != 6) return false; + if (world.getBlock(x + 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z + 2) != 7) return false; + if (world.getBlock(x + 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z + 4) != 7) return false; + if (world.getBlock(x, y - 3, z + 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z + 5) != 0) return false; + if (world.getBlock(x - 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z + 4) != 1) return false; + return true; + } + + /** + * @param world + * @param x + * @param y + * @param z + */ + public void addData(World world, int x, int y, int z) + { + pedestalItems.clear(); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z - 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z + 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z + 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z + 4)); + } + + /** + * @param pedestal + */ + public void addPedestalInfo(TileEntityHandPedestal pedestal) + { + ItemStack heldItemStack; + if (pedestal != null && (heldItemStack = pedestal.getHeldItemStack()) != null){ + if (pedestalItems.isEmpty()) pedestalItems.add(heldItemStack.copy()); + else{ + boolean hasItem = false; + int index = 0; + for(int ind = 0; ind < pedestalItems.size() && !hasItem; ind++) + if (heldItemStack.getItem().equals(pedestalItems.get(ind).getItem()) && heldItemStack.getItemDamage() == pedestalItems.get(ind).getItemDamage()){ + index = ind; + hasItem = true; + if (heldItemStack.hasTagCompound() && pedestalItems.get(ind).hasTagCompound() && !heldItemStack.getTagCompound().equals(pedestalItems.get(ind).getTagCompound())) hasItem = false; + } + if (!hasItem) pedestalItems.add(heldItemStack.copy()); + else{ + ItemStack object = pedestalItems.get(index).copy(); + object.stackSize++; + pedestalItems.set(index, object); + } + } + pedestal.removeHeldItemStack(); + pedestal.openHand(); + } + } + + /** + * @return + */ + @Override + public Packet getDescriptionPacket() + { + NBTTagCompound nbttagcompound = new NBTTagCompound(); + writeToNBT(nbttagcompound); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 1, nbttagcompound); + } + + /** + * @param net + * @param packet + */ + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet) + { + readFromNBT(packet.func_148857_g()); + worldObj.func_147479_m(xCoord, yCoord, zCoord); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/e09bcee7b6d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/e09bcee7b6d000141b65e2fc7f94332d deleted file mode 100644 index 72b6cde..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f3/e09bcee7b6d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 150, 150, 30, 30); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() - 20, gui.getTop() + 15); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f4/40b7090927de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f4/40b7090927de00141043c3025ec60dfc new file mode 100644 index 0000000..bde143e --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f4/40b7090927de00141043c3025ec60dfc @@ -0,0 +1,105 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 10 + (size + 6) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ + for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size); + if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f5/20a6758b0ade00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f5/20a6758b0ade00141043c3025ec60dfc new file mode 100644 index 0000000..70f9c6b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f5/20a6758b0ade00141043c3025ec60dfc @@ -0,0 +1,185 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + System.out.println((int)f3); + if ((int)f3 != -1){ + int ingotColor = Math.abs((int)f3); + int red = (ingotColor >> 24) & 0xff; + int green = (ingotColor >> 8) & 0xff; + int blue = ingotColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f5/9037e8d8f2cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f5/9037e8d8f2cf0014170de422db399e8d deleted file mode 100644 index 1819aa0..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f5/9037e8d8f2cf0014170de422db399e8d +++ /dev/null @@ -1,64 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null && chunkposition.chunkPosX != (int)player.posX && chunkposition.chunkPosZ != (int)player.posZ){ - Minecraft.getMinecraft().thePlayer.motionX -= 0.01D*Math.signum((double)chunkposition.chunkPosX); - Minecraft.getMinecraft().thePlayer.motionZ -= 0.01D*Math.signum((double)chunkposition.chunkPosZ); - System.out.println(chunkposition.chunkPosX + " " + chunkposition.chunkPosZ); -// player.addChatMessage(new ChatComponentText("You hear a faint whisper telling you: \"You are getting closer, just " + (int)player.getDistance((double)chunkposition.chunkPosX, (double)chunkposition.chunkPosY, (double)chunkposition.chunkPosZ) + " more blocks to go.\"")); - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); -// if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f5/c04a3dbcbcd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f5/c04a3dbcbcd000141b65e2fc7f94332d deleted file mode 100644 index ccb4bea..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f5/c04a3dbcbcd000141b65e2fc7f94332d +++ /dev/null @@ -1,246 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_LIGHT0); - GL11.glEnable(GL11.GL_LIGHT1); - } - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - GL11.glDisable(GL11.GL_LIGHT1); - GL11.glDisable(GL11.GL_LIGHT0); - GL11.glDisable(GL11.GL_LIGHTING); - RenderHelper.enableStandardItemLighting(); - } - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f7/50e88c160ade00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f7/50e88c160ade00141043c3025ec60dfc new file mode 100644 index 0000000..cf49b68 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f7/50e88c160ade00141043c3025ec60dfc @@ -0,0 +1,186 @@ +package darkknight.jewelrycraft.model; + +import java.awt.Color; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import org.lwjgl.opengl.GL11; + +/** + * ModelBiped - Either Mojang or a mod author Created using Tabula 4.1.1 + */ +public class ModelBracelet extends ModelBase +{ + public ModelRenderer metal1; + public ModelRenderer metal2; + public ModelRenderer metal3; + public ModelRenderer metal4; + public ModelRenderer gem1; + public ModelRenderer gem2; + public ModelRenderer gem3; + public ModelRenderer gem4; + public ModelRenderer gem5; + public ModelRenderer gem6; + public ModelRenderer gem7; + public ModelRenderer gem8; + public ModelRenderer gem9; + + public ModelBracelet() + { + this.textureWidth = 16; + this.textureHeight = 16; + this.metal4 = new ModelRenderer(this, 0, 8); + this.metal4.setRotationPoint(-5.0F, 12.0F, -2.0F); + this.metal4.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem4 = new ModelRenderer(this, 0, 0); + this.gem4.setRotationPoint(-3.0F, 12.8F, -3.5F); + this.gem4.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.setRotateAngle(gem4, 0.0F, 0.008901179185171082F, 0.0F); + this.gem3 = new ModelRenderer(this, 0, 0); + this.gem3.setRotationPoint(-4.8F, 12.2F, -3.5F); + this.gem3.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem2 = new ModelRenderer(this, 0, 0); + this.gem2.setRotationPoint(-1.5F, 12.8F, -3.5F); + this.gem2.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem1 = new ModelRenderer(this, 0, 0); + this.gem1.setRotationPoint(0.3F, 12.2F, -3.5F); + this.gem1.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.metal1 = new ModelRenderer(this, 0, 8); + this.metal1.setRotationPoint(-5.0F, 12.0F, -3.0F); + this.metal1.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem6 = new ModelRenderer(this, 0, 0); + this.gem6.setRotationPoint(-4.3F, 12.7F, -3.5F); + this.gem6.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.gem7 = new ModelRenderer(this, 0, 0); + this.gem7.setRotationPoint(-3.8F, 12.7F, -3.5F); + this.gem7.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + this.gem8 = new ModelRenderer(this, 0, 0); + this.gem8.setRotationPoint(-0.2F, 12.7F, -3.5F); + this.gem8.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1, 0.0F); + this.metal2 = new ModelRenderer(this, 0, 8); + this.metal2.setRotationPoint(-5.0F, 12.0F, 2.0F); + this.metal2.addBox(0.0F, 0.0F, 0.0F, 6, 2, 1, 0.0F); + this.gem5 = new ModelRenderer(this, 0, 0); + this.gem5.setRotationPoint(-2.5F, 12.3F, -3.5F); + this.gem5.addBox(0.0F, 0.0F, 0.0F, 2, 3, 1, 0.0F); + this.metal3 = new ModelRenderer(this, 0, 8); + this.metal3.setRotationPoint(0.0F, 12.0F, -2.0F); + this.metal3.addBox(0.0F, 0.0F, 0.0F, 1, 2, 4, 0.0F); + this.gem9 = new ModelRenderer(this, 0, 0); + this.gem9.setRotationPoint(-0.7F, 12.7F, -3.5F); + this.gem9.addBox(0.0F, 0.0F, 0.0F, 1, 1, 1, 0.0F); + } + + @Override + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + GL11.glDisable(GL11.GL_LIGHTING); + System.out.println((int)f3); + if ((int)f3 != -1){ + int ingotColor = Math.abs((int)f3); + int red = ingotColor >> 16 & 0xff; + int green = ingotColor >> 8 & 0xff; + int blue = ingotColor & 0xff; + float[] hsb = Color.RGBtoHSB(red, green, blue, null); + GL11.glColor3f(hsb[0], hsb[1], hsb[2]); + this.metal1.render(f5); + this.metal2.render(f5); + this.metal3.render(f5); + this.metal4.render(f5); + } + if ((int)f4 != -1){ + int gemColor = (int)f4; + int red = gemColor >> 16 & 0xff; + int green = gemColor >> 8 & 0xff; + int blue = gemColor & 0xff; + GL11.glColor3f((float)red / 255, (float)green / 255, (float)blue / 255); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE_MINUS_DST_COLOR); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem4.offsetX, this.gem4.offsetY, this.gem4.offsetZ); + GL11.glTranslatef(this.gem4.rotationPointX * f5, this.gem4.rotationPointY * f5, this.gem4.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem4.offsetX, -this.gem4.offsetY, -this.gem4.offsetZ); + GL11.glTranslatef(-this.gem4.rotationPointX * f5, -this.gem4.rotationPointY * f5, -this.gem4.rotationPointZ * f5); + this.gem4.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem3.offsetX, this.gem3.offsetY, this.gem3.offsetZ); + GL11.glTranslatef(this.gem3.rotationPointX * f5, this.gem3.rotationPointY * f5, this.gem3.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem3.offsetX, -this.gem3.offsetY, -this.gem3.offsetZ); + GL11.glTranslatef(-this.gem3.rotationPointX * f5, -this.gem3.rotationPointY * f5, -this.gem3.rotationPointZ * f5); + this.gem3.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem2.offsetX, this.gem2.offsetY, this.gem2.offsetZ); + GL11.glTranslatef(this.gem2.rotationPointX * f5, this.gem2.rotationPointY * f5, this.gem2.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem2.offsetX, -this.gem2.offsetY, -this.gem2.offsetZ); + GL11.glTranslatef(-this.gem2.rotationPointX * f5, -this.gem2.rotationPointY * f5, -this.gem2.rotationPointZ * f5); + this.gem2.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem1.offsetX, this.gem1.offsetY, this.gem1.offsetZ); + GL11.glTranslatef(this.gem1.rotationPointX * f5, this.gem1.rotationPointY * f5, this.gem1.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem1.offsetX, -this.gem1.offsetY, -this.gem1.offsetZ); + GL11.glTranslatef(-this.gem1.rotationPointX * f5, -this.gem1.rotationPointY * f5, -this.gem1.rotationPointZ * f5); + this.gem1.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem6.offsetX, this.gem6.offsetY, this.gem6.offsetZ); + GL11.glTranslatef(this.gem6.rotationPointX * f5, this.gem6.rotationPointY * f5, this.gem6.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem6.offsetX, -this.gem6.offsetY, -this.gem6.offsetZ); + GL11.glTranslatef(-this.gem6.rotationPointX * f5, -this.gem6.rotationPointY * f5, -this.gem6.rotationPointZ * f5); + this.gem6.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem7.offsetX, this.gem7.offsetY, this.gem7.offsetZ); + GL11.glTranslatef(this.gem7.rotationPointX * f5, this.gem7.rotationPointY * f5, this.gem7.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem7.offsetX, -this.gem7.offsetY, -this.gem7.offsetZ); + GL11.glTranslatef(-this.gem7.rotationPointX * f5, -this.gem7.rotationPointY * f5, -this.gem7.rotationPointZ * f5); + this.gem7.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem8.offsetX, this.gem8.offsetY, this.gem8.offsetZ); + GL11.glTranslatef(this.gem8.rotationPointX * f5, this.gem8.rotationPointY * f5, this.gem8.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem8.offsetX, -this.gem8.offsetY, -this.gem8.offsetZ); + GL11.glTranslatef(-this.gem8.rotationPointX * f5, -this.gem8.rotationPointY * f5, -this.gem8.rotationPointZ * f5); + this.gem8.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem5.offsetX, this.gem5.offsetY, this.gem5.offsetZ); + GL11.glTranslatef(this.gem5.rotationPointX * f5, this.gem5.rotationPointY * f5, this.gem5.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem5.offsetX, -this.gem5.offsetY, -this.gem5.offsetZ); + GL11.glTranslatef(-this.gem5.rotationPointX * f5, -this.gem5.rotationPointY * f5, -this.gem5.rotationPointZ * f5); + this.gem5.render(f5); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslatef(this.gem9.offsetX, this.gem9.offsetY, this.gem9.offsetZ); + GL11.glTranslatef(this.gem9.rotationPointX * f5, this.gem9.rotationPointY * f5, this.gem9.rotationPointZ * f5); + GL11.glScaled(0.5D, 0.5D, 0.5D); + GL11.glTranslatef(-this.gem9.offsetX, -this.gem9.offsetY, -this.gem9.offsetZ); + GL11.glTranslatef(-this.gem9.rotationPointX * f5, -this.gem9.rotationPointY * f5, -this.gem9.rotationPointZ * f5); + this.gem9.render(f5); + GL11.glPopMatrix(); + GL11.glDisable(GL11.GL_BLEND); + } + GL11.glEnable(GL11.GL_LIGHTING); + } + + /** + * This is a helper function from Tabula to set the rotation of model parts + */ + public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) + { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f7/80d09401b7d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f7/80d09401b7d000141b65e2fc7f94332d deleted file mode 100644 index 7534d78..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f7/80d09401b7d000141b65e2fc7f94332d +++ /dev/null @@ -1,197 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 19, 148, 153, 12, 30); - if(item.getItem() != null){ - name.add(item.getDisplayName()); - if (mouseX >= x + 10 && mouseX <= x + 25 && mouseY >= y + 20 && mouseY <= y + 30) gui.drawHoverString(name, gui.getLeft() - 20, gui.getTop() + 15); - name.removeAll(name); - } - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - if(item.getItem() != null) gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/10660ab09ad000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/10660ab09ad000141b65e2fc7f94332d deleted file mode 100644 index ac47a51..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/10660ab09ad000141b65e2fc7f94332d +++ /dev/null @@ -1,74 +0,0 @@ -package darkknight.jewelrycraft.container; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabModifiers extends GuiTab -{ - int maxPages; - public GuiTabModifiers(int id) - { - super("Modifiers", id); - } - - /** - * @return - */ - @Override - public ItemStack getIcon() - { - return new ItemStack(Items.blaze_powder); - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - String text = ""; - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - text = "Although you can add anything as a modifier, only some objects have an effect. In this tab you can find all of modifiers that have a use and what they do, in the form of a story/riddle/poem. However different jewellery have different effects for the same modifier."; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - case 2: - text = "The ancient ones talked about a rising fire in your heart. Fret do not, for flames do not burn, but water might sting a turn. Watch your step, do not be cocky, for its protection is a bit sloppy."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), new ItemStack(Items.blaze_powder), text, 40f); - break; - case 3: - text = "Light and swift as a feather can be good all together. Enemies miss and get confused, this power can be abused. Against an arrow you can't compare, so move around, don't just stare. Fire is your enemy and weakness is the penalty."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), new ItemStack(Items.feather), text, 40f); - break; - case 4: - text = "Endermen may tolerate you, end portals are near too, you may find ore that is true. But be careful, for the power may make you dizzy, blind you if you're a sissy, worsen your vision if you're unaware and shift positions everywhere."; - Page.addImageTextPage(gui, gui.getLeft() + xPos, gui.getTop(), new ItemStack(Items.ender_eye), text, 40f); - break; - } - } - - /** - * @return - */ - @Override - public int getMaxPages() - { - return 4; - } - - /** - * @param gui - * @param x - * @param y - * @param page - */ - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/9082ae46b4d000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/9082ae46b4d000141b65e2fc7f94332d deleted file mode 100644 index f0a34e0..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/9082ae46b4d000141b65e2fc7f94332d +++ /dev/null @@ -1,195 +0,0 @@ -package darkknight.jewelrycraft.container; - -import java.util.ArrayList; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; -import darkknight.jewelrycraft.client.GuiGuide; - -public class Page -{ - static ResourceLocation pageFlipped = new ResourceLocation("jewelrycraft", "textures/gui/guidePageFlip.png"); - - /** - * @param gui - * @param x - * @param y - * @param isSmall - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addCraftingRecipeTextPage(GuiGuide gui, int x, int y, boolean isSmall, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[0].getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(items[0].getDisplayName()) / 2) - 10, y - 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - ArrayList name = new ArrayList(); - if (isSmall){ - gui.drawTexturedModalRect(x, y + 10, 145, 54, 111, 46); - gui.renderItem(items[0], x + 89, y + 22 + 10, 30f, rotate); - for(int i = 1; i <= 4; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 2 * 22; - int posY = y + 26 + (i - 1) / 2 * 22; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 16 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 14); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 25); - }else{ - gui.drawTexturedModalRect(x, y + 12, 145, 0, 111, 54); - gui.renderItem(items[0], x + 91, y + 28 + 10, 30f, rotate); - for(int i = 1; i <= 9; i++) - if (items.length > i && items[i] != null){ - int posX = x + 8 + (i - 1) % 3 * 19; - int posY = y + 22 + (i - 1) / 3 * 17; - gui.renderItem(items[i], posX, posY, 30f, rotate); - name.add(items[i].getDisplayName()); - if (mouseX >= posX - 8 && mouseX <= posX + 8 && mouseY >= posY - 10 && mouseY <= posY) gui.drawHoverString(name, posX - 20, posY - 12); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - } - drawText(gui, text, x, y + 32); - GL11.glColor4f(1, 1, 1, 1); - } - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - * @param mouseX - * @param mouseY - * @param items - */ - public static void addSmeltingRecipeTextPage(GuiGuide gui, int x, int y, String text, int mouseX, int mouseY, boolean rotate, ItemStack ... items) - { - ArrayList name = new ArrayList(); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + items[1].getDisplayName(), x + 30 - items[0].getDisplayName().length() / 2, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x, y + 10, 145, 100, 111, 52); - gui.renderItem(items[0], x + 13, y + 20 + 10, 35f, rotate); - name.add(items[0].getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - gui.renderItem(items[1], x + 77, y + 28 + 10, 35f, rotate); - drawText(gui, text, x, y + 30); - GL11.glColor4f(1, 1, 1, 1); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + (int)size/5, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13, y + 18, size, rotate); - drawText(gui, text, x - 2, y - (int)(250 / size)); - GL11.glDisable(GL11.GL_BLEND); - } - - public static void addSlotItem(GuiGuide gui, int x, int y, int mouseX, int mouseY, ItemStack item) - { - ArrayList name = new ArrayList(); - GL11.glColor4f(1, 1, 1, 1); - Minecraft.getMinecraft().getTextureManager().bindTexture(pageFlipped); - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - gui.drawTexturedModalRect(x + 9, y + 21, 145, 150, 35, 30); - name.add(item.getDisplayName()); - if (mouseX >= x && mouseX <= x + 20 && mouseY >= y + 20 && mouseY <= y + 20 + 16) gui.drawHoverString(name, x, y + 20); - name.removeAll(name); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 20, y + 18 + 10, 40f, false); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param item - * @param text - * @param size - * @param txtX - * @param txtY - * @param showName - * @param imgX - * @param imgY - */ - public static void addImageTextPage(GuiGuide gui, int x, int y, ItemStack item, String text, float size, int txtX, int txtY, boolean showName, int imgX, int imgY, boolean rotate) - { - y += 5; - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - if (showName) gui.getFont().drawString(EnumChatFormatting.DARK_BLUE + "\u00a7n" + item.getDisplayName(), x + Math.abs(70 - gui.getFont().getStringWidth(item.getDisplayName()) / 2) - 10, y + 2, 0); - GL11.glColor4f(1, 1, 1, 1); - gui.renderItem(item, x + 13 + imgX, y + 18 + imgY, size, rotate); - drawText(gui, text, x + txtX, y + txtY); - GL11.glDisable(GL11.GL_BLEND); - } - - /** - * @param gui - * @param x - * @param y - * @param text - */ - public static void addTextPage(GuiGuide gui, int x, int y, String text) - { - y -= 25; - drawText(gui, text, x, y); - GL11.glColor4f(1, 1, 1, 1); - } - - /** - * @param gui - * @param text - * @param x - * @param y - */ - public static void drawText(GuiGuide gui, String text, int x, int y) - { - String[] s = text.split(" "); - String displayText = ""; - ArrayList textLines = new ArrayList(); - for(String element: s) - if ((displayText + element + " ").length() <= 24) displayText += element + " "; - else{ - textLines.add(displayText.trim()); - displayText = element + " "; - } - textLines.add(displayText.trim()); - for(int i = 0; i < textLines.size(); i++) - gui.getFont().drawString(textLines.get(i), x, y + 30 + i * 12, 0); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/b0b6ee38c4df00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/b0b6ee38c4df00141dc6c962aec96210 new file mode 100644 index 0000000..906a5b1 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/b0b6ee38c4df00141dc6c962aec96210 @@ -0,0 +1,190 @@ +/* + * Mod made by DarkKnight during the Modjam 3 + * It's an awesome mod + * I love me! :D + */ +package darkknight.jewelrycraft; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Logger; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.gen.structure.MapGenStructureIO; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.oredict.OreDictionary; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.Mod; +import cpw.mods.fml.common.Mod.EventHandler; +import cpw.mods.fml.common.Mod.Instance; +import cpw.mods.fml.common.ModMetadata; +import cpw.mods.fml.common.SidedProxy; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import cpw.mods.fml.common.event.FMLServerStartingEvent; +import cpw.mods.fml.common.network.NetworkRegistry; +import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper; +import cpw.mods.fml.common.registry.EntityRegistry; +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.common.registry.VillagerRegistry; +import cpw.mods.fml.relauncher.Side; +import darkknight.jewelrycraft.block.BlockList; +import darkknight.jewelrycraft.client.gui.GuiHandler; +import darkknight.jewelrycraft.commands.JewelrycraftCommands; +import darkknight.jewelrycraft.config.ConfigHandler; +import darkknight.jewelrycraft.curses.CurseList; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.effects.EffectsList; +import darkknight.jewelrycraft.entities.EntityHalfHeart; +import darkknight.jewelrycraft.entities.EntityHeart; +import darkknight.jewelrycraft.events.BucketHandler; +import darkknight.jewelrycraft.events.EntityEventHandler; +import darkknight.jewelrycraft.events.KeyBindings; +import darkknight.jewelrycraft.item.ItemList; +import darkknight.jewelrycraft.network.PacketClearColorCache; +import darkknight.jewelrycraft.network.PacketKeyPressEvent; +import darkknight.jewelrycraft.network.PacketRequestLiquidData; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.network.PacketRequestSetSlot; +import darkknight.jewelrycraft.network.PacketSendCurseStats; +import darkknight.jewelrycraft.network.PacketSendLiquidData; +import darkknight.jewelrycraft.network.PacketSendPlayerInfo; +import darkknight.jewelrycraft.proxy.CommonProxy; +import darkknight.jewelrycraft.recipes.CraftingRecipes; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.Variables; +import darkknight.jewelrycraft.worldGen.Generation; +import darkknight.jewelrycraft.worldGen.village.ComponentJewelry; +import darkknight.jewelrycraft.worldGen.village.JCTrades; +import darkknight.jewelrycraft.worldGen.village.VillageJewelryHandler; + +@Mod (modid = Variables.MODID, name = Variables.MODNAME, version = Variables.VERSION) +public class JewelrycraftMod +{ + @Instance (Variables.MODID) + public static JewelrycraftMod instance; + @SidedProxy (clientSide = "darkknight.jewelrycraft.proxy.ClientProxy", serverSide = "darkknight.jewelrycraft.proxy.CommonProxy") + public static CommonProxy proxy; + public static final Logger logger = Logger.getLogger("Jewelrycraft"); + public static File dir; + public static CreativeTabs jewelrycraft = new CreativeTabs(Variables.MODID){ + @Override + public Item getTabIconItem() + { + return Item.getItemFromBlock(BlockList.jewelCraftingTable); + } + }; + public static CreativeTabs liquids = new CreativeTabLiquids("Liquids"); + public static NBTTagCompound saveData = new NBTTagCompound(); + public static NBTTagCompound clientData = new NBTTagCompound(); + public static File liquidsConf; + public static SimpleNetworkWrapper netWrapper; + public static boolean fancyRender; + + /** + * Pre initialization of mod stuff. + * + * @param e FMLPreInitializationEvent + * @throws IOException Signals that an I/O exception has occurred. + */ + @EventHandler + public void preInit(FMLPreInitializationEvent e) throws IOException + { + ConfigHandler.preInit(e); + BlockList.preInit(e); + ItemList.preInit(e); + CraftingRecipes.preInit(e); + CurseList.preInit(e); + OreDictionary.registerOre("ingotShadow", new ItemStack(ItemList.shadowIngot)); + OreDictionary.registerOre("oreShadow", new ItemStack(BlockList.shadowOre)); + VillagerRegistry.instance().registerVillagerId(3000); + VillagerRegistry.instance().registerVillageTradeHandler(3000, new JCTrades()); + VillagerRegistry.instance().registerVillageCreationHandler(new VillageJewelryHandler()); + try{ + MapGenStructureIO.func_143031_a(ComponentJewelry.class, Variables.MODID + ":Jewelry"); + } + catch(Throwable e2){ + logger.severe("Error registering Jewelrycraft Structures with Vanilla Minecraft: this is expected in versions earlier than 1.7.10"); + } + MinecraftForge.EVENT_BUS.register(new EntityEventHandler()); + MinecraftForge.EVENT_BUS.register(BucketHandler.INSTANCE); + BucketHandler.INSTANCE.buckets.put(BlockList.moltenMetal, ItemList.bucket); + + ModMetadata metadata = e.getModMetadata(); + List authorList = new ArrayList(); + + authorList.add("OnyxDarkKnight"); + authorList.add("bspkrs"); + authorList.add("domi1819"); + + dir = e.getModConfigurationDirectory(); + proxy.preInit(); + netWrapper = NetworkRegistry.INSTANCE.newSimpleChannel(Variables.MODID); + netWrapper.registerMessage(PacketRequestLiquidData.class, PacketRequestLiquidData.class, 0, Side.SERVER); + netWrapper.registerMessage(PacketSendLiquidData.class, PacketSendLiquidData.class, 1, Side.CLIENT); + netWrapper.registerMessage(PacketClearColorCache.class, PacketClearColorCache.class, 2, Side.CLIENT); + netWrapper.registerMessage(PacketKeyPressEvent.class, PacketKeyPressEvent.class, 3, Side.SERVER); + netWrapper.registerMessage(PacketRequestPlayerInfo.class, PacketRequestPlayerInfo.class, 4, Side.SERVER); + netWrapper.registerMessage(PacketSendPlayerInfo.class, PacketSendPlayerInfo.class, 5, Side.CLIENT); + netWrapper.registerMessage(PacketSendCurseStats.class, PacketSendCurseStats.class, 6, Side.CLIENT); + netWrapper.registerMessage(PacketRequestSetSlot.class, PacketRequestSetSlot.class, 7, Side.SERVER); + + metadata.autogenerated = false; + metadata.authorList = authorList; + metadata.url = "https://github.com/sor1n/Jewelrycraft"; + + createEntity(EntityHeart.class, Variables.MODID + ".Heart", 0x000000, 0xFF0000, false); + createEntity(EntityHalfHeart.class, Variables.MODID + ".Half-Heart", 0x000000, 0xFF0000, false); + +// EntityRegistry.addSpawn(EntityMob.class, 5, 2, 3, EnumCreatureType.creature, BiomeGenBase.forest, BiomeGenBase.forestHills, BiomeGenBase.birchForest, BiomeGenBase.birchForestHills, BiomeGenBase.plains, BiomeGenBase.beach, BiomeGenBase.coldBeach, BiomeGenBase.frozenRiver); + } + + public void createEntity(Class entity, String entityName, int solidColor, int spotColor, boolean hasSpawnEgg) + { + int randomID = EntityRegistry.findGlobalUniqueEntityId(); + if(hasSpawnEgg) EntityRegistry.registerGlobalEntityID(entity, entityName, randomID, solidColor, spotColor); + else EntityRegistry.registerGlobalEntityID(entity, entityName, randomID); + EntityRegistry.registerModEntity(entity, entityName, randomID, this, 40, 3, true); + } + + /** + * Initializes the world generation and key bindings. + * + * @param e FMLInitializationEvent + */ + @EventHandler + public void init(FMLInitializationEvent e) + { + GameRegistry.registerWorldGenerator(new Generation(), 0); + if (FMLCommonHandler.instance().getSide() == Side.CLIENT) FMLCommonHandler.instance().bus().register(new KeyBindings()); + new GuiHandler(); + } + + /** + * Post initialization of metals, modifiers and others. + * + * @param e FMLPostInitializationEvent + */ + @EventHandler + public void postInit(FMLPostInitializationEvent e) + { + JewelrycraftUtil.addMetals(); + JewelrycraftUtil.jamcrafters(); + EffectsList.postInit(e); + DamageSourceList.postInit(e); + proxy.postInit(); + } + + @Mod.EventHandler + public void serverLoad(FMLServerStartingEvent event) + { + event.registerServerCommand(new JewelrycraftCommands()); + } + +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/f00bc4107ecf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/f00bc4107ecf00141de78e4a85bb2469 deleted file mode 100644 index 623aca8..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f8/f00bc4107ecf00141de78e4a85bb2469 +++ /dev/null @@ -1,81 +0,0 @@ -package darkknight.jewelrycraft.client; - -import net.minecraft.client.Minecraft; -import net.minecraft.item.Item; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.MinecraftForgeClient; -import net.minecraftforge.common.MinecraftForge; -import cpw.mods.fml.client.registry.ClientRegistry; -import cpw.mods.fml.client.registry.RenderingRegistry; -import cpw.mods.fml.common.registry.VillagerRegistry; -import darkknight.jewelrycraft.CommonProxy; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.entities.renders.HeartRender; -import darkknight.jewelrycraft.events.PlayerRenderHandler; -import darkknight.jewelrycraft.events.ScreenHandler; -import darkknight.jewelrycraft.model.ModelDisplayer; -import darkknight.jewelrycraft.model.ModelHalfHeart; -import darkknight.jewelrycraft.model.ModelHandPedestal; -import darkknight.jewelrycraft.model.ModelHeart; -import darkknight.jewelrycraft.model.ModelJewlersCraftingBench; -import darkknight.jewelrycraft.model.ModelMolder; -import darkknight.jewelrycraft.model.ModelShadowEye; -import darkknight.jewelrycraft.model.ModelShadowHand; -import darkknight.jewelrycraft.model.ModelSmelter; -import darkknight.jewelrycraft.tileentity.TileEntityDisplayer; -import darkknight.jewelrycraft.tileentity.TileEntityHandPedestal; -import darkknight.jewelrycraft.tileentity.TileEntityJewelrsCraftingTable; -import darkknight.jewelrycraft.tileentity.TileEntityMolder; -import darkknight.jewelrycraft.tileentity.TileEntityShadowEye; -import darkknight.jewelrycraft.tileentity.TileEntityShadowHand; -import darkknight.jewelrycraft.tileentity.TileEntitySmelter; -import darkknight.jewelrycraft.tileentity.renders.ItemRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityDisplayerRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityHandPedestalRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityJewelrsCraftingTableRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityMolderRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityShadowEyeRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntityShadowHandRender; -import darkknight.jewelrycraft.tileentity.renders.TileEntitySmelterRender; -import darkknight.jewelrycraft.util.JewelrycraftUtil; - -public class ClientProxy extends CommonProxy -{ - @Override - public void registerRenderers() - { - ResourceLocation pedestalResourceLocation = new ResourceLocation("jewelrycraft", "textures/tileentities/BricksPedestal.png"); - TileEntityHandPedestalRender pedestalRender = new TileEntityHandPedestalRender(new ModelHandPedestal(pedestalResourceLocation), pedestalResourceLocation); - ResourceLocation shadowResourceLocation = new ResourceLocation("jewelrycraft", "textures/tileentities/ShadowHand.png"); - TileEntityShadowHandRender shadowHandRender = new TileEntityShadowHandRender(new ModelShadowHand(shadowResourceLocation), shadowResourceLocation); - - ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySmelter.class, new TileEntitySmelterRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMolder.class, new TileEntityMolderRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityJewelrsCraftingTable.class, new TileEntityJewelrsCraftingTableRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDisplayer.class, new TileEntityDisplayerRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityShadowEye.class, new TileEntityShadowEyeRender()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHandPedestal.class, pedestalRender); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityShadowHand.class, shadowHandRender); - - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.displayer), new ItemRender(new TileEntityDisplayerRender(), new TileEntityDisplayer(), new ModelDisplayer())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.jewelCraftingTable), new ItemRender(new TileEntityJewelrsCraftingTableRender(), new TileEntityJewelrsCraftingTable(), new ModelJewlersCraftingBench())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.smelter), new ItemRender(new TileEntitySmelterRender(), new TileEntitySmelter(), new ModelSmelter())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.molder), new ItemRender(new TileEntityMolderRender(), new TileEntityMolder(), new ModelMolder())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.shadowEye), new ItemRender(new TileEntityShadowEyeRender(), new TileEntityShadowEye(), new ModelShadowEye())); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.handPedestal), new ItemRender(pedestalRender, new TileEntityHandPedestal(), new ModelHandPedestal(pedestalResourceLocation))); - MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.shadowHand), new ItemRender(shadowHandRender, new TileEntityShadowHand(), new ModelShadowHand(shadowResourceLocation))); - VillagerRegistry.instance().registerVillagerSkin(3000, new ResourceLocation("jewelrycraft", "textures/entities/jeweler.png")); - - RenderingRegistry.registerEntityRenderingHandler(EntityHeart.class, new HeartRender(new ModelHeart(), 0.25F)); - RenderingRegistry.registerEntityRenderingHandler(EntityHalfHeart.class, new HeartRender(new ModelHalfHeart(), 0.25F)); - - TabRegistry.registerTab(new InventoryTabVanilla()); - TabRegistry.registerTab(new TabJewelry()); - MinecraftForge.EVENT_BUS.register(new TabRegistry()); - MinecraftForge.EVENT_BUS.register(new PlayerRenderHandler()); - ResourceLocation jeweleryTexture = new ResourceLocation("jewelrycraft", "textures/gui/curses.png"); - MinecraftForge.EVENT_BUS.register(new ScreenHandler(Minecraft.getMinecraft(), jeweleryTexture)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f9/10304e6cbcd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f9/10304e6cbcd000141b65e2fc7f94332d deleted file mode 100644 index 9e5a035..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f9/10304e6cbcd000141b65e2fc7f94332d +++ /dev/null @@ -1,236 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f9/30327f097dcf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f9/30327f097dcf00141de78e4a85bb2469 deleted file mode 100644 index a7e7f48..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f9/30327f097dcf00141de78e4a85bb2469 +++ /dev/null @@ -1,222 +0,0 @@ -package darkknight.jewelrycraft.util; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Random; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.oredict.OreDictionary; -import cpw.mods.fml.common.registry.GameData; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.events.EntityEventHandler; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; - -public class JewelrycraftUtil -{ - public static ArrayList objects = new ArrayList(); - public static ArrayList gem = new ArrayList(); - public static ArrayList jewelry = new ArrayList(); - public static ArrayList metal = new ArrayList(); - public static ArrayList ores = new ArrayList(); - public static HashMap oreToIngot = new HashMap(); - public static ArrayList jamcraftPlayers = new ArrayList(); - public static Random rand = new Random(); - - /** - * Adds gems and jewelry to their appropriate list - */ - public static void addStuff() - { - // Jewels - for(int i = 0; i < 16; i++) - gem.add(new ItemStack(ItemList.crystal, 1, i)); - gem.add(new ItemStack(Blocks.redstone_block)); - gem.add(new ItemStack(Blocks.lapis_block)); - gem.add(new ItemStack(Blocks.obsidian)); - gem.add(new ItemStack(Items.diamond)); - gem.add(new ItemStack(Items.emerald)); - gem.add(new ItemStack(Items.ender_pearl)); - gem.add(new ItemStack(Items.nether_star)); - // Jewelry - jewelry.add(new ItemStack(ItemList.ring)); - jewelry.add(new ItemStack(ItemList.necklace)); - jewelry.add(new ItemStack(ItemList.bracelet)); - jewelry.add(new ItemStack(ItemList.earrings)); - for(Object item: GameData.getItemRegistry()){ - ArrayList items = new ArrayList(); - if (((Item)item).getHasSubtypes()){ - for(int i = 0; i < ((Item)item).getMaxDamage(); i++) - items.add(new ItemStack((Item)item, 1, i)); - }else objects.add(new ItemStack((Item)item)); - if (!items.isEmpty()) objects.addAll(items); - } - } - - /** - * Adds curse points to a player - * - * @param player the player to add the points to - * @param points amount of curse points - */ - public static void addCursePoints(EntityPlayer player, int points) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setInteger("cursePoints", playerInfo.hasKey("cursePoints") ? (playerInfo.getInteger("cursePoints") + points) : points); - playerInfo.setBoolean("playerCursePointsChanged", true); - } - - public static int getCursePoints(EntityPlayer player) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - return playerInfo.getInteger("cursePoints"); - } - - /** - * Adds the UUID's of the jamcrafters in a list - */ - public static void jamcrafters() - { - jamcraftPlayers.add("d3214311-7550-4c9c-a372-d9292c10b8a6"); - jamcraftPlayers.add("a690119f-c4a2-4bd6-a99d-d63679abb328"); - jamcraftPlayers.add("de7c9903-51fa-4a24-88cd-48faf122ca36"); - jamcraftPlayers.add("70aeb298-3a7b-46da-a393-ab10df9359f2"); - jamcraftPlayers.add("6fbe603c-14bf-4085-afdd-abe592c26e7c"); - jamcraftPlayers.add("b0d21306-36bf-4d85-84df-a956d183c45a"); - jamcraftPlayers.add("1733a31f-01f9-4f4d-82aa-7de30ca810d3"); - jamcraftPlayers.add("4833eacf-1d94-49a7-9f89-4cf88d69dcf9"); - jamcraftPlayers.add("718cf671-9084-4e78-b91f-033e80aa11bf"); - jamcraftPlayers.add("bea5e0c4-85c4-454d-a081-e1eaae6895ee"); - jamcraftPlayers.add("7ecf3e2f-fedf-4f7e-8d24-6731d078db4f"); - jamcraftPlayers.add("1b11ad3a-f0ca-4695-a019-2d7e5d83a5fd"); - jamcraftPlayers.add("3ec9ac58-2f1b-4d3f-b4eb-3b875da877ae"); - jamcraftPlayers.add("cf9fa23f-205e-4eed-aba3-9f2848cd6a4d"); - jamcraftPlayers.add("91880caa-b032-48e3-bfe8-c2c7ed31824e"); - jamcraftPlayers.add("8d0b3804-f71c-4219-897b-8c315448ea7c"); - jamcraftPlayers.add("bbb87dbe-690f-4205-bdc5-72ffb8ebc29d"); - } - - /** - * Adds a random amount of modifiers to a list - * - * @param randValue maximum number of modifiers - * @return a list containing the random modifiers - */ - public static ArrayList addRandomModifiers(int randValue) - { - ArrayList list = new ArrayList(); - for(int i = 0; i < 2 + randValue; i++){ - ItemStack item = objects.get(new Random().nextInt(objects.size())); - item.stackSize = 1 + new Random().nextInt(2); - list.add(item); - } - return list; - } - - /** - * Links ores with their appropriate ingot - */ - public static void addMetals() - { - int index = 0; - while (index < OreDictionary.getOreNames().length){ - Iterator i = OreDictionary.getOres(OreDictionary.getOreNames()[index]).iterator(); - while (i.hasNext()){ - ItemStack nextStack = i.next(); - if ((nextStack.getItem().getUnlocalizedName().toLowerCase().contains("ingot") || nextStack.getItem().getUnlocalizedName().toLowerCase().contains("alloy")) && !nextStack.getItem().getUnlocalizedName().toLowerCase().contains("powder") && !nextStack.getItem().getUnlocalizedName().toLowerCase().contains("dust") && !nextStack.getItem().getUnlocalizedName().toLowerCase().contains("block") && !metal.contains(nextStack)){ - metal.add(nextStack); - if (OreDictionary.getOres(OreDictionary.getOreNames()[index].replace("ingot", "ore")) != null){ - ores.addAll(OreDictionary.getOres(OreDictionary.getOreNames()[index].replace("ingot", "ore"))); - Iterator ores = OreDictionary.getOres(OreDictionary.getOreNames()[index].replace("ingot", "ore")).iterator(); - while (ores.hasNext()){ - ItemStack ore = ores.next(); - oreToIngot.put(ore.getItem(), nextStack); - } - } - } - } - index++; - } - } - - /** - * Checks to see if the specified item is a gem - * - * @param item ItemStack containing the item - * @return is the item a gem - */ - public static boolean isGem(ItemStack item) - { - Iterator i = gem.iterator(); - while (i.hasNext()){ - ItemStack temp = i.next(); - if (temp.getItem() == item.getItem() && temp.getItemDamage() == item.getItemDamage()) return true; - } - return false; - } - - /** - * Checks to see if the specified item is a metal - * - * @param item ItemStack containing the item - * @return is the item a metal - */ - public static boolean isMetal(ItemStack item) - { - Iterator i = metal.iterator(); - while (i.hasNext()){ - ItemStack temp = i.next(); - if (temp.getItem() == item.getItem() && temp.getItemDamage() == item.getItemDamage()) return true; - } - return false; - } - - /** - * Checks to see if the specified item is a piece of jewelry - * - * @param item ItemStack containing the item - * @return is the item a piece of jewelry - */ - public static boolean isJewelry(ItemStack item) - { - Iterator i = jewelry.iterator(); - while (i.hasNext()){ - ItemStack temp = i.next(); - if (temp.getItem() == item.getItem() && temp.getItemDamage() == item.getItemDamage()) return true; - } - return false; - } - - /** - * Checks to see if the specified item is an ore - * - * @param item ItemStack containing the item - * @return is the item an ore - */ - public static boolean isOre(ItemStack item) - { - Iterator i = ores.iterator(); - while (i.hasNext()){ - ItemStack temp = i.next(); - if (temp.getItem() == item.getItem() && temp.getItemDamage() == item.getItemDamage()) return true; - } - return false; - } - - /** - * Gets the ingot from the ore - * - * @param ore the ore - * @return the ingot - */ - public static ItemStack getIngotFromOre(Item ore) - { - return oreToIngot.get(ore); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f9/80f0e254bed000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f9/80f0e254bed000141b65e2fc7f94332d deleted file mode 100644 index c16c5be..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/f9/80f0e254bed000141b65e2fc7f94332d +++ /dev/null @@ -1,237 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.block.BlockShadowEye; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - if(xRot >= 90F || zRot >= 90F) GL11.glTranslatef(0F, -0.2F, 0F); - if(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockShadowEye) GL11.glTranslatef(0F, 0F, 0.025F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fa/40cc55896edd001412dce27813e7be4a b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fa/40cc55896edd001412dce27813e7be4a new file mode 100644 index 0000000..5f9902b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fa/40cc55896edd001412dce27813e7be4a @@ -0,0 +1,43 @@ +package darkknight.jewelrycraft.network; + +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class PacketRequestPlayerInfo implements IMessage, IMessageHandler +{ + EntityPlayer player; + public PacketRequestPlayerInfo(EntityPlayer player) + { + this.player = player; + } + + /** + * @param message + * @param ctx + * @return + */ + @Override + public IMessage onMessage(PacketRequestPlayerInfo message, MessageContext ctx) + { + return new PacketSendPlayerInfo(PlayerUtils.getModPlayerPersistTag(player, Variables.MODID)); + } + + /** + * @param buf + */ + @Override + public void fromBytes(ByteBuf buf) + {} + + /** + * @param buf + */ + @Override + public void toBytes(ByteBuf buf) + {} +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fa/602b84f79bd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fa/602b84f79bd000141b65e2fc7f94332d deleted file mode 100644 index d4f56cb..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fa/602b84f79bd000141b65e2fc7f94332d +++ /dev/null @@ -1,44 +0,0 @@ -package darkknight.jewelrycraft.container; - -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import darkknight.jewelrycraft.client.GuiGuide; -import darkknight.jewelrycraft.item.ItemList; - -public class GuiTabIntroduction extends GuiTab -{ - public GuiTabIntroduction(int id) - { - super("Introduction", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(ItemList.ring); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - String text = ""; - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - text = "Welcome to Jewelrycraft 2! This mod is about making jewelry that you can modify to your own will. To find out how to create a jewelry, please consult the book and look at the Smelter block. To add modifiers to it you need to perform a ritual. To see how to do that"; - Page.addTextPage(gui, gui.getLeft() + xPos, gui.getTop(), text); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/80bcb0aecfdf00141dc6c962aec96210 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/80bcb0aecfdf00141dc6c962aec96210 new file mode 100644 index 0000000..9013aef --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/80bcb0aecfdf00141dc6c962aec96210 @@ -0,0 +1,102 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); +// if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(30, 18 + (size + 26) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); +// } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 0 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlueHeart")) / 2.0F), 15 + 35*count, resolution.getScaledHeight() - 16, 16777215); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("BlackHeart") > 0){ + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 1 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + (MathHelper.ceiling_float_int(tagCache.getFloat("BlackHeart")) / 2.0F), 15 + 35*count, resolution.getScaledHeight() - 16, 16777215); + } + count++; + mc.renderEngine.bindTexture(hearts); + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(5 + 35*count, resolution.getScaledHeight() - 20, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/9020325670cf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/9020325670cf00141de78e4a85bb2469 deleted file mode 100644 index 6a786a0..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/9020325670cf00141de78e4a85bb2469 +++ /dev/null @@ -1,459 +0,0 @@ -package darkknight.jewelrycraft.events; - -import ibxm.Player; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.MathHelper; -import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.EntityJoinWorldEvent; -import net.minecraftforge.event.entity.item.ItemTossEvent; -import net.minecraftforge.event.entity.living.LivingAttackEvent; -import net.minecraftforge.event.entity.living.LivingDeathEvent; -import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; -import net.minecraftforge.event.world.WorldEvent; -import org.lwjgl.opengl.GL11; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; -import darkknight.jewelrycraft.curses.Curse; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; -import darkknight.jewelrycraft.item.ItemList; -import darkknight.jewelrycraft.lib.Reference; -import darkknight.jewelrycraft.network.PacketClearColorCache; -import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; -import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -/** - * Code taken from OpenBlocks - */ -public class EntityEventHandler -{ - /** - * @param event - */ - @SubscribeEvent - public void onEntityJoinWorld(EntityJoinWorldEvent event) - { - if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity); - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - final Entity entity = event.entity; - if (!event.world.isRemote && entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); - if (shouldGiveManual){ - ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - persistTag.setBoolean("givenGuide", true); - } - boolean render = persistTag.getBoolean("fancyRender"); - JewelrycraftMod.fancyRender = render; - for(Curse curse: Curse.getCurseList()) - if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0); - persistTag.setBoolean("sendInfo", true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityUpdate(LivingUpdateEvent event) - { - Entity entity = event.entity; - if (entity.getEntityData().getBoolean("stunned") && entity.getEntityData().getInteger("stunTime") > 0){ - entity.motionX *= 0D; - entity.motionZ *= 0D; - entity.motionY *= 0D; - entity.rotationPitch = entity.prevRotationPitch; - entity.rotationYaw = entity.prevRotationYaw; - entity.getEntityData().setInteger("stunTime", entity.getEntityData().getInteger("stunTime") - 1); - if (entity.getEntityData().getInteger("stunTime") == 0) entity.getEntityData().setBoolean("stunned", false); - entity.worldObj.spawnParticle("spell", entity.posX, entity.posY + entity.height, entity.posZ, 0.0D, 0.3D, 0.0D); - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); - if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ - player.motionX *= 0D; - player.motionZ *= 0D; - player.motionY *= 0D; - player.rotationPitch = entity.prevRotationPitch; - player.rotationYaw = entity.prevRotationYaw; - playerInfo.setInteger("stunTime", playerInfo.getInteger("stunTime") - 1); - if (playerInfo.getInteger("stunTime") == 0) playerInfo.setBoolean("stunned", false); - player.worldObj.spawnParticle("spell", entity.posX, entity.posY + 0.5F, entity.posZ, 0.0D, 0.3D, 0.0D); - } - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - ((ItemBaseJewelry)item.getItem()).action(item, player); - } - if (!player.worldObj.isRemote){ - if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000); - if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); - } - if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - playerInfo.setBoolean("sendInfo", false); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); - } - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityAttacked(LivingAttackEvent event) - { - Entity entity = event.entityLiving; - if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (event.source.getEntity() != null && event.source.getEntity().getEntityData().getBoolean("stunned")) event.setCanceled(true); - if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("negateDamage")){ - playerInfo.setBoolean("negateDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount); - } - if (player.getHealth() != player.prevHealth){ - if (playerInfo.getFloat("WhiteHeart") > 0){ - playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - if (playerInfo.getFloat("BlueHeart") > 0){ - float damage = playerInfo.getFloat("BlueHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlueHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - }else if (playerInfo.getFloat("BlackHeart") > 0){ - AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D); - List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb); - if (enemies != null && !enemies.isEmpty()){ - Iterator iterator = enemies.iterator(); - while (iterator.hasNext()){ - Entity enemy = (Entity)iterator.next(); - enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount); - } - } - float damage = playerInfo.getFloat("BlackHeart") - event.ammount; - if (damage >= 0){ - playerInfo.setFloat("BlackHeart", damage); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(event.ammount); - }else{ - playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - player.heal(Math.abs(damage)); - } - } - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedAction(player.worldObj, player); - }else if (event.source.getEntity() instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.source.getEntity(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - for(int i = 0; i < 18; i++) - if (playerInfo.hasKey("ext" + i)){ - NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); - ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if (((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount)){ - event.setCanceled(true); - break; - } - if (playerInfo.getBoolean("weakDamage")){ - playerInfo.setBoolean("weakDamage", false); - event.setCanceled(true); - break; - } - ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount); - } - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.attackedByPlayerAction(entity.worldObj, player, entity); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onPlayerRespawn(PlayerEvent.Clone event) - { - EntityPlayer player = event.entityPlayer; - if (!player.worldObj.isRemote){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0){ - int points = playerInfo.getInteger("cursePoints"); - for(int i = 1; i <= JewelrycraftMod.MAX_CURSES; i++) - if (points > (i - 1) * 1750) addCurse(player, playerInfo, i); - if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){ - playerInfo.setInteger("curseTime", 23000); - playerInfo.setBoolean("reselectCurses", false); - } - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param player - * @param playerInfo - * @param curse - */ - public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseNo) - { - if (Curse.availableCurses.size() > 0 && curseNo > Curse.getCurseList().size() - Curse.availableCurses.size()){ - int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size()); - Curse cur = Curse.availableCurses.get(no); - playerInfo.setInteger(cur.getName(), 1); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, int curseID, int grade) - { - Curse cur = Curse.getCurseList().get(curseID); - if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ - playerInfo.setInteger(cur.getName(), grade); - Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); - } - } - - @SubscribeEvent - public void itemToss(ItemTossEvent event) - { - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft"); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){ - EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem()); - entityitem.motionX = 0; - entityitem.motionZ = 0; - entityitem.motionY = 0.11000000298023224D; - event.player.worldObj.spawnEntityInWorld(entityitem); - List players = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - Iterator plrs = players.iterator(); - while (plrs.hasNext()) - ((EntityPlayerMP)plrs.next()).addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!")); - event.setCanceled(true); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void playerFileSave(PlayerEvent.SaveToFile event) - { - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onEntityDead(LivingDeathEvent event) - { - final Entity entity = event.entity; - Random rand = new Random(); - String[] types = {"Red", "Blue", "White", "Black"}; - if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){ - EntityLiving live = (EntityLiving)entity; - String type = types[rand.nextInt(4)]; - if (rand.nextInt(6) == 0){ - if (type == "White"){ - EntityHeart h = new EntityHalfHeart(live.worldObj); - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - }else{ - for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){ - EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)}; - EntityHeart h = hearts[rand.nextInt(2)]; - h.setType(type); - h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); - live.worldObj.spawnEntityInWorld(h); - } - } - } - } - if (entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)entity; - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ - for(Curse l: Curse.getCurseList()){ - if (playerInfo.getInteger(l.getName()) == 1){ - playerInfo.setInteger(l.getName(), 0); - if (!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l); - }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1); - } - if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - playerInfo.setBoolean("sendInfo", true); - for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); - } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) - { - if (!event.world.isRemote){ - new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); - try{ - if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) - { - if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{ - if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf)); - } - catch(EOFException e){ - e.printStackTrace(); - } - catch(IOException e){ - e.printStackTrace(); - } - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogColors(EntityViewRenderEvent.FogColors event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - event.red = 0f; - event.green = 0f; - event.blue = 0f; - } - } - if (event.isCancelable()) event.setCanceled(true); - } - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void fogDensity(EntityViewRenderEvent.FogDensity event) - {} - - /** - * @param event - */ - @SubscribeEvent - @SideOnly (Side.CLIENT) - public void renderFog(EntityViewRenderEvent.RenderFogEvent event) - { - if (event.entity instanceof EntityPlayer){ - EntityPlayer player = (EntityPlayer)event.entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (persistTag.getBoolean("nearStartedRitual")){ - GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); - GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); - } - } - if (event.isCancelable()) event.setCanceled(true); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/906294ac70cf00141de78e4a85bb2469 b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/906294ac70cf00141de78e4a85bb2469 deleted file mode 100644 index f48cc4a..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/906294ac70cf00141de78e4a85bb2469 +++ /dev/null @@ -1,42 +0,0 @@ -package darkknight.jewelrycraft.curses; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import darkknight.jewelrycraft.damage.DamageSourceList; -import darkknight.jewelrycraft.entities.EntityHalfHeart; -import darkknight.jewelrycraft.entities.EntityHeart; -import darkknight.jewelrycraft.util.JewelrycraftUtil; -import darkknight.jewelrycraft.util.PlayerUtils; - -public class CurseInfamy extends Curse -{ - public CurseInfamy(int id, String name, int text) - { - super(id, name, text); - } - - @Override - public void attackedByPlayerAction(World world, EntityPlayer player, Entity target) - { - if (rand.nextInt(5) == 0 && !world.isRemote && !(target instanceof EntityMob) && target instanceof EntityLiving && !(target instanceof EntityHeart) && !(target instanceof EntityHalfHeart) && target.canAttackWithItem()){ - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - if (playerInfo.getFloat("BlackHeart") < 20F) playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 1.0F); - if (player.getMaxHealth() >= 3F){ - player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() - 1.0F); - player.setHealth(player.getHealth() - 1.0F); - } - player.setHealth(player.getHealth() - 1.0F); - JewelrycraftUtil.addCursePoints(player, 10); - } - } - - public String getDescription() - { - return "What have you done?!"; - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/a00c68532dde00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/a00c68532dde00141043c3025ec60dfc new file mode 100644 index 0000000..c0e870a --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fb/a00c68532dde00141043c3025ec60dfc @@ -0,0 +1,106 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.event.entity.player.PlayerOpenContainerEvent; +import org.lwjgl.opengl.GL11; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.util.Variables; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + public static NBTTagCompound tagCache = null; + public static int cooldown; + static ResourceLocation texture; + static ResourceLocation hearts = new ResourceLocation(Variables.MODID, "textures/gui/hearts.png"); + + public ScreenHandler(Minecraft mc, ResourceLocation tex) + { + super(); + this.mc = mc; + texture = tex; + } + + @SubscribeEvent + public void renderScreen(RenderGameOverlayEvent event) + { +// if (event.type != ElementType.TEXT) Gui.drawRect(0, 0, mc.displayWidth, mc.displayHeight, 0xff000000); + if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return; + if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){ + int count = 0; + int size = 32; + ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){ + mc.renderEngine.bindTexture(hearts); + for(Curse curse: Curse.getCurseList()){ + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ +// Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000); +// Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064); + drawTexturedModalRect(-16, -16 + (size - 6) * count, 0, 32, 144, 60); + count++; + } + } + mc.renderEngine.bindTexture(texture); + count = 0; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + GL11.glPushMatrix(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glScalef(0.45f, 0.45f, 0.0f); + drawTexturedModalRect(28, 18 + (size + 26) * count, tag % size * size, tag / size * size, size, size); + GL11.glPopMatrix(); + count++; + } + count = 0; + size = 16; + for(Curse curse: Curse.getCurseList()) + if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){ + int tag = curse.getID(); + mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 30, 11 + (size + 10) * count, 16777215); + if (tagCache.getInteger(curse.getName()) == 2){ + mc.renderEngine.bindTexture(hearts); + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1f, 1f, 1f, 0.5f); + drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size); + GL11.glPopMatrix(); + } + count++; + } + } + GL11.glPushMatrix(); + GL11.glColor4f(1f, 1f, 1f, 1.0f); + mc.renderEngine.bindTexture(hearts); + count = 0; + size = 16; + if (tagCache.getFloat("BlueHeart") > 0){ + for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++) + drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() - 50 + 16 * count, 0 * size, 0 * size, size, size); + if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("BlackHeart") > 0){ +// for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++) + drawTexturedModalRect(15, resolution.getScaledHeight() - 50 + 16 * count, 1 * size, 0 * size, size, size); + mc.fontRenderer.drawStringWithShadow("x" + tagCache.getFloat("BlackHeart"), 15, resolution.getScaledHeight() - 50 + 16 * count, 16777215); +// if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size); + } + count++; + if (tagCache.getFloat("WhiteHeart") > 0) + drawTexturedModalRect(2, resolution.getScaledHeight() - 50 + 16 * count, 2 * size, 1 * size, size, size); + GL11.glPopMatrix(); + } + } +} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fd/00facaebbad000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fd/00facaebbad000141b65e2fc7f94332d deleted file mode 100644 index a5ea8af..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fd/00facaebbad000141b65e2fc7f94332d +++ /dev/null @@ -1,112 +0,0 @@ -package darkknight.jewelrycraft.container; - -import org.lwjgl.opengl.GL11; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.client.GuiGuide; - -public class GuiTabRitual extends GuiTab -{ - public GuiTabRitual(int id) - { - super("Ritual", id); - } - - @Override - public ItemStack getIcon() - { - return new ItemStack(BlockList.handPedestal); - } - - @Override - public void drawBackground(GuiGuide gui, int x, int y, int page) - { - int xPos = page % 2 == 0 ? 107 : -35; - switch(page) - { - case 1: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 1", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - //Top - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, 45, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*0, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.handPedestal), 0, -45, 0); - - //Left - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*-1, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 90, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - - //Bottom - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*10, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - - //Right - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*3, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*9, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*7, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*4, gui.getTop() + 11*5, x, y, new ItemStack(BlockList.handPedestal), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 2: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 2", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 3: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 3", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*1, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*8, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*0, gui.getTop() + 11*9, x, y, new ItemStack(BlockList.shadowBlock), 0, 0, 0); - - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stonebrick), 0, 0, 0); - break; - - case 4: - Page.drawText(gui, EnumChatFormatting.DARK_BLUE + "\u00a7n" + "Layer 4", gui.getLeft() + xPos + 35, gui.getTop() - 30); - for(int i = -1; i < 10; i++) - for(int j = 0; j < 11; j++) - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*i, gui.getTop() + 11*j, x, y, new ItemStack(Blocks.air), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*2, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - Page.addSlotItem(gui, gui.getLeft() + xPos + 11*6, gui.getTop() + 11*5, x, y, new ItemStack(Blocks.stone_brick_stairs), 0, 0, 0); - break; - } - } - - @Override - public int getMaxPages() - { - return 4; - } - - @Override - public void drawForeground(GuiGuide gui, int x, int y, int page) - {} -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fd/a0e56af6bbd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fd/a0e56af6bbd000141b65e2fc7f94332d deleted file mode 100644 index ea40ffd..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fd/a0e56af6bbd000141b65e2fc7f94332d +++ /dev/null @@ -1,235 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate, float xRot, float yRot, float zRot) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ -// GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - GL11.glRotatef(xRot, 1, 0, 0); - GL11.glRotatef(yRot, 0, 1, 0); - GL11.glRotatef(zRot, 0, 0, 1); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.enableStandardItemLighting(); - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)) RenderHelper.disableStandardItemLighting(); - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fe/60f238f802de00141043c3025ec60dfc b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fe/60f238f802de00141043c3025ec60dfc new file mode 100644 index 0000000..1b2d71b --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/fe/60f238f802de00141043c3025ec60dfc @@ -0,0 +1,276 @@ +package darkknight.jewelrycraft.tileentity; + +import java.util.ArrayList; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import darkknight.jewelrycraft.block.BlockHandPedestal; +import darkknight.jewelrycraft.block.BlockList; +import darkknight.jewelrycraft.particles.EntityShadowsFX; +import darkknight.jewelrycraft.util.JewelryNBT; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; + +public class TileEntityShadowEye extends TileEntity +{ + public int opening, timer, t = 20; + public boolean active; + public ArrayList pedestalItems = new ArrayList(); + ResourceLocation particleTexture = new ResourceLocation(Variables.MODID, "textures/particle/shadows.png"); + public EntityPlayer target; + + public TileEntityShadowEye() + { + opening = 1; + timer = 20; + active = false; + } + + /** + * @param nbt + */ + @Override + public void writeToNBT(NBTTagCompound nbt) + { + super.writeToNBT(nbt); + nbt.setInteger("opening", opening); + nbt.setInteger("timer", timer); + nbt.setBoolean("active", active); + } + + /** + * @param nbt + */ + @Override + public void readFromNBT(NBTTagCompound nbt) + { + super.readFromNBT(nbt); + opening = nbt.getInteger("opening"); + timer = nbt.getInteger("timer"); + active = nbt.getBoolean("active"); + } + + /** + * + */ + @Override + public void updateEntity() + { + super.updateEntity(); + boolean valid = isValidStructure(worldObj, xCoord, yCoord, zCoord, blockMetadata); + if (active) timer--; + if (target != null && worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(8D, 8D, 8D)).contains(target)){ + active = false; + timer = -1; + } + if (opening == 4 && timer <= 0) active = false; + if (!active && timer <= 0 && opening != 1){ + if (t > 0) t--; + if (t <= 0){ + opening--; + t = 20; + } + } + if (opening == 2 && timer <= 0 && t == 10){ + addData(worldObj, xCoord, yCoord, zCoord); + TileEntityHandPedestal target = (TileEntityHandPedestal)worldObj.getTileEntity(xCoord, yCoord - 3, zCoord); + if (target != null && target.getHeldItemStack() != null) JewelryNBT.addModifiers(target.getHeldItemStack(), pedestalItems); + } + if (active && timer <= 0){ + if (opening < 4){ + opening++; + timer = 20; + } + if (valid && opening == 4) timer = 1000; + else if (!valid){ + active = false; + timer = -1; + } + } + for(Object player: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(8D, 8D, 8D))) + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", false); + } + if (active && opening == 4){ + float din = 6F; + int i = Minecraft.getMinecraft().gameSettings.particleSetting; + for(float x = -din; x <= din; x += 0.2F) + for(float z = -din; z <= din; z += 0.2F) + if (x * x + z * z >= din * din - 1 && x * x + z * z <= din * din + 1) Minecraft.getMinecraft().effectRenderer.addEffect(new EntityShadowsFX(worldObj, xCoord + x + 0.5F, yCoord - 0.5F, zCoord + z + 0.5F, 15F, 0.04F - 0.01F * i, particleTexture)); + for(int l = 0; l <= 2 - i; l++) + worldObj.spawnParticle("depthsuspend", xCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), yCoord - 2F + worldObj.rand.nextFloat(), zCoord + 6.5F - worldObj.rand.nextInt(9) - worldObj.rand.nextFloat(), 0, 0, 0); + for(Object player: worldObj.getEntitiesWithinAABB(EntityPlayer.class, getRenderBoundingBox().expand(8D, 8D, 8D))) + if (player != null){ + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag((EntityPlayer)player, Variables.MODID); + persistTag.setBoolean("nearStartedRitual", true); + } + } + } + + /** + * @param world + * @param x + * @param y + * @param z + * @param metadata + * @return + */ + public boolean isValidStructure(World world, int x, int y, int z, int metadata) + { + if (world.getBlockMetadata(x, y, z) == 0 || world.getBlockMetadata(x, y, z) == 2){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x + 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x + 1, y + 1, z) != 5) return false; + if (world.getBlock(x - 1, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x - 1, y + 1, z) != 5) return false; + // 2nd Layer + if (world.getBlock(x + 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 2, y, z) != 1) return false; + if (world.getBlock(x + 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x + 1, y, z) != 4) return false; + if (world.getBlock(x - 1, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 1, y, z) != 5) return false; + if (world.getBlock(x - 2, y, z) != Blocks.stone_brick_stairs || world.getBlockMetadata(x - 2, y, z) != 0) return false; + // 3rd Layer + if (world.getBlock(x + 2, y - 1, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 1, z) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x + 2, y - 2, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 2, z) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x + 2, y - 3, z) != Blocks.stonebrick) return false; + if (world.getBlock(x - 2, y - 3, z) != Blocks.stonebrick) return false; + }else if (world.getBlockMetadata(x, y, z) == 1 || world.getBlockMetadata(x, y, z) == 3){ + // Layers from top to bottom + // 1st Layer + if (world.getBlock(x, y + 1, z) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z) != 5) return false; + if (world.getBlock(x, y + 1, z + 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z + 1) != 5) return false; + if (world.getBlock(x, y + 1, z - 1) != Blocks.stone_slab || world.getBlockMetadata(x, y + 1, z - 1) != 5) return false; + // 2nd Layer + if (world.getBlock(x, y, z + 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 2) != 3) return false; + if (world.getBlock(x, y, z + 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z + 1) != 6) return false; + if (world.getBlock(x, y, z - 1) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 1) != 7) return false; + if (world.getBlock(x, y, z - 2) != Blocks.stone_brick_stairs || world.getBlockMetadata(x, y, z - 2) != 2) return false; + // 3rd Layer + if (world.getBlock(x, y - 1, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 1, z - 2) != Blocks.stonebrick) return false; + // 4th Layer + if (world.getBlock(x, y - 2, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 2, z - 2) != Blocks.stonebrick) return false; + // 5th Layer + if (world.getBlock(x, y - 3, z + 2) != Blocks.stonebrick) return false; + if (world.getBlock(x, y - 3, z - 2) != Blocks.stonebrick) return false; + } + // 3rd Layer + if (world.getBlock(x - 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x - 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z - 4) != BlockList.shadowBlock) return false; + if (world.getBlock(x + 4, y - 1, z + 4) != BlockList.shadowBlock) return false; + // 4th Layer + if (world.getBlock(x - 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 2, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 2, z + 4) != Blocks.stonebrick) return false; + // 5th Layer + // Pillars + if (world.getBlock(x - 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x - 4, y - 3, z + 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z - 4) != Blocks.stonebrick) return false; + if (world.getBlock(x + 4, y - 3, z + 4) != Blocks.stonebrick) return false; + // Pedestals + if (!(world.getBlock(x, y - 3, z) instanceof BlockHandPedestal)) return false; + if (world.getBlock(x - 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z + 2) != 1) return false; + if (world.getBlock(x - 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x - 5, y - 3, z) != 2) return false; + if (world.getBlock(x - 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x - 4, y - 3, z - 2) != 3) return false; + if (world.getBlock(x - 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z - 4) != 3) return false; + if (world.getBlock(x, y - 3, z - 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z - 5) != 4) return false; + if (world.getBlock(x + 2, y - 3, z - 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z - 4) != 5) return false; + if (world.getBlock(x + 4, y - 3, z - 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z - 2) != 5) return false; + if (world.getBlock(x + 5, y - 3, z) != BlockList.handPedestal || world.getBlockMetadata(x + 5, y - 3, z) != 6) return false; + if (world.getBlock(x + 4, y - 3, z + 2) != BlockList.handPedestal || world.getBlockMetadata(x + 4, y - 3, z + 2) != 7) return false; + if (world.getBlock(x + 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x + 2, y - 3, z + 4) != 7) return false; + if (world.getBlock(x, y - 3, z + 5) != BlockList.handPedestal || world.getBlockMetadata(x, y - 3, z + 5) != 0) return false; + if (world.getBlock(x - 2, y - 3, z + 4) != BlockList.handPedestal || world.getBlockMetadata(x - 2, y - 3, z + 4) != 1) return false; + return true; + } + + /** + * @param world + * @param x + * @param y + * @param z + */ + public void addData(World world, int x, int y, int z) + { + pedestalItems.clear(); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z - 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z - 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z - 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 5, y - 3, z)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 4, y - 3, z + 2)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x + 2, y - 3, z + 4)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x, y - 3, z + 5)); + addPedestalInfo((TileEntityHandPedestal)world.getTileEntity(x - 2, y - 3, z + 4)); + } + + /** + * @param pedestal + */ + public void addPedestalInfo(TileEntityHandPedestal pedestal) + { + ItemStack heldItemStack; + if (pedestal != null && (heldItemStack = pedestal.getHeldItemStack()) != null){ + if (pedestalItems.isEmpty()) pedestalItems.add(heldItemStack.copy()); + else{ + boolean hasItem = false; + int index = 0; + for(int ind = 0; ind < pedestalItems.size() && !hasItem; ind++) + if (heldItemStack.getItem().equals(pedestalItems.get(ind).getItem()) && heldItemStack.getItemDamage() == pedestalItems.get(ind).getItemDamage()){ + index = ind; + hasItem = true; + if (heldItemStack.hasTagCompound() && pedestalItems.get(ind).hasTagCompound() && !heldItemStack.getTagCompound().equals(pedestalItems.get(ind).getTagCompound())) hasItem = false; + } + if (!hasItem) pedestalItems.add(heldItemStack.copy()); + else{ + ItemStack object = pedestalItems.get(index).copy(); + object.stackSize++; + pedestalItems.set(index, object); + } + } + pedestal.removeHeldItemStack(); + pedestal.openHand(); + } + } + + /** + * @return + */ + @Override + public Packet getDescriptionPacket() + { + NBTTagCompound nbttagcompound = new NBTTagCompound(); + writeToNBT(nbttagcompound); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 1, nbttagcompound); + } + + /** + * @param net + * @param packet + */ + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet) + { + readFromNBT(packet.func_148857_g()); + worldObj.func_147479_m(xCoord, yCoord, zCoord); + } +} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ff/40a89923f4cf0014170de422db399e8d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ff/40a89923f4cf0014170de422db399e8d deleted file mode 100644 index 339dd64..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ff/40a89923f4cf0014170de422db399e8d +++ /dev/null @@ -1,62 +0,0 @@ -package darkknight.jewelrycraft.effects; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.ChunkPosition; -import cpw.mods.fml.relauncher.ReflectionHelper; -import darkknight.jewelrycraft.item.ItemEarrings; -import darkknight.jewelrycraft.item.ItemNecklace; -import darkknight.jewelrycraft.util.JewelryNBT; - -public class EffectEnderEye extends ModifierEffects -{ - public EffectEnderEye() - { - super(new ItemStack(Items.ender_eye)); - } - - @Override - public void action(ItemStack item, EntityPlayer player, Item jewelry) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); - if (jewelry instanceof ItemEarrings && pos != -1 && !player.worldObj.isRemote){ - for(Object e: player.worldObj.getEntitiesWithinAABB(EntityEnderman.class, player.boundingBox.expand(100D, 0D, 100D))){ - EntityEnderman enderman = (EntityEnderman)e; - ReflectionHelper.setPrivateValue(EntityEnderman.class, enderman, -1, "stareTimer", "field_70826_g"); - Vec3 vec3 = player.getLook(1.0F).normalize(); - Vec3 vec31 = Vec3.createVectorHelper(enderman.posX - player.posX, enderman.boundingBox.minY + (double)(enderman.height / 2.0F) - (player.posY + (double)player.getEyeHeight()), enderman.posZ - player.posZ); - double d0 = vec31.lengthVector(); - vec31 = vec31.normalize(); - double d1 = vec3.dotProduct(vec31); - if (d1 > 1.0D - 0.025D / d0 && player.canEntityBeSeen(enderman)){ - enderman.setTarget(null); - if (!player.isPotionActive(Potion.confusion) || player.getActivePotionEffect(Potion.confusion).getDuration() <= 80) player.addPotionEffect(new PotionEffect(Potion.confusion.id, 300, 2)); - } - } - } - if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote){ - ChunkPosition chunkposition = player.worldObj.findClosestStructure("Stronghold", (int)player.posX, (int)player.posY, (int)player.posZ); - if (chunkposition != null){ - Minecraft.getMinecraft().thePlayer.motionX += 0.01D*Math.signum((double)chunkposition.chunkPosX - player.posX); - Minecraft.getMinecraft().thePlayer.motionZ += 0.01D*Math.signum((double)chunkposition.chunkPosZ - player.posZ); - } - } - } - - @Override - public void onPlayerAttacked(ItemStack item, EntityPlayer player, DamageSource source, Item jewelry, float amount) - { - int pos = JewelryNBT.doesModifierExist(item, modifier); -// if (jewelry instanceof ItemNecklace && pos != -1 && !player.worldObj.isRemote) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 100, 1)); - } -} diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ff/a0f1a1f6afd000141b65e2fc7f94332d b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ff/a0f1a1f6afd000141b65e2fc7f94332d deleted file mode 100644 index 8b62f5d..0000000 --- a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.history/ff/a0f1a1f6afd000141b65e2fc7f94332d +++ /dev/null @@ -1,244 +0,0 @@ -package darkknight.jewelrycraft.client; - -import java.util.ArrayList; -import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import darkknight.jewelrycraft.block.BlockList; -import darkknight.jewelrycraft.container.GuiRectangle; -import darkknight.jewelrycraft.container.GuiTab; -import darkknight.jewelrycraft.container.GuiTabBlocks; -import darkknight.jewelrycraft.container.GuiTabGemsAndIngots; -import darkknight.jewelrycraft.container.GuiTabIntroduction; -import darkknight.jewelrycraft.container.GuiTabItems; -import darkknight.jewelrycraft.container.GuiTabModifiers; -import darkknight.jewelrycraft.container.GuiTabRitual; - -public class GuiGuide extends GuiContainer -{ - public int page, rot, del; - public boolean prevHover, nextHover; - World world; - private final GuiTab[] tabs; - private GuiTab activeTab; - ResourceLocation pageTexture, flippedPageTexture; - - /** - * @param container - * @param world - * @param pageTex - * @param flipPageTex - */ - public GuiGuide(Container container, World world, ResourceLocation pageTex, ResourceLocation flipPageTex) - { - super(container); - page = 1; - rot = 0; - del = 0; - this.world = world; - tabs = new GuiTab[]{new GuiTabIntroduction(0), new GuiTabBlocks(1), new GuiTabItems(2), new GuiTabGemsAndIngots(3), new GuiTabModifiers(4), new GuiTabRitual(5)}; - activeTab = tabs[0]; - pageTexture = pageTex; - flippedPageTexture = flipPageTex; - } - - /** - * @param f - * @param i - * @param j - */ - @Override - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) - { - nextHover = false; - prevHover = false; - if (del == 0) rot++; - del++; - if (del >= 2) del = 0; - Minecraft.getMinecraft().getTextureManager().bindTexture(pageTexture); - drawTexturedModalRect(guiLeft + 147 / 2 + 20, guiTop - 10, 0, 0, 145, 180); - Minecraft.getMinecraft().getTextureManager().bindTexture(flippedPageTexture); - drawTexturedModalRect(guiLeft - 147 / 2 + 21, guiTop - 10, 0, 0, 145, 180); - for(GuiRectangle tab: tabs){ - int srcX = 24; - int sizeX = 19; - if (tab == activeTab){ - srcX += 38; - sizeX += 3; - }else if (tab.inRect(this, i, j)) srcX += 19; - tab.draw(this, srcX, 180, sizeX, 18); - } - if (i >= guiLeft + 195 + 20 && i <= guiLeft + 195 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page + 2 <= activeTab.getMaxPages()){ - drawTexturedModalRect(guiLeft + 195 + 20, guiTop + 127 + 20, 0, 180, 11, 14); - nextHover = true; - } - if (i >= guiLeft + 20 - 61 && i <= guiLeft - 61 + 20 + 11 && j >= guiTop + 127 + 20 && j <= guiTop + 127 + 20 + 14 && page - 2 > 0){ - drawTexturedModalRect(guiLeft - 61 + 20, guiTop + 127 + 20, 11, 180, 11, 14); - prevHover = true; - } - activeTab.drawBackground(this, i, j, page); - activeTab.drawBackground(this, i, j, page + 1); - ArrayList text = new ArrayList(); - text.add(Integer.toString(page)); - drawHoveringText(text, guiLeft - 10 + 20 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - text.remove(Integer.toString(page)); - text.add(Integer.toString(page + 1)); - drawHoveringText(text, guiLeft - 10 + 20 + 147 - text.get(0).length(), guiTop + 150 + 20, fontRendererObj); - for(int tab = 0; tab < tabs.length; tab++) - renderItem(tabs[tab].getIcon(), guiLeft - 52, guiTop + 26 + tab * 19, activeTab.getIcon()); - } - - /** - * @param x - * @param y - */ - @Override - protected void drawGuiContainerForegroundLayer(int x, int y) - { - activeTab.drawForeground(this, x, y, page); - activeTab.drawForeground(this, x, y, page + 1); - for(GuiTab tab: tabs) - tab.drawString(this, x, y, tab.getName()); - } - - /** - * @param x - * @param y - * @param button - */ - @Override - protected void mouseClicked(int x, int y, int button) - { - if (nextHover && page + 2 <= activeTab.getMaxPages()) page += 2; - else if (prevHover && page > 1) page -= 2; - activeTab.mouseClick(this, x, y, button); - for(GuiTab tab: tabs) - if (activeTab != tab) if (tab.inRect(this, x, y)){ - activeTab = tab; - page = 1; - break; - } - } - - /** - * @param item - * @param x - * @param y - * @param activeIcon - */ - public void renderItem(ItemStack item, float x, float y, ItemStack activeIcon) - { - GL11.glPushMatrix(); - GL11.glDisable(GL11.GL_LIGHTING); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))) y -= 4; - GL11.glTranslatef(x, y, 100); - float scale = 30F; - GL11.glScalef(-scale, scale, scale); - if (activeIcon != null && item.isItemEqual(activeIcon)) GL11.glRotatef(rot, 0, 1, 0); - if (item.isItemEqual(new ItemStack(BlockList.jewelAltar))){ - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(45.0F, 0.0F, 1.0F, 0.0F); - }else GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_LIGHT0); - } - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - GL11.glRotatef(180F, 0F, 1F, 0F); - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - GL11.glDisable(GL11.GL_LIGHT0); - GL11.glDisable(GL11.GL_LIGHTING); - } - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glPopMatrix(); - } - - /** - * @param item - * @param x - * @param y - * @param scale - */ - public void renderItem(ItemStack item, float x, float y, float scale, boolean rotate) - { - GL11.glPushMatrix(); - EntityItem entityitem = new EntityItem(world, 0.0D, 0.0D, 0.0D, item); - entityitem.hoverStart = 0.0F; - GL11.glTranslatef(x, y, 100); - GL11.glScalef(-scale, scale, scale); - GL11.glRotatef(160.0F, 1.0F, 0.0F, 0.0F); - if (rotate) GL11.glRotatef(rot, 0.0F, 1.0F, 0.0F); - else{ - GL11.glRotatef(entityitem.getEntityItem().getItemDamage() % 8 / 8F * 360, 0, 1, 0); - if(ItemStack.areItemStacksEqual(item, new ItemStack(Blocks.light_weighted_pressure_plate, 1, 0)))GL11.glRotatef(25.0F, -1.0F, 0.0F, 0.0F); - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_LIGHT0); - } - if (RenderManager.instance.options.fancyGraphics) RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - else{ - RenderManager.instance.options.fancyGraphics = true; - RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderManager.instance.options.fancyGraphics = false; - } - if (!(Block.getBlockFromItem(entityitem.getEntityItem().getItem()) instanceof BlockAir)){ - GL11.glDisable(GL11.GL_LIGHT0); - GL11.glDisable(GL11.GL_LIGHTING); - } - GL11.glPopMatrix(); - } - - /** - * @return - */ - public int getLeft() - { - return guiLeft; - } - - /** - * @return - */ - public int getTop() - { - return guiTop; - } - - /** - * @return - */ - public FontRenderer getFont() - { - return fontRendererObj; - } - - /** - * @param lst - * @param x - * @param y - */ - @SuppressWarnings ("rawtypes") - public void drawHoverString(List lst, int x, int y) - { - drawHoveringText(lst, x, y, fontRendererObj); - } -} \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.jdt.core.external.folders/.markers.snap b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.jdt.core.external.folders/.markers.snap deleted file mode 100644 index 91d6c54..0000000 Binary files a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.jdt.core.external.folders/.markers.snap and /dev/null differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.jdt.core.external.folders/.syncinfo.snap b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.jdt.core.external.folders/.syncinfo.snap deleted file mode 100644 index 91d6c54..0000000 Binary files a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.jdt.core.external.folders/.syncinfo.snap and /dev/null differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/13/6a/history.index b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/13/6a/history.index new file mode 100644 index 0000000..70e0975 Binary files /dev/null and b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/13/6a/history.index differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/13/history.index b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/13/history.index index f712cf9..4668f99 100644 Binary files a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/13/history.index and b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/13/history.index differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/2/history.index b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/2/history.index index 17bcb2d..ea8d870 100644 Binary files a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/2/history.index and b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/2/history.index differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/29/history.index b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/29/history.index new file mode 100644 index 0000000..ff08604 Binary files /dev/null and b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/29/history.index differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/2e/history.index b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/2e/history.index index 8340ff2..2a54b4b 100644 Binary files a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/2e/history.index and b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/2e/history.index differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/35/history.index b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/35/history.index deleted file mode 100644 index caf21e6..0000000 Binary files a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/35/history.index and /dev/null differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/3f/history.index b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/3f/history.index new file mode 100644 index 0000000..afe7d1c Binary files /dev/null and b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/3f/history.index differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/78/history.index b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/78/history.index new file mode 100644 index 0000000..00e3ea2 Binary files /dev/null and b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/78/history.index differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/7f/history.index b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/7f/history.index deleted file mode 100644 index 042f9cd..0000000 Binary files a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/7f/history.index and /dev/null differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/8d/history.index b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/8d/history.index index 523af06..07a409c 100644 Binary files a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/8d/history.index and b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/8d/history.index differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/df/history.index b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/df/history.index deleted file mode 100644 index f3b0bf8..0000000 Binary files a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/df/history.index and /dev/null differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/e7/history.index b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/e7/history.index index 8bca368..f13a8a8 100644 Binary files a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/e7/history.index and b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/e7/history.index differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/ef/history.index b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/ef/history.index new file mode 100644 index 0000000..4f8d8ff Binary files /dev/null and b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/ef/history.index differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/fe/history.index b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/fe/history.index index 9a49138..7e44e1e 100644 Binary files a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/fe/history.index and b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/fe/history.index differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/history.index b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/history.index index 6f69b92..09ebfcb 100644 Binary files a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/history.index and b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.indexes/e4/b9/22/7d/96/history.index differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.markers b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.markers index bbc6768..9c36208 100644 Binary files a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.markers and b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.markers differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.markers.snap b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.markers.snap deleted file mode 100644 index 91d6c54..0000000 Binary files a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.markers.snap and /dev/null differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.syncinfo.snap b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.syncinfo.snap deleted file mode 100644 index 91d6c54..0000000 Binary files a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/.syncinfo.snap and /dev/null differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/org.eclipse.jdt.core/state.dat b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/org.eclipse.jdt.core/state.dat index b90196e..5b1fde0 100644 Binary files a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/org.eclipse.jdt.core/state.dat and b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.projects/Minecraft/org.eclipse.jdt.core/state.dat differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index index 249d41a..71f8cdc 100644 Binary files a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index and b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.markers.snap b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.markers.snap deleted file mode 100644 index 91d6c54..0000000 Binary files a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/.markers.snap and /dev/null differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/36.tree b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/36.tree deleted file mode 100644 index d58b006..0000000 Binary files a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/36.tree and /dev/null differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/50.tree b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/50.tree new file mode 100644 index 0000000..f10f868 Binary files /dev/null and b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.root/50.tree differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources index 2daefb8..bb98ea4 100644 Binary files a/eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources and b/eclipse/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.resources/36.snap b/eclipse/.metadata/.plugins/org.eclipse.core.resources/36.snap deleted file mode 100644 index 05fd643..0000000 Binary files a/eclipse/.metadata/.plugins/org.eclipse.core.resources/36.snap and /dev/null differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs index 64475e3..6b6819c 100644 --- a/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs +++ b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs @@ -1,6 +1,6 @@ command=C\:\\Program Files\\Java\\jdk1.7.0_71\\bin\\javadoc.exe content_assist_disabled_computers=org.eclipse.jdt.ui.textProposalCategory\u0000org.eclipse.recommenders.calls.rcp.proposalCategory.templates\u0000org.eclipse.mylyn.java.ui.javaAllProposalCategory\u0000org.eclipse.jdt.ui.javaAllProposalCategory\u0000org.eclipse.jdt.ui.javaNoTypeProposalCategory\u0000org.eclipse.jdt.ui.javaTypeProposalCategory\u0000org.eclipse.recommenders.chain.rcp.proposalCategory.chain\u0000 -content_assist_lru_history= +content_assist_lru_history= content_assist_number_of_computers=19 content_assist_proposals_background=255,255,255 content_assist_proposals_foreground=0,0,0 diff --git a/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs index 7d2886a..1313126 100644 --- a/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs +++ b/eclipse/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs @@ -3,6 +3,6 @@ IMPORT_FILES_AND_FOLDERS_VIRTUAL_FOLDER_MODE=prompt PROBLEMS_FILTERS_MIGRATE=true SAVE_ALL_BEFORE_BUILD=true eclipse.preferences.version=1 -platformState=1413973123639 +platformState=1413973123640 quickStart=false tipsAndTricks=true diff --git a/eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml b/eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml index 0213cf8..7e44cfa 100644 --- a/eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml +++ b/eclipse/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml @@ -7,7 +7,7 @@
- +
diff --git a/eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml b/eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml index e720862..c9c2231 100644 --- a/eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml +++ b/eclipse/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml @@ -3,8 +3,8 @@ - + @@ -19,8 +19,8 @@ - + diff --git a/eclipse/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi b/eclipse/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi index 7907ab6..6ac0320 100644 --- a/eclipse/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi +++ b/eclipse/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi @@ -1,9 +1,9 @@ - + activeSchemeId:org.eclipse.ui.defaultAcceleratorConfiguration ModelMigrationProcessor.001 - + @@ -107,12 +107,11 @@ - + persp.actionSet:org.eclipse.mylyn.doc.actionSet persp.actionSet:org.eclipse.mylyn.tasks.ui.navigation persp.actionSet:org.eclipse.ui.cheatsheets.actionSet persp.actionSet:org.eclipse.search.searchActionSet - persp.actionSet:org.eclipse.ui.edit.text.actionSet.annotationNavigation persp.actionSet:org.eclipse.ui.edit.text.actionSet.navigation persp.actionSet:org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo persp.actionSet:org.eclipse.ui.externaltools.ExternalToolsSet @@ -123,51 +122,75 @@ persp.actionSet:org.eclipse.jdt.ui.JavaActionSet persp.actionSet:org.eclipse.jdt.ui.JavaElementCreationActionSet persp.actionSet:org.eclipse.ui.NavigateActionSet - persp.viewSC:org.eclipse.jdt.ui.PackageExplorer - persp.viewSC:org.eclipse.jdt.ui.TypeHierarchy - persp.viewSC:org.eclipse.jdt.ui.SourceView - persp.viewSC:org.eclipse.jdt.ui.JavadocView - persp.viewSC:org.eclipse.search.ui.views.SearchView - persp.viewSC:org.eclipse.ui.console.ConsoleView - persp.viewSC:org.eclipse.ui.views.ContentOutline - persp.viewSC:org.eclipse.ui.views.ProblemView - persp.viewSC:org.eclipse.ui.views.ResourceNavigator - persp.viewSC:org.eclipse.ui.views.TaskList - persp.viewSC:org.eclipse.ui.views.ProgressView - persp.viewSC:org.eclipse.ui.navigator.ProjectExplorer - persp.viewSC:org.eclipse.ui.texteditor.TemplatesView - persp.viewSC:org.eclipse.pde.runtime.LogView + persp.showIn:org.eclipse.egit.ui.RepositoriesView + persp.actionSet:org.eclipse.jdt.debug.ui.JDTDebugActionSet + persp.actionSet:org.eclipse.jdt.junit.JUnitActionSet + persp.showIn:org.eclipse.jdt.ui.PackageExplorer + persp.showIn:org.eclipse.team.ui.GenericHistoryView + persp.showIn:org.eclipse.ui.views.ResourceNavigator + persp.showIn:org.eclipse.ui.navigator.ProjectExplorer + persp.actionSet:org.eclipse.debug.ui.debugActionSet + persp.newWizSC:org.eclipse.egit.ui.CreateRepositoryWizard + persp.newWizSC:org.eclipse.ant.ui.wizards.JavaProjectWizard persp.newWizSC:org.eclipse.jdt.ui.wizards.JavaProjectWizard persp.newWizSC:org.eclipse.jdt.ui.wizards.NewPackageCreationWizard persp.newWizSC:org.eclipse.jdt.ui.wizards.NewClassCreationWizard persp.newWizSC:org.eclipse.jdt.ui.wizards.NewInterfaceCreationWizard + persp.newWizSC:org.eclipse.jdt.ui.wizards.NewSourceFolderCreationWizard persp.newWizSC:org.eclipse.jdt.ui.wizards.NewEnumCreationWizard persp.newWizSC:org.eclipse.jdt.ui.wizards.NewAnnotationCreationWizard - persp.newWizSC:org.eclipse.jdt.ui.wizards.NewSourceFolderCreationWizard - persp.newWizSC:org.eclipse.jdt.ui.wizards.NewSnippetFileCreationWizard persp.newWizSC:org.eclipse.jdt.ui.wizards.NewJavaWorkingSetWizard + persp.newWizSC:org.eclipse.jdt.debug.ui.snippetEditor.NewSnippetFileCreationWizard + persp.newWizSC:org.eclipse.jdt.junit.wizards.NewTestCaseCreationWizard + persp.newWizSC:org.eclipse.jdt.junit.wizards.NewTestSuiteCreationWizard + persp.newWizSC:org.eclipse.m2e.core.wizards.Maven2ProjectWizard + persp.newWizSC:org.eclipse.m2e.core.wizards.Maven2ModuleWizard + persp.newWizSC:org.eclipse.m2e.scm.internal.wizards.MavenCheckoutWizard + persp.newWizSC:org.eclipse.mylyn.tasks.ui.wizards.new.category + persp.newWizSC:org.eclipse.mylyn.tasks.ui.wizards.new.repository.task + persp.newWizSC:org.eclipse.mylyn.tasks.ui.wizards.new.query + persp.newWizSC:org.eclipse.team.cvs.ui.newProjectCheckout + persp.newWizSC:org.eclipse.team.cvs.ui.newLocation + persp.newWizSC:org.eclipse.ui.editors.wizards.UntitledTextFileWizard + persp.newWizSC:org.eclipse.ui.wizards.new.project persp.newWizSC:org.eclipse.ui.wizards.new.folder persp.newWizSC:org.eclipse.ui.wizards.new.file - persp.newWizSC:org.eclipse.ui.editors.wizards.UntitledTextFileWizard - persp.perspSC:org.eclipse.jdt.ui.JavaBrowsingPerspective + persp.newWizSC:org.eclipse.wst.xml.ui.XMLExampleProjectCreationWizard + persp.newWizSC:org.eclipse.wb.core.wizards.palette.NewPalettePluginWizard + persp.newWizSC:org.eclipse.wb.swing.JFrame + persp.newWizSC:org.eclipse.wb.swing.JPanel + persp.newWizSC:org.eclipse.wb.swing.JDialog + persp.newWizSC:org.eclipse.wb.swing.JApplet + persp.newWizSC:org.eclipse.wb.swing.JInternalFrame + persp.newWizSC:org.eclipse.wb.swing.ApplicationWindow + persp.newWizSC:org.eclipse.wb.swing.databinding.AutobindingWizard + persp.newWizSC:org.eclipse.wst.dtd.ui.internal.wizard.NewDTDWizard + persp.newWizSC:org.eclipse.wst.xml.ui.internal.wizards.NewXMLWizard + persp.newWizSC:org.eclipse.wst.xsd.ui.internal.wizards.NewXSDWizard persp.perspSC:org.eclipse.debug.ui.DebugPerspective - persp.viewSC:org.eclipse.ant.ui.views.AntView - persp.showIn:org.eclipse.egit.ui.RepositoriesView - persp.actionSet:org.eclipse.debug.ui.breakpointActionSet - persp.actionSet:org.eclipse.jdt.debug.ui.JDTDebugActionSet - persp.newWizSC:org.eclipse.jdt.junit.wizards.NewTestCaseCreationWizard - persp.actionSet:org.eclipse.jdt.junit.JUnitActionSet - persp.showIn:org.eclipse.jdt.ui.PackageExplorer - persp.showIn:org.eclipse.team.ui.GenericHistoryView - persp.showIn:org.eclipse.ui.views.ResourceNavigator - persp.showIn:org.eclipse.ui.navigator.ProjectExplorer - persp.viewSC:org.eclipse.mylyn.tasks.ui.views.tasks - persp.newWizSC:org.eclipse.mylyn.tasks.ui.wizards.new.repository.task + persp.perspSC:org.eclipse.jdt.ui.JavaBrowsingPerspective persp.viewSC:org.eclipse.wb.core.StructureView persp.viewSC:org.eclipse.wb.core.PaletteView - persp.actionSet:org.eclipse.debug.ui.debugActionSet + persp.viewSC:org.eclipse.jdt.ui.PackageExplorer + persp.viewSC:org.eclipse.jdt.ui.TypeHierarchy + persp.viewSC:org.eclipse.jdt.ui.SourceView + persp.viewSC:org.eclipse.jdt.ui.JavadocView + persp.viewSC:org.eclipse.ui.texteditor.TemplatesView + persp.viewSC:org.eclipse.search.ui.views.SearchView + persp.viewSC:org.eclipse.ui.console.ConsoleView + persp.viewSC:org.eclipse.ui.views.ProgressView + persp.viewSC:org.eclipse.ui.views.ResourceNavigator + persp.viewSC:org.eclipse.ui.views.TaskList + persp.viewSC:org.eclipse.ui.views.ProblemView + persp.viewSC:org.eclipse.ui.navigator.ProjectExplorer + persp.viewSC:org.eclipse.ui.views.ContentOutline + persp.viewSC:org.eclipse.pde.runtime.LogView + persp.viewSC:org.eclipse.ant.ui.views.AntView + persp.viewSC:org.eclipse.mylyn.tasks.ui.views.tasks + persp.actionSet:org.eclipse.ui.edit.text.actionSet.annotationNavigation + persp.actionSet:org.eclipse.debug.ui.breakpointActionSet - + newtablook org.eclipse.e4.primaryNavigationStack @@ -185,10 +208,10 @@ - - - - + + + + newtablook org.eclipse.e4.secondaryDataStack @@ -240,107 +263,33 @@ categoryTag:Help - + newtablook org.eclipse.e4.primaryDataStack EditorStack active - - - Editor - org.eclipse.jdt.ui.CompilationUnitEditor - removeOnHide - - menuContribution:popup - popup:#CompilationUnitEditorContext - popup:org.eclipse.jdt.ui.CompilationUnitEditor.EditorContext - popup:#AbstractTextEditorContext - - - menuContribution:popup - popup:#CompilationUnitRulerContext - popup:org.eclipse.jdt.ui.CompilationUnitEditor.RulerContext - popup:#AbstractTextEditorRulerContext - - - menuContribution:popup - popup:#OverviewRulerContext - - - - - Editor - org.eclipse.ui.DefaultTextEditor - removeOnHide - - menuContribution:popup - popup:#TextEditorContext - popup:org.eclipse.ui.DefaultTextEditor.EditorContext - popup:#AbstractTextEditorContext - - - menuContribution:popup - popup:#TextRulerContext - popup:org.eclipse.ui.DefaultTextEditor.RulerContext - popup:#AbstractTextEditorRulerContext - - - menuContribution:popup - popup:#OverviewRulerContext - - - - - Editor - org.eclipse.ui.DefaultTextEditor - removeOnHide - - - - Editor - org.eclipse.jdt.ui.CompilationUnitEditor - removeOnHide - - - - Editor - org.eclipse.jdt.ui.CompilationUnitEditor - removeOnHide - - - - Editor - org.eclipse.jdt.ui.CompilationUnitEditor - removeOnHide - - - + + Editor org.eclipse.jdt.ui.CompilationUnitEditor removeOnHide active activeOnClose - - + + Editor org.eclipse.jdt.ui.CompilationUnitEditor removeOnHide - - - Editor - org.eclipse.jdt.ui.ClassFileEditor - removeOnHide - - - + + Editor org.eclipse.jdt.ui.CompilationUnitEditor removeOnHide - - + + Editor org.eclipse.jdt.ui.CompilationUnitEditor removeOnHide @@ -408,7 +357,7 @@ categoryTag:General - + View categoryTag:General @@ -928,7 +877,7 @@ Draggable - + toolbarSeparator @@ -967,7 +916,7 @@ Draggable - + toolbarSeparator diff --git a/eclipse/.metadata/.plugins/org.eclipse.jdt.core/286606776.index b/eclipse/.metadata/.plugins/org.eclipse.jdt.core/286606776.index index 49a1b31..185f2ca 100644 Binary files a/eclipse/.metadata/.plugins/org.eclipse.jdt.core/286606776.index and b/eclipse/.metadata/.plugins/org.eclipse.jdt.core/286606776.index differ diff --git a/eclipse/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt b/eclipse/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt index 561e3c1..a28aed2 100644 --- a/eclipse/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt +++ b/eclipse/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt @@ -11,16 +11,16 @@ INDEX VERSION 1.127+H:\Jewelrycraft\1.7.10\eclipse\.metadata\.plugins\org.eclips 1421139610.index 573497671.index 1140841982.index -512031428.index 904948993.index +512031428.index 1112183641.index 4137555767.index 286606776.index 2084554879.index +292378129.index 4263599826.index 1560443425.index 473306299.index -292378129.index 1921212175.index 3631395337.index 1846500785.index diff --git a/eclipse/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml b/eclipse/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml index d5c2e61..fa8a606 100644 --- a/eclipse/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml +++ b/eclipse/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml @@ -1,22 +1,5 @@ - - - - - - - - - - - - - - - - - @@ -35,13 +18,9 @@ - - - - @@ -53,11 +32,32 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/Minecraft/2015/3/13/refactorings.history b/eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/Minecraft/2015/3/13/refactorings.history new file mode 100644 index 0000000..1237e63 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/Minecraft/2015/3/13/refactorings.history @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/Minecraft/2015/3/13/refactorings.index b/eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/Minecraft/2015/3/13/refactorings.index new file mode 100644 index 0000000..cf6b29f --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/Minecraft/2015/3/13/refactorings.index @@ -0,0 +1,24 @@ +1427402756019 Delete element +1427417596252 Delete element +1427417635371 Move compilation unit +1427417642850 Move compilation unit +1427417683308 Move compilation units +1427417710955 Move compilation units +1427417722794 Move compilation units +1427417760258 Move compilation units +1427417780159 Rename package 'darkknight.jewelrycraft.gui' +1427417838820 Move compilation units +1427418544463 Rename type 'Reference' +1427418593336 Move compilation unit +1427418596684 Delete element +1427462263885 Move compilation units +1427462311962 Delete element +1427462376056 Move compilation unit +1427462385896 Move compilation units +1427462389878 Delete element +1427462670448 Rename local variable 'p_70298_1_' +1427462681022 Rename local variable 'p_70298_2_' +1427462712881 Rename local variable 'p_70304_1_' +1427467431975 Rename local variable 'p_73869_1_' +1427467440495 Rename local variable 'p_73869_2_' +1427580249323 Delete element diff --git a/eclipse/.metadata/.plugins/org.eclipse.team.ui/syncParticipants.xml b/eclipse/.metadata/.plugins/org.eclipse.team.ui/syncParticipants.xml new file mode 100644 index 0000000..f7e3799 --- /dev/null +++ b/eclipse/.metadata/.plugins/org.eclipse.team.ui/syncParticipants.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml b/eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml index ba4c48b..1b6289a 100644 --- a/eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml +++ b/eclipse/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml @@ -2,37 +2,37 @@
- + - - - - - - - - + + + + + + + + + + + + + + - - - - - -
- - - - + + + +
diff --git a/eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml b/eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml index 434b773..4d4ff6a 100644 --- a/eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml +++ b/eclipse/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml @@ -5,8 +5,8 @@
- - + + diff --git a/eclipse/.metadata/version.ini b/eclipse/.metadata/version.ini index 55add6e..011fc17 100644 --- a/eclipse/.metadata/version.ini +++ b/eclipse/.metadata/version.ini @@ -1,3 +1,3 @@ -#Sun Mar 22 11:23:27 GMT 2015 +#Sat Apr 11 20:03:06 EEST 2015 org.eclipse.core.runtime=2 org.eclipse.platform=4.4.0.v20140925-0400 -- cgit v1.2.3