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 add(@NotNull final Location location, @NotNull final AnimationState animationState)
void mapRemove(final int x, final int y)
void removeInventoryListener(final int tag, @NotNull final ItemListener listener)
Animation get(final int animationId)
void add(final int tag, @NotNull final AnimationState animationState)
final Animations animations
final ItemSetListener itemSetListener
CfAnimationsMapListener mapListener
void mapScroll(final int dx, final int dy)
final ItemListener playerInventoryListener
void scroll(final int dx, final int dy, final int width, final int height)
void tagAdd(final int tag, @NotNull final Animation animation, final int type)
void remove(final int tag)
final AnimationMap mapAnimations
Collection< AnimationState > getAllAnimationStates()
void remove(@NotNull final Location location)
final AnimationSet tagAnimations
final Map< Integer, Integer > tags
void mapSetSize(final int mapWidth, final int mapHeight)
final Collection< AnimationState > pendingTickUpdates
final Map< Integer, AnimationState > syncAnimationStates
final Collection< Integer > unknownAnimations
final Collection< AnimationState > animationStates
void setMapListener(@NotNull final CfAnimationsMapListener mapListener)
AnimationState add(@NotNull final Animation animation, final int type)
void addInventoryListener(final int tag, @NotNull final ItemListener listener)
void addItemSetListener(@NotNull final ItemSetListener listener)
void tagRemove(final int tag)
CfAnimations(@NotNull final ItemSet itemSet, @NotNull final FacesManager facesManager, @NotNull final Animations animations)
void mapRemove(@NotNull final Location location)
void mapUpdateSpeed(@NotNull final Location location, final int speed)
void mapAdd(@NotNull final Location location, @NotNull final Animation animation, final int type)
void updateSpeed(@NotNull final Location location, final int speed)
void tick(final int tickNo)
final FacesManager facesManager
void updateSpeed(final int tag, final int speed)