MCPcopy Create free account
hub / github.com/demoth/jake2 / touch

Method touch

game/src/main/java/jake2/game/items/GameItems.java:225–298  ·  view source on GitHub ↗
(SubgameEntity ent, SubgameEntity other, cplane_t plane,
                          csurface_t surf, GameExportsImpl gameExports)

Source from the content-addressed store, hash-verified

223 public static EntTouchAdapter Touch_Item = new EntTouchAdapter() {
224 public String getID() { return "touch_item";}
225 public void touch(SubgameEntity ent, SubgameEntity other, cplane_t plane,
226 csurface_t surf, GameExportsImpl gameExports) {
227 boolean taken;
228
229 if (ent.classname.equals("item_breather"))
230 taken = false;
231
232 gclient_t client = other.getClient();
233 if (client == null)
234 return;
235 if (other.health < 1)
236 return; // dead people can't pickup
237 if (ent.item.pickup == null)
238 return; // not a grabbable item?
239
240 taken = ent.item.pickup.interact(ent, other, gameExports);
241
242 if (taken) {
243 // flash the screen
244 client.bonus_alpha = 0.25f;
245
246 // show icon and name on status bar
247 client.getPlayerState().stats[Defines.STAT_PICKUP_ICON] = (short) gameExports.gameImports
248 .imageindex(ent.item.icon);
249 client.getPlayerState().stats[Defines.STAT_PICKUP_STRING] = (short) (Defines.CS_ITEMS + ent.item.index);
250 client.pickup_msg_time = gameExports.level.time + 3.0f;
251
252 // change selected item
253 if (ent.item.use != null)
254 client.pers.selected_item = client.getPlayerState().stats[Defines.STAT_SELECTED_ITEM] = (short) ent.item.index;
255
256 if (ent.item.pickup == Pickup_Health) {
257 if (ent.count == 2)
258 gameExports.gameImports.sound(other, Defines.CHAN_ITEM, gameExports.gameImports
259 .soundindex("items/s_health.wav"), 1,
260 Defines.ATTN_NORM, 0);
261 else if (ent.count == 10)
262 gameExports.gameImports.sound(other, Defines.CHAN_ITEM, gameExports.gameImports
263 .soundindex("items/n_health.wav"), 1,
264 Defines.ATTN_NORM, 0);
265 else if (ent.count == 25)
266 gameExports.gameImports.sound(other, Defines.CHAN_ITEM, gameExports.gameImports
267 .soundindex("items/l_health.wav"), 1,
268 Defines.ATTN_NORM, 0);
269 else
270 // (ent.count == 100)
271 gameExports.gameImports.sound(other, Defines.CHAN_ITEM, gameExports.gameImports
272 .soundindex("items/m_health.wav"), 1,
273 Defines.ATTN_NORM, 0);
274 } else if (ent.item.pickup_sound != null) {
275 gameExports.gameImports.sound(other, Defines.CHAN_ITEM, gameExports.gameImports
276 .soundindex(ent.item.pickup_sound), 1,
277 Defines.ATTN_NORM, 0);
278 }
279 }
280
281 if (0 == (ent.spawnflags & GameDefines.ITEM_TARGETS_USED)) {
282 GameUtil.G_UseTargets(ent, other, gameExports);

Callers

nothing calls this directly

Calls 11

getPlayerStateMethod · 0.95
G_UseTargetsMethod · 0.95
freeEntityMethod · 0.80
imageindexMethod · 0.65
soundMethod · 0.65
soundindexMethod · 0.65
dprintfMethod · 0.65
equalsMethod · 0.45
getClientMethod · 0.45
interactMethod · 0.45
getOwnerMethod · 0.45

Tested by

no test coverage detected