Crossfire JXClient, Trunk
|
Go to the documentation of this file.
23 package com.realtime.crossfire.jxclient.map;
33 import java.util.ArrayList;
34 import java.util.Collection;
35 import java.util.HashMap;
36 import java.util.HashSet;
38 import java.util.Random;
39 import org.jetbrains.annotations.NotNull;
40 import org.jetbrains.annotations.Nullable;
52 private static final Object
SYNC =
new Object();
83 private final Random
random =
new Random();
89 @SuppressWarnings(
"FieldCanBeLocal")
93 public void playerChanged(@Nullable
final CfItem player) {
94 if (!
tags.isEmpty()) {
95 System.err.println(
"Warning: player inventory is not empty when changing players");
96 for (
final int tag :
tags.values()) {
105 playerTag = player ==
null ? -1 : player.getTag();
112 public void openContainerChanged(
final int tag) {
121 @SuppressWarnings(
"FieldAccessedSynchronizedAndUnsynchronized")
126 public Object mapBegin() {
131 public void mapFace(@NotNull
final Location location,
final int faceNum) {
135 public void mapEnd() {
189 public void itemChanged(
final int tag) {
193 public void itemRemoved(
final int tag) {
197 public void inventoryAdded(
final int tag,
final int index, @NotNull
final CfItem item) {
198 final int itemTag = item.getTag();
199 final int anim = item.getAnim();
200 final int animSpeed = item.getAnimSpeed();
203 if (animation ==
null) {
205 System.err.println(
"Unknown animation id "+(anim&
Map2.
ANIM_MASK)+
", ignoring");
210 final Integer prevTag =
tags.put(index, itemTag);
211 if (prevTag !=
null) {
220 public void inventoryRemoved(
final int tag,
final int index) {
221 final Integer prevTag =
tags.remove(index);
222 if (prevTag ==
null) {
235 private final Map<Integer, Integer>
tags =
new HashMap<>();
272 animationState.freeAllLocations();
341 public void tick(
final int tickNo) {
343 animationState.setTickNo(tickNo);
346 final Iterable<AnimationState> animationStatesToUpdate =
new ArrayList<>(
animationStates);
349 animationState.updateTickNo(tickNo);
361 private void tagAdd(
final int tag, @NotNull
final Animation animation,
final int type) {
381 assert 0 <= type && type < 4;
384 final boolean addToPendingTickUpdates;
389 addToPendingTickUpdates =
true;
394 addToPendingTickUpdates =
true;
398 final int animationId = animation.getAnimationId();
403 addToPendingTickUpdates =
true;
405 animationState = tmp;
406 addToPendingTickUpdates =
false;
412 if (addToPendingTickUpdates) {
416 return animationState;
void addInventoryListener(final int tag, @NotNull final ItemListener listener)
final Collection< AnimationState > pendingTickUpdates
void remove(@NotNull final Location location)
CfAnimations(@NotNull final ItemSet itemSet, @NotNull final FacesManager facesManager, @NotNull final Animations animations)
final Collection< Integer > unknownAnimations
Animation get(final int animationId)
CfAnimationsMapListener mapListener
final FacesManager facesManager
final AnimationSet tagAnimations
void mapRemove(@NotNull final Location location)
final AnimationMap mapAnimations
void mapSetSize(final int mapWidth, final int mapHeight)
final Map< Integer, Integer > tags
void tagAdd(final int tag, @NotNull final Animation animation, final int type)
void setMapListener(@NotNull final CfAnimationsMapListener mapListener)
void mapScroll(final int dx, final int dy)
final Collection< AnimationState > animationStates
void mapUpdateSpeed(@NotNull final Location location, final int speed)
void add(final int tag, @NotNull final AnimationState animationState)
Collection< AnimationState > getAllAnimationStates()
void tagRemove(final int tag)
AnimationState add(@NotNull final Animation animation, final int type)
void updateSpeed(final int tag, final int speed)
void scroll(final int dx, final int dy, final int width, final int height)
void addItemSetListener(@NotNull final ItemSetListener listener)
void tick(final int tickNo)
void remove(final int tag)
void mapRemove(final int x, final int y)
final Map< Integer, AnimationState > syncAnimationStates
void mapAdd(@NotNull final Location location, @NotNull final Animation animation, final int type)
void add(@NotNull final Location location, @NotNull final AnimationState animationState)
final ItemListener playerInventoryListener
void updateSpeed(@NotNull final Location location, final int speed)
final ItemSetListener itemSetListener
void removeInventoryListener(final int tag, @NotNull final ItemListener listener)
final Animations animations