// JAXB callback @SuppressWarnings("unused") private void afterUnmarshal(Unmarshaller unmarshaller, Object parent) { DataManager.log.info("Loaded world maps data: " + worldMapsData.size() + " maps"); DataManager.log.info( "Loaded player exp table: " + playerExperienceTable.getMaxLevel() + " levels"); DataManager.log.info("Loaded " + playerStatsData.size() + " player stat templates"); DataManager.log.info("Loaded " + summonStatsData.size() + " summon stat templates"); DataManager.log.info("Loaded " + itemCleanup.size() + " item cleanup entries"); DataManager.log.info("Loaded " + itemData.size() + " item templates"); DataManager.log.info("Loaded " + itemGroupsData.size() + " item group templates"); DataManager.log.info("Loaded " + npcData.size() + " npc templates"); DataManager.log.info("Loaded " + npcShoutData.size() + " npc shout templates"); DataManager.log.info("Loaded " + petData.size() + " pet templates"); DataManager.log.info("Loaded " + playerInitialData.size() + " initial player templates"); DataManager.log.info("Loaded " + tradeListData.size() + " trade lists"); DataManager.log.info("Loaded " + teleporterData.size() + " npc teleporter templates"); DataManager.log.info("Loaded " + teleLocationData.size() + " teleport locations"); DataManager.log.info("Loaded " + skillData.size() + " skill templates"); DataManager.log.info("Loaded " + motionData.size() + " motion times"); DataManager.log.info("Loaded " + skillTreeData.size() + " skill learn entries"); DataManager.log.info("Loaded " + cubeExpandData.size() + " cube expand entries"); DataManager.log.info("Loaded " + warehouseExpandData.size() + " warehouse expand entries"); DataManager.log.info("Loaded " + bindPointData.size() + " bind point entries"); DataManager.log.info("Loaded " + questData.size() + " quest data entries"); DataManager.log.info("Loaded " + gatherableData.size() + " gatherable entries"); DataManager.log.info("Loaded " + titleData.size() + " title entries"); DataManager.log.info("Loaded " + walkerData.size() + " walker routes"); DataManager.log.info("Loaded " + zoneData.size() + " zone entries"); DataManager.log.info("Loaded " + goodsListData.size() + " goodslist entries"); DataManager.log.info("Loaded " + tribeRelationsData.size() + " tribe relation entries"); DataManager.log.info("Loaded " + recipeData.size() + " recipe entries"); DataManager.log.info("Loaded " + portalData.size() + " portal entries"); DataManager.log.info("Loaded " + chestData.size() + " chest locations"); DataManager.log.info("Loaded " + staticDoorData.size() + " static door locations"); DataManager.log.info("Loaded " + itemSetData.size() + " item set entries"); DataManager.log.info("Loaded " + npcFactionsData.size() + " npc factions"); DataManager.log.info("Loaded " + npcSkillData.size() + " npc skill list entries"); DataManager.log.info("Loaded " + petSkillData.size() + " pet skill list entries"); DataManager.log.info("Loaded " + siegeLocationData.size() + " siege location entries"); DataManager.log.info("Loaded " + flyRingData.size() + " fly ring entries"); DataManager.log.info("Loaded " + shieldData.size() + " shield entries"); DataManager.log.info("Loaded " + petData.size() + " pet entries"); DataManager.log.info("Loaded " + guideData.size() + " guide entries"); DataManager.log.info("Loaded " + roadData.size() + " road entries"); DataManager.log.info("Loaded " + instanceCooltimeData.size() + " instance cooltime entries"); DataManager.log.info("Loaded " + decomposableItemsData.size() + " decomposable items entries"); DataManager.log.info("Loaded " + aiData.size() + " ai templates"); DataManager.log.info("Loaded " + flyPath.size() + " flypath templates"); DataManager.log.info("Loaded " + windstreamsData.size() + " windstream entries"); DataManager.log.info("Loaded " + assembledNpcData.size() + " assembled npcs entries"); DataManager.log.info("Loaded " + assemblyData.size() + " assembled items entries"); DataManager.log.info("Loaded " + cosmeticItemsData.size() + " cosmetic items entries"); DataManager.log.info("Loaded " + npcDropData.size() + " npc drop entries"); DataManager.log.info("Loaded " + autoGroupData.size() + " auto group entries"); DataManager.log.info("Loaded " + spawnsData2.size() + " spawn maps entries"); DataManager.log.info("Loaded " + eventData.size() + " active events"); DataManager.log.info("Loaded " + pvpZoneData.size() + " [Ascension]Tvt's Positions"); }
/** * Generate chest block to drive model selection: 0 = single facing west 1 = single facing south * 2 = single facing east 3 = single facing north 4 = left side facing west 5 = left side facing * south 6 = left side facing east 7 = left side facing north 8 = right side facing west 9 = * right side facing south 10 = right side facing east 11 = right side facing north * * @param mapiter * @return */ private int generateChestBlockData(MapIterator mapiter) { ChestData cd = ChestData.SINGLE_WEST; /* Default to single facing west */ /* Check adjacent block IDs */ int ids[] = { mapiter.getBlockTypeIDAt(BlockStep.Z_PLUS), /* To west */ mapiter.getBlockTypeIDAt(BlockStep.X_PLUS), /* To south */ mapiter.getBlockTypeIDAt(BlockStep.Z_MINUS), /* To east */ mapiter.getBlockTypeIDAt(BlockStep.X_MINUS) }; /* To north */ /* First, check if we're a double - see if any adjacent chests */ if (ids[0] == CHEST_BLKTYPEID) { /* Another to west - assume we face south */ cd = ChestData.RIGHT_SOUTH; /* We're right side */ } else if (ids[1] == CHEST_BLKTYPEID) { /* Another to south - assume west facing */ cd = ChestData.LEFT_WEST; /* We're left side */ } else if (ids[2] == CHEST_BLKTYPEID) { /* Another to east - assume south facing */ cd = ChestData.LEFT_SOUTH; /* We're left side */ } else if (ids[3] == CHEST_BLKTYPEID) { /* Another to north - assume west facing */ cd = ChestData.RIGHT_WEST; /* We're right side */ } else { /* Else, single - build index into lookup table */ int idx = 0; for (int i = 0; i < ids.length; i++) { if ((ids[i] != 0) && (HDTextureMap.getTransparency(ids[i]) != BlockTransparency.TRANSPARENT)) { idx |= (1 << i); } } cd = SINGLE_LOOKUP[idx]; } return cd.ordinal(); }