|
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 java.util.random.RandomGenerator;
40 import org.jetbrains.annotations.NotNull;
41 import org.jetbrains.annotations.Nullable;
53 private static final Object
SYNC =
new Object();
84 private final RandomGenerator
random =
new Random();
90 @SuppressWarnings(
"FieldCanBeLocal")
94 public void playerChanged(@Nullable
final CfItem player) {
95 if (!
tags.isEmpty()) {
96 System.err.println(
"Warning: player inventory is not empty when changing players");
97 for (
final int tag :
tags.values()) {
106 playerTag = player ==
null ? -1 : player.getTag();
113 public void openContainerChanged(
final int tag) {
122 @SuppressWarnings(
"FieldAccessedSynchronizedAndUnsynchronized")
127 public Object mapBegin() {
132 public void mapFace(@NotNull
final Location location,
final int faceNum) {
136 public void mapEnd() {
190 public void itemChanged(
final int tag) {
194 public void itemRemoved(
final int tag) {
198 public void inventoryAdded(
final int tag,
final int index, @NotNull
final CfItem item) {
199 final int itemTag = item.getTag();
200 final int anim = item.getAnim();
201 final int animSpeed = item.getAnimSpeed();
204 if (animation ==
null) {
206 System.err.println(
"Unknown animation id "+(anim&
Map2.
ANIM_MASK)+
", ignoring");
211 final Integer prevTag =
tags.put(index, itemTag);
212 if (prevTag !=
null) {
221 public void inventoryRemoved(
final int tag,
final int index) {
222 final Integer prevTag =
tags.remove(index);
223 if (prevTag ==
null) {
236 private final Map<Integer, Integer>
tags =
new HashMap<>();
273 animationState.freeAllLocations();
342 public void tick(
final int tickNo) {
344 animationState.setTickNo(tickNo);
347 final Iterable<AnimationState> animationStatesToUpdate =
new ArrayList<>(
animationStates);
350 animationState.updateTickNo(tickNo);
362 private void tagAdd(
final int tag, @NotNull
final Animation animation,
final int type) {
382 assert 0 <= type && type < 4;
385 final boolean addToPendingTickUpdates;
390 addToPendingTickUpdates =
true;
395 addToPendingTickUpdates =
true;
399 final int animationId = animation.getAnimationId();
404 addToPendingTickUpdates =
true;
406 animationState = tmp;
407 addToPendingTickUpdates =
false;
413 if (addToPendingTickUpdates) {
417 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 RandomGenerator random
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)