forked from jzitnik/twodcraft
feat: Started implementing oak sapling logic
This commit is contained in:
parent
eb899ac3a9
commit
bc7480459a
@ -22,6 +22,7 @@ import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.jline.terminal.Terminal;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
@ -203,7 +204,13 @@ public class Game {
|
||||
mining = false;
|
||||
|
||||
var blocks = world[y][x];
|
||||
for (Block block : blocks) {
|
||||
var blocksCopy = new ArrayList<>(blocks);
|
||||
CustomPlaceHandler customPlaceHandler = gameStates.dependencies.placeHandler
|
||||
.get(blocks.stream().filter(Block::isMineable).toList().getFirst().getBlockId());
|
||||
boolean giveItem = customPlaceHandler.mine(this, x, y);
|
||||
|
||||
if (giveItem) {
|
||||
for (Block block : blocksCopy) {
|
||||
if (!block.isMineable()) {
|
||||
continue;
|
||||
}
|
||||
@ -222,8 +229,9 @@ public class Game {
|
||||
block.getDrops().forEach(inventory::addItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (Block block : blocks) {
|
||||
for (Block block : blocksCopy) {
|
||||
if (block.getBlockId().equals("chest")) {
|
||||
((Chest) block.getData()).breakBlock(this);
|
||||
} else if (block.getBlockId().equals("furnace")) {
|
||||
@ -231,9 +239,6 @@ public class Game {
|
||||
}
|
||||
}
|
||||
|
||||
CustomPlaceHandler customPlaceHandler = gameStates.dependencies.placeHandler
|
||||
.get(blocks.stream().filter(Block::isMineable).toList().getFirst().getBlockId());
|
||||
customPlaceHandler.mine(this, x, y);
|
||||
inventory.getItemInHand().ifPresent(Item::use);
|
||||
|
||||
screenRenderer.render(this);
|
||||
|
@ -22,6 +22,9 @@ public class SpriteLoader {
|
||||
// Work
|
||||
FURNACE, CHEST, CRAFTING_TABLE, BED,
|
||||
|
||||
// Saplings
|
||||
OAK_SAPLING,
|
||||
|
||||
// ENTITIES
|
||||
STEVE, PIG, SHEEP, COW,
|
||||
|
||||
@ -34,7 +37,7 @@ public class SpriteLoader {
|
||||
ITEM_STICK, ITEM_LEATHER,
|
||||
|
||||
// Block Items
|
||||
ITEM_DIRT, ITEM_OAK_LOG, ITEM_OAK_PLANKS, ITEM_COBBLESTONE, ITEM_STONE, ITEM_OAK_DOOR, ITEM_WOOL,
|
||||
ITEM_DIRT, ITEM_OAK_LOG, ITEM_OAK_LEAF, ITEM_OAK_PLANKS, ITEM_COBBLESTONE, ITEM_STONE, ITEM_OAK_DOOR, ITEM_WOOL, ITEM_OBSIDIAN,
|
||||
|
||||
// Ore Items
|
||||
ITEM_COAL_ORE, ITEM_IRON_ORE, ITEM_GOLD_ORE, ITEM_DIAMOND_ORE,
|
||||
@ -59,7 +62,7 @@ public class SpriteLoader {
|
||||
|
||||
BUCKET, WATER_BUCKET, LAVA_BUCKET, MILK_BUCKET,
|
||||
// Food
|
||||
ITEM_PORKCHOP, ITEM_COOKED_PORKCHOP, ITEM_MUTTON, ITEM_COOKED_MUTTON, ITEM_BEEF, ITEM_STEAK,
|
||||
ITEM_PORKCHOP, ITEM_COOKED_PORKCHOP, ITEM_MUTTON, ITEM_COOKED_MUTTON, ITEM_BEEF, ITEM_STEAK, ITEM_APPLE,
|
||||
}
|
||||
|
||||
public static final HashMap<SPRITES, Sprite> SPRITES_MAP = new HashMap<>();
|
||||
@ -100,6 +103,9 @@ public class SpriteLoader {
|
||||
SPRITES_MAP.put(SPRITES.CHEST, new SimpleSprite("chest.ans"));
|
||||
SPRITES_MAP.put(SPRITES.BED, new Bed());
|
||||
|
||||
// Saplings
|
||||
SPRITES_MAP.put(SPRITES.OAK_SAPLING, new SimpleSprite("oak_sapling.ans"));
|
||||
|
||||
// ENTITIES
|
||||
SPRITES_MAP.put(SPRITES.STEVE, new Steve());
|
||||
SPRITES_MAP.put(SPRITES.PIG, new Pig());
|
||||
@ -120,11 +126,13 @@ public class SpriteLoader {
|
||||
// Block Items
|
||||
SPRITES_MAP.put(SPRITES.ITEM_DIRT, new SimpleSprite("items/dirt.ans"));
|
||||
SPRITES_MAP.put(SPRITES.ITEM_OAK_LOG, new SimpleSprite("items/oak_log.ans"));
|
||||
SPRITES_MAP.put(SPRITES.ITEM_OAK_LEAF, new SimpleSprite("items/oak_leaves.ans"));
|
||||
SPRITES_MAP.put(SPRITES.ITEM_OAK_PLANKS, new SimpleSprite("items/oak_planks.ans"));
|
||||
SPRITES_MAP.put(SPRITES.ITEM_COBBLESTONE, new SimpleSprite("items/cobblestone.ans"));
|
||||
SPRITES_MAP.put(SPRITES.ITEM_STONE, new SimpleSprite("items/stone.ans"));
|
||||
SPRITES_MAP.put(SPRITES.ITEM_OAK_DOOR, new SimpleSprite("oak_door/items/oak_door.ans"));
|
||||
SPRITES_MAP.put(SPRITES.ITEM_WOOL, new WoolItem());
|
||||
SPRITES_MAP.put(SPRITES.ITEM_OBSIDIAN, new SimpleSprite("items/obsidian.ans"));
|
||||
|
||||
// Ore Items
|
||||
SPRITES_MAP.put(SPRITES.ITEM_COAL_ORE, new SimpleSprite("items/coal_ore.ans"));
|
||||
@ -191,6 +199,7 @@ public class SpriteLoader {
|
||||
SPRITES_MAP.put(SPRITES.ITEM_COOKED_MUTTON, new SimpleSprite("items/cooked_mutton.ans"));
|
||||
SPRITES_MAP.put(SPRITES.ITEM_BEEF, new SimpleSprite("items/beef.ans"));
|
||||
SPRITES_MAP.put(SPRITES.ITEM_STEAK, new SimpleSprite("items/steak.ans"));
|
||||
SPRITES_MAP.put(SPRITES.ITEM_APPLE, new SimpleSprite("items/apple.ans"));
|
||||
}
|
||||
|
||||
public static SpriteList<SPRITES> load() {
|
||||
|
@ -4,7 +4,6 @@ import cz.jzitnik.game.SpriteLoader;
|
||||
import cz.jzitnik.game.annotations.BlockRegistry;
|
||||
import cz.jzitnik.game.entities.Block;
|
||||
import cz.jzitnik.game.logic.services.flowing.FlowingData;
|
||||
import cz.jzitnik.game.sprites.Lava;
|
||||
import cz.jzitnik.game.sprites.Water;
|
||||
|
||||
@BlockRegistry(value = "lava", drops = "lava_bucket")
|
||||
|
@ -0,0 +1,16 @@
|
||||
package cz.jzitnik.game.entities.items.registry.blocks;
|
||||
|
||||
import cz.jzitnik.game.SpriteLoader;
|
||||
import cz.jzitnik.game.annotations.BlockRegistry;
|
||||
import cz.jzitnik.game.entities.Block;
|
||||
import cz.jzitnik.game.entities.items.ItemType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@BlockRegistry("oak_leaves")
|
||||
public class OakLeavesBlock extends Block {
|
||||
public OakLeavesBlock() {
|
||||
super("oak_leaves", SpriteLoader.SPRITES.OAK_LEAF, 1, ItemType.SHEARS,
|
||||
new ArrayList<>());
|
||||
}
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package cz.jzitnik.game.entities.items.registry.blocks;
|
||||
|
||||
import cz.jzitnik.game.SpriteLoader;
|
||||
import cz.jzitnik.game.annotations.BlockRegistry;
|
||||
import cz.jzitnik.game.entities.Block;
|
||||
import cz.jzitnik.game.logic.services.saplings.SaplingData;
|
||||
|
||||
@BlockRegistry("oak_sapling")
|
||||
public class OakSaplingBlock extends Block {
|
||||
public OakSaplingBlock() {
|
||||
super("oak_sapling", SpriteLoader.SPRITES.OAK_SAPLING, 0);
|
||||
setData(new SaplingData());
|
||||
}
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package cz.jzitnik.game.entities.items.registry.items;
|
||||
|
||||
import cz.jzitnik.game.SpriteLoader;
|
||||
import cz.jzitnik.game.annotations.ItemRegistry;
|
||||
import cz.jzitnik.game.entities.items.Item;
|
||||
import cz.jzitnik.game.entities.items.ItemType;
|
||||
|
||||
@ItemRegistry("apple")
|
||||
public class AppleItem extends Item {
|
||||
public AppleItem() {
|
||||
super("apple", "Apple", ItemType.FOOD, SpriteLoader.SPRITES.ITEM_APPLE, 2);
|
||||
}
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package cz.jzitnik.game.entities.items.registry.items;
|
||||
|
||||
import cz.jzitnik.game.SpriteLoader;
|
||||
import cz.jzitnik.game.annotations.ItemRegistry;
|
||||
import cz.jzitnik.game.entities.items.Item;
|
||||
import cz.jzitnik.game.entities.items.ItemType;
|
||||
|
||||
@ItemRegistry("oak_leaves")
|
||||
public class OakLeavesItem extends Item {
|
||||
public OakLeavesItem() {
|
||||
super("oak_leaves", "Oak leaves", ItemType.BLOCK, SpriteLoader.SPRITES.ITEM_OAK_LEAF);
|
||||
}
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package cz.jzitnik.game.entities.items.registry.items;
|
||||
|
||||
import cz.jzitnik.game.SpriteLoader;
|
||||
import cz.jzitnik.game.annotations.ItemRegistry;
|
||||
import cz.jzitnik.game.entities.items.Item;
|
||||
import cz.jzitnik.game.entities.items.ItemType;
|
||||
|
||||
@ItemRegistry("oak_sapling")
|
||||
public class OakSaplingItem extends Item {
|
||||
public OakSaplingItem() {
|
||||
super("oak_sapling", "Oak sapling", ItemType.BLOCK, SpriteLoader.SPRITES.OAK_SAPLING);
|
||||
}
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package cz.jzitnik.game.entities.items.registry.items;
|
||||
|
||||
import cz.jzitnik.game.SpriteLoader;
|
||||
import cz.jzitnik.game.annotations.ItemRegistry;
|
||||
import cz.jzitnik.game.entities.items.Item;
|
||||
import cz.jzitnik.game.entities.items.ItemType;
|
||||
|
||||
@ItemRegistry("obsidian")
|
||||
public class ObsidianItem extends Item {
|
||||
public ObsidianItem() {
|
||||
super("obsidian", "Obsidian", ItemType.BLOCK, SpriteLoader.SPRITES.ITEM_OBSIDIAN);
|
||||
}
|
||||
}
|
@ -4,10 +4,8 @@ import cz.jzitnik.game.entities.Block;
|
||||
import cz.jzitnik.game.Game;
|
||||
import cz.jzitnik.game.SpriteLoader;
|
||||
import cz.jzitnik.game.entities.items.ItemBlockSupplier;
|
||||
import cz.jzitnik.game.entities.items.ItemType;
|
||||
import cz.jzitnik.game.sprites.Steve;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
@ -36,9 +34,6 @@ public class Generation {
|
||||
// Spawn player at a valid starting point
|
||||
world[terrainHeight[256] - 1][256].add(steveBlock2);
|
||||
world[terrainHeight[256] - 2][256].add(steveBlock);
|
||||
|
||||
game.getInventory().addItem(ItemBlockSupplier.getItem("water_bucket"));
|
||||
game.getInventory().addItem(ItemBlockSupplier.getItem("lava_bucket"));
|
||||
}
|
||||
|
||||
private static void initializeWorld(List<Block>[][] world) {
|
||||
@ -101,6 +96,7 @@ public class Generation {
|
||||
if (treeBase - 3 < 0)
|
||||
continue;
|
||||
|
||||
// Place trunk
|
||||
for (int j = 0; j < 3; j++) {
|
||||
if (treeBase - j >= 0) {
|
||||
world[treeBase - j - 1][i].add(ItemBlockSupplier.getBlock("oak_log"));
|
||||
@ -109,19 +105,22 @@ public class Generation {
|
||||
|
||||
int leafY = treeBase - 4;
|
||||
|
||||
// 2D Pyramid-shaped leaf placement
|
||||
for (int layer = 0; layer < 3; layer++) {
|
||||
int size = 5 - (layer * 2);
|
||||
int offsetY = leafY - layer;
|
||||
|
||||
for (int dx = -size / 2; dx <= size / 2; dx++) {
|
||||
for (int dy = -size / 2; dy <= size / 2; dy++) {
|
||||
if (i + dx >= 0 && i + dx < world[0].length && offsetY >= 0) {
|
||||
world[offsetY][i + dx].add(new Block("oak_leaves", SpriteLoader.SPRITES.OAK_LEAF, 1,
|
||||
ItemType.SHEARS, new ArrayList<>()));
|
||||
}
|
||||
int x = i + dx;
|
||||
int y = offsetY;
|
||||
|
||||
if (x >= 0 && x < world[0].length && y >= 0) {
|
||||
world[y][x].add(ItemBlockSupplier.getBlock("oak_leaves"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -5,5 +5,5 @@ import cz.jzitnik.game.Game;
|
||||
public interface CustomPlaceHandler {
|
||||
boolean place(Game game, int x, int y);
|
||||
|
||||
void mine(Game game, int x, int y);
|
||||
boolean mine(Game game, int x, int y);
|
||||
}
|
||||
|
@ -18,9 +18,11 @@ public class DefaultPlaceHandler implements CustomPlaceHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mine(Game game, int x, int y) {
|
||||
public boolean mine(Game game, int x, int y) {
|
||||
var blocks = game.getWorld()[y][x];
|
||||
|
||||
blocks.removeAll(blocks.stream().filter(i -> !i.getBlockId().equals("air")).toList());
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -47,7 +47,7 @@ public class BedPlaceHandler implements CustomPlaceHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mine(Game game, int x, int y) {
|
||||
public boolean mine(Game game, int x, int y) {
|
||||
var blocks = game.getWorld()[y][x];
|
||||
Block block = blocks.stream().filter(b -> b.getBlockId().equals("bed")).toList().getFirst();
|
||||
|
||||
@ -62,5 +62,7 @@ public class BedPlaceHandler implements CustomPlaceHandler {
|
||||
}
|
||||
|
||||
blocks.removeAll(blocks.stream().filter(i -> !i.getBlockId().equals("air")).toList());
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -1,33 +0,0 @@
|
||||
package cz.jzitnik.game.handlers.place.handlers;
|
||||
|
||||
import cz.jzitnik.game.Game;
|
||||
import cz.jzitnik.game.annotations.PlaceHandler;
|
||||
import cz.jzitnik.game.entities.Block;
|
||||
import cz.jzitnik.game.entities.items.Item;
|
||||
import cz.jzitnik.game.handlers.place.CustomPlaceHandler;
|
||||
|
||||
@PlaceHandler("bucket")
|
||||
public class BucketPlaceHandler implements CustomPlaceHandler {
|
||||
@Override
|
||||
public boolean place(Game game, int x, int y) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mine(Game game, int x, int y) {
|
||||
var world = game.getWorld();
|
||||
var blocks = world[y][x];
|
||||
var flowingBlocks = blocks.stream().filter(Block::isFlowing).toList();
|
||||
|
||||
if (flowingBlocks.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
var flowingBlock = flowingBlocks.getFirst();
|
||||
var items = flowingBlock.getDrops();
|
||||
for (Item item : items) {
|
||||
game.getInventory().addItem(item);
|
||||
}
|
||||
blocks.remove(flowingBlock);
|
||||
}
|
||||
}
|
@ -36,7 +36,7 @@ public class DoorPlaceHandler implements CustomPlaceHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mine(Game game, int x, int y) {
|
||||
public boolean mine(Game game, int x, int y) {
|
||||
var blocks = game.getWorld()[y][x];
|
||||
Block block = blocks.stream().filter(b -> b.getBlockId().equals("oak_door")).toList().getFirst();
|
||||
|
||||
@ -53,5 +53,7 @@ public class DoorPlaceHandler implements CustomPlaceHandler {
|
||||
}
|
||||
|
||||
blocks.removeAll(blocks.stream().filter(i -> !i.getBlockId().equals("air")).toList());
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,55 @@
|
||||
package cz.jzitnik.game.handlers.place.handlers;
|
||||
|
||||
import cz.jzitnik.game.annotations.PlaceHandler;
|
||||
import cz.jzitnik.game.entities.Block;
|
||||
import cz.jzitnik.game.Game;
|
||||
import cz.jzitnik.game.entities.items.InventoryItem;
|
||||
import cz.jzitnik.game.entities.items.ItemBlockSupplier;
|
||||
import cz.jzitnik.game.entities.items.ItemType;
|
||||
import cz.jzitnik.game.handlers.place.CustomPlaceHandler;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
@PlaceHandler("oak_leaves")
|
||||
public class OakLeavesMineHandler implements CustomPlaceHandler {
|
||||
@Override
|
||||
public boolean place(Game game, int x, int y) {
|
||||
var blocks = game.getWorld()[y][x];
|
||||
var inventory = game.getInventory();
|
||||
|
||||
blocks.add(inventory.getItemInHand().get().getBlock().get());
|
||||
blocks.removeAll(blocks.stream().filter(Block::isFlowing).toList());
|
||||
|
||||
inventory.decreaseItemInHand();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean mine(Game game, int x, int y) {
|
||||
var blocks = game.getWorld()[y][x];
|
||||
|
||||
blocks.removeAll(blocks.stream().filter(i -> !i.getBlockId().equals("air")).toList());
|
||||
|
||||
Random random = new Random();
|
||||
int percentage = random.nextInt(100);
|
||||
|
||||
// If mined with sheers drop leaf
|
||||
if (game.getInventory().getItemInHand().isPresent() && game.getInventory().getItemInHand().get().getType() == ItemType.SHEARS) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (percentage < 2) {
|
||||
// Apple
|
||||
game.getInventory().addItem(ItemBlockSupplier.getItem("apple"));
|
||||
} else if (percentage < 2 + 4) {
|
||||
// Sticks
|
||||
game.getInventory().addItem(new InventoryItem(random.nextInt(2) + 1, ItemBlockSupplier.getItem("stick")));
|
||||
} else if (percentage < 2 + 4 + 5) {
|
||||
// Sapling
|
||||
game.getInventory().addItem(ItemBlockSupplier.getItem("oak_sapling"));
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
@ -97,18 +97,11 @@ public class FlowingLogic implements CustomLogicInterface {
|
||||
var targetBlocks = world[newY][newX];
|
||||
boolean hasWater = targetBlocks.stream().anyMatch(b -> b.getBlockId().equals("water"));
|
||||
boolean hasLava = targetBlocks.stream().anyMatch(b -> b.getBlockId().equals("lava"));
|
||||
boolean isLavaSource = hasLava && targetBlocks.stream().anyMatch(b -> ((FlowingData) b.getData()).isSource());
|
||||
|
||||
if (liquidId.equals("water") && hasLava) {
|
||||
if (isLavaSource) {
|
||||
world[newY][newX].add(ItemBlockSupplier.getBlock("obsidian"));
|
||||
} else {
|
||||
world[newY][newX].add(ItemBlockSupplier.getBlock("cobblestone"));
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (liquidId.equals("lava") && hasWater) {
|
||||
world[newY][newX].add(ItemBlockSupplier.getBlock("cobblestone"));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -29,7 +29,6 @@ public class LavaWaterLogic implements CustomLogicInterface {
|
||||
var water = blocks.stream().filter(block -> block.getBlockId().equals("water")).findFirst().get();
|
||||
var lava = blocks.stream().filter(block -> block.getBlockId().equals("lava")).findFirst().get();
|
||||
|
||||
var waterData = (FlowingData) water.getData();
|
||||
var lavaData = (FlowingData) lava.getData();
|
||||
|
||||
world[y][x].remove(water);
|
||||
|
@ -0,0 +1,17 @@
|
||||
package cz.jzitnik.game.logic.services.saplings;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class SaplingData {
|
||||
private int growWait;
|
||||
|
||||
public SaplingData() {
|
||||
Random random = new Random();
|
||||
growWait = random.nextInt(270) + 30;
|
||||
}
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package cz.jzitnik.game.logic.services.saplings;
|
||||
|
||||
import cz.jzitnik.game.Game;
|
||||
import cz.jzitnik.game.annotations.CustomLogic;
|
||||
import cz.jzitnik.game.logic.CustomLogicInterface;
|
||||
|
||||
@CustomLogic
|
||||
public class SaplingLogic implements CustomLogicInterface {
|
||||
private static final int RADIUS = 30;
|
||||
|
||||
@Override
|
||||
public void nextIteration(Game game) {
|
||||
|
||||
}
|
||||
}
|
@ -140,7 +140,7 @@ public class CowLogic
|
||||
if (countCows(rstartX, rendX, rstartY, rendY, game) < 3 && random.nextInt(100) < 2) {
|
||||
var spawnLocations = cowCanSpawn(rstartX, rendX, playerY, game);
|
||||
if (!spawnLocations.isEmpty()) {
|
||||
for (int i = 0; i < Math.min(random.nextInt(3) + 2, spawnLocations.size()); i++) {
|
||||
for (int i = 0; i < Math.min(4, spawnLocations.size()); i++) {
|
||||
var randomLocation = getRandomEntry(spawnLocations);
|
||||
int x = randomLocation.getKey();
|
||||
int y = randomLocation.getValue();
|
||||
|
@ -105,7 +105,7 @@ public class PigLogic
|
||||
|
||||
@Override
|
||||
public void spawn(int playerX, int playerY, Game game, Terminal terminal) {
|
||||
// Cordinates where player can see
|
||||
// Coordinates where player can see
|
||||
int[] data = ScreenMovingCalculationProvider.calculate(playerX, playerY, terminal.getHeight(),
|
||||
terminal.getWidth(), game.getWorld()[0].length, game.getWorld().length);
|
||||
var world = game.getWorld();
|
||||
@ -140,7 +140,7 @@ public class PigLogic
|
||||
if (countPrasata(rstartX, rendX, rstartY, rendY, game) < 3 && random.nextInt(100) < 2) {
|
||||
var spawnLocations = pigCanSpawn(rstartX, rendX, playerY, game);
|
||||
if (!spawnLocations.isEmpty()) {
|
||||
for (int i = 0; i < Math.min(random.nextInt(3) + 2, spawnLocations.size()); i++) {
|
||||
for (int i = 0; i < Math.min(4, spawnLocations.size()); i++) {
|
||||
var randomLocation = getRandomEntry(spawnLocations);
|
||||
int x = randomLocation.getKey();
|
||||
int y = randomLocation.getValue();
|
||||
|
@ -153,7 +153,7 @@ public class SheepLogic
|
||||
if (countSheep(rstartX, rendX, rstartY, rendY, game) < 3 && random.nextInt(100) < 2) {
|
||||
var spawnLocations = sheepCanSpawn(rstartX, rendX, playerY, game);
|
||||
if (!spawnLocations.isEmpty()) {
|
||||
for (int i = 0; i < Math.min(random.nextInt(3) + 2, spawnLocations.size()); i++) {
|
||||
for (int i = 0; i < Math.min(4, spawnLocations.size()); i++) {
|
||||
var randomLocation = getRandomEntry(spawnLocations);
|
||||
int x = randomLocation.getKey();
|
||||
int y = randomLocation.getValue();
|
||||
|
@ -1,427 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<!DOCTYPE module PUBLIC
|
||||
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
|
||||
"https://checkstyle.org/dtds/configuration_1_3.dtd">
|
||||
|
||||
<!-- This is a checkstyle configuration file. For descriptions of
|
||||
what the following rules do, please see the checkstyle configuration
|
||||
page at https://checkstyle.sourceforge.io/config.html -->
|
||||
|
||||
<module name="Checker">
|
||||
|
||||
<module name="FileTabCharacter">
|
||||
<!-- Checks that there are no tab characters in the file. -->
|
||||
</module>
|
||||
|
||||
<module name="RegexpSingleline">
|
||||
<!-- Checks that TODOs don't have stuff in parenthesis, e.g., username. -->
|
||||
<property name="format" value="((//.*)|(\*.*))TODO\(" />
|
||||
<property name="message" value="TODO comments must not include usernames." />
|
||||
<property name="severity" value="error" />
|
||||
</module>
|
||||
|
||||
<module name="RegexpSingleline">
|
||||
<property name="format" value="\s+$"/>
|
||||
<property name="message" value="Trailing whitespace"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="RegexpSingleline">
|
||||
<property name="format" value="Throwables.propagate\("/>
|
||||
<property name="message" value="Throwables.propagate is deprecated"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<!-- Prevent *Tests.java as tools may not pick them up -->
|
||||
<module name="RegexpOnFilename">
|
||||
<property name="fileNamePattern" value=".*Tests\.java$" />
|
||||
</module>
|
||||
|
||||
<!-- All Java AST specific tests live under TreeWalker module. -->
|
||||
<module name="TreeWalker">
|
||||
|
||||
<!-- Allow use of comment to suppress javadocstyle -->
|
||||
<module name="SuppressionCommentFilter">
|
||||
<property name="offCommentFormat" value="CHECKSTYLE.OFF\: ([\w\|]+)"/>
|
||||
<property name="onCommentFormat" value="CHECKSTYLE.ON\: ([\w\|]+)"/>
|
||||
<property name="checkFormat" value="$1"/>
|
||||
</module>
|
||||
|
||||
<module name="TodoComment">
|
||||
<!-- Checks that disallowed strings are not used in comments. -->
|
||||
<property name="format" value="(FIXME)|(XXX)|(@author)" />
|
||||
</module>
|
||||
|
||||
<!--
|
||||
|
||||
IMPORT CHECKS
|
||||
|
||||
-->
|
||||
|
||||
<module name="RedundantImport">
|
||||
<!-- Checks for redundant import statements. -->
|
||||
<property name="severity" value="error"/>
|
||||
<message key="import.redundancy"
|
||||
value="Redundant import {0}."/>
|
||||
</module>
|
||||
|
||||
<module name="ImportOrder">
|
||||
<property name="severity" value="error"/>
|
||||
<!-- This ensures that static imports go first. -->
|
||||
<property name="option" value="top"/>
|
||||
<property name="sortStaticImportsAlphabetically" value="true"/>
|
||||
<property name="tokens" value="STATIC_IMPORT, IMPORT"/>
|
||||
<message key="import.ordering"
|
||||
value="Import {0} appears after other imports that it should precede"/>
|
||||
</module>
|
||||
|
||||
<module name="AvoidStarImport">
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="IllegalImport">
|
||||
<property name="illegalPkgs" value="autovalue.shaded, avro.shaded, bk-shade, com.google.api.client.repackaged, com.google.appengine.repackaged, io.netty.util.internal"/>
|
||||
</module>
|
||||
|
||||
<module name="RedundantModifier">
|
||||
<!-- Checks for redundant modifiers on various symbol definitions.
|
||||
See: http://checkstyle.sourceforge.net/config_modifier.html#RedundantModifier
|
||||
-->
|
||||
<property name="tokens" value="METHOD_DEF, VARIABLE_DEF, ANNOTATION_FIELD_DEF, INTERFACE_DEF, CLASS_DEF, ENUM_DEF"/>
|
||||
</module>
|
||||
|
||||
<!--
|
||||
IllegalImport cannot blacklist classes, and c.g.api.client.util is used for some shaded
|
||||
code and some useful code. So we need to fall back to Regexp.
|
||||
-->
|
||||
<module name="RegexpSinglelineJava">
|
||||
<property name="format" value="com\.google\.api\.client\.util\.(ByteStreams|Charsets|Collections2|Joiner|Lists|Maps|Objects|Preconditions|Sets|Strings|Throwables)"/>
|
||||
</module>
|
||||
|
||||
<!--
|
||||
Require static importing from Preconditions.
|
||||
-->
|
||||
<module name="RegexpSinglelineJava">
|
||||
<property name="format" value="^import com.google.common.base.Preconditions;$"/>
|
||||
<property name="message" value="Static import functions from Guava Preconditions"/>
|
||||
</module>
|
||||
|
||||
<module name="UnusedImports">
|
||||
<property name="severity" value="error"/>
|
||||
<property name="processJavadoc" value="true"/>
|
||||
<message key="import.unused"
|
||||
value="Unused import: {0}."/>
|
||||
</module>
|
||||
|
||||
<!--
|
||||
|
||||
JAVADOC CHECKS
|
||||
|
||||
-->
|
||||
|
||||
<!-- Checks for Javadoc comments. -->
|
||||
<!-- See https://checkstyle.sourceforge.io/config_javadoc.html -->
|
||||
<module name="JavadocMethod">
|
||||
<property name="severity" value="error"/>
|
||||
<property name="allowMissingParamTags" value="true"/>
|
||||
<property name="allowMissingReturnTag" value="true"/>
|
||||
</module>
|
||||
|
||||
<!-- Check that paragraph tags are used correctly in Javadoc. -->
|
||||
<module name="JavadocParagraph"/>
|
||||
|
||||
<module name="JavadocType">
|
||||
<property name="scope" value="protected"/>
|
||||
<property name="severity" value="error"/>
|
||||
<property name="allowMissingParamTags" value="true"/>
|
||||
</module>
|
||||
|
||||
<module name="JavadocStyle">
|
||||
<property name="severity" value="error"/>
|
||||
<property name="checkHtml" value="true"/>
|
||||
</module>
|
||||
|
||||
<!--
|
||||
|
||||
NAMING CHECKS
|
||||
|
||||
-->
|
||||
|
||||
<!-- Item 38 - Adhere to generally accepted naming conventions -->
|
||||
|
||||
<module name="PackageName">
|
||||
<!-- Validates identifiers for package names against the
|
||||
supplied expression. -->
|
||||
<!-- Here the default checkstyle rule restricts package name parts to
|
||||
seven characters, this is not in line with common practice at Google.
|
||||
-->
|
||||
<property name="format" value="^[a-z]+(\.[a-z][a-z0-9]{1,})*$"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="TypeNameCheck">
|
||||
<!-- Validates static, final fields against the
|
||||
expression "^[A-Z][a-zA-Z0-9]*$". -->
|
||||
<metadata name="altname" value="TypeName"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="ConstantNameCheck">
|
||||
<!-- Validates non-private, static, final fields against the supplied
|
||||
public/package final fields "^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$". -->
|
||||
<metadata name="altname" value="ConstantName"/>
|
||||
<property name="applyToPublic" value="true"/>
|
||||
<property name="applyToProtected" value="true"/>
|
||||
<property name="applyToPackage" value="true"/>
|
||||
<property name="applyToPrivate" value="false"/>
|
||||
<property name="format" value="^([A-Z][A-Za-z0-9_]*|FLAG_.*)$"/>
|
||||
<message key="name.invalidPattern"
|
||||
value="Variable ''{0}'' should be in ALL_CAPS (if it is a constant) or be private (otherwise)."/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="StaticVariableNameCheck">
|
||||
<!-- Validates static, non-final fields against the supplied
|
||||
expression "^[a-z][a-zA-Z0-9]*_?$". -->
|
||||
<metadata name="altname" value="StaticVariableName"/>
|
||||
<property name="applyToPublic" value="true"/>
|
||||
<property name="applyToProtected" value="true"/>
|
||||
<property name="applyToPackage" value="true"/>
|
||||
<property name="applyToPrivate" value="true"/>
|
||||
<property name="format" value="^[a-z][a-zA-Z0-9]*_?$"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="MemberNameCheck">
|
||||
<!-- Validates non-static members against the supplied expression. -->
|
||||
<metadata name="altname" value="MemberName"/>
|
||||
<property name="applyToPublic" value="true"/>
|
||||
<property name="applyToProtected" value="true"/>
|
||||
<property name="applyToPackage" value="true"/>
|
||||
<property name="applyToPrivate" value="true"/>
|
||||
<property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="MethodNameCheck">
|
||||
<!-- Validates identifiers for method names. -->
|
||||
<metadata name="altname" value="MethodName"/>
|
||||
<property name="format" value="(^[a-z][a-zA-Z0-9]*(_[a-zA-Z0-9]+)*$|Void)"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="ParameterName">
|
||||
<!-- Validates identifiers for method parameters against the
|
||||
expression "^[a-z][a-zA-Z0-9]*$". -->
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="LocalFinalVariableName">
|
||||
<!-- Validates identifiers for local final variables against the
|
||||
expression "^[a-z][a-zA-Z0-9]*$". -->
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="LocalVariableName">
|
||||
<!-- Validates identifiers for local variables against the
|
||||
expression "^[a-z][a-zA-Z0-9]*$". -->
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<!-- Type parameters must be either one of the four blessed letters
|
||||
T, K, V, W, X or else be capital-case terminated with a T,
|
||||
such as MyGenericParameterT -->
|
||||
<module name="ClassTypeParameterName">
|
||||
<property name="format" value="^(((T|K|V|W|X|R)[0-9]*)|([A-Z][a-z][a-zA-Z]*))$"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="MethodTypeParameterName">
|
||||
<property name="format" value="^(((T|K|V|W|X|R)[0-9]*)|([A-Z][a-z][a-zA-Z]*T))$"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="InterfaceTypeParameterName">
|
||||
<property name="format" value="^(((T|K|V|W|X|R)[0-9]*)|([A-Z][a-z][a-zA-Z]*T))$"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="LeftCurly">
|
||||
<!-- Checks for placement of the left curly brace ('{'). -->
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="RightCurly">
|
||||
<!-- Checks right curlies on CATCH, ELSE, and TRY blocks are on
|
||||
the same line. e.g., the following example is fine:
|
||||
<pre>
|
||||
if {
|
||||
...
|
||||
} else
|
||||
</pre>
|
||||
-->
|
||||
<!-- This next example is not fine:
|
||||
<pre>
|
||||
if {
|
||||
...
|
||||
}
|
||||
else
|
||||
</pre>
|
||||
-->
|
||||
<property name="option" value="same"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<!-- Checks for braces around if and else blocks -->
|
||||
<module name="NeedBraces">
|
||||
<property name="severity" value="error"/>
|
||||
<property name="tokens" value="LITERAL_IF, LITERAL_ELSE, LITERAL_FOR, LITERAL_WHILE, LITERAL_DO"/>
|
||||
</module>
|
||||
|
||||
<module name="UpperEll">
|
||||
<!-- Checks that long constants are defined with an upper ell.-->
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="FallThrough">
|
||||
<!-- Warn about falling through to the next case statement. Similar to
|
||||
javac -Xlint:fallthrough, but the check is suppressed if a single-line comment
|
||||
on the last non-blank line preceding the fallen-into case contains 'fall through' (or
|
||||
some other variants that we don't publicized to promote consistency).
|
||||
-->
|
||||
<property name="reliefPattern"
|
||||
value="fall through|Fall through|fallthru|Fallthru|falls through|Falls through|fallthrough|Fallthrough|No break|NO break|no break|continue on"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<!-- Checks for over-complicated boolean expressions. -->
|
||||
<module name="SimplifyBooleanExpression"/>
|
||||
|
||||
<!-- Detects empty statements (standalone ";" semicolon). -->
|
||||
<module name="EmptyStatement"/>
|
||||
|
||||
<!--
|
||||
|
||||
MODIFIERS CHECKS
|
||||
|
||||
-->
|
||||
|
||||
<module name="ModifierOrder">
|
||||
<!-- Warn if modifier order is inconsistent with JLS3 8.1.1, 8.3.1, and
|
||||
8.4.3. The prescribed order is:
|
||||
public, protected, private, abstract, static, final, transient, volatile,
|
||||
synchronized, native, strictfp
|
||||
-->
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
|
||||
<!--
|
||||
|
||||
WHITESPACE CHECKS
|
||||
|
||||
-->
|
||||
|
||||
<module name="WhitespaceAround">
|
||||
<!-- Checks that various tokens are surrounded by whitespace.
|
||||
This includes most binary operators and keywords followed
|
||||
by regular or curly braces.
|
||||
-->
|
||||
<property name="tokens" value="ASSIGN, BAND, BAND_ASSIGN, BOR,
|
||||
BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN,
|
||||
EQUAL, GE, GT, LAND, LE, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE,
|
||||
LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_RETURN,
|
||||
LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, LOR, LT, MINUS,
|
||||
MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION,
|
||||
SL, SL_ASSIGN, SR_ASSIGN, STAR, STAR_ASSIGN"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="WhitespaceAfter">
|
||||
<!-- Checks that commas, semicolons and typecasts are followed by
|
||||
whitespace.
|
||||
-->
|
||||
<property name="tokens" value="COMMA, SEMI, TYPECAST"/>
|
||||
</module>
|
||||
|
||||
<module name="NoWhitespaceAfter">
|
||||
<!-- Checks that there is no whitespace after various unary operators.
|
||||
Linebreaks are allowed.
|
||||
-->
|
||||
<property name="tokens" value="BNOT, DEC, DOT, INC, LNOT, UNARY_MINUS,
|
||||
UNARY_PLUS"/>
|
||||
<property name="allowLineBreaks" value="true"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="NoWhitespaceBefore">
|
||||
<!-- Checks that there is no whitespace before various unary operators.
|
||||
Linebreaks are allowed.
|
||||
-->
|
||||
<property name="tokens" value="SEMI, DOT, POST_DEC, POST_INC"/>
|
||||
<property name="allowLineBreaks" value="true"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="OperatorWrap">
|
||||
<!-- Checks that operators like + and ? appear at newlines rather than
|
||||
at the end of the previous line.
|
||||
-->
|
||||
<property name="option" value="NL"/>
|
||||
<property name="tokens" value="BAND, BOR, BSR, BXOR, DIV, EQUAL,
|
||||
GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR, LT, MINUS, MOD,
|
||||
NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR "/>
|
||||
</module>
|
||||
|
||||
<module name="OperatorWrap">
|
||||
<!-- Checks that assignment operators are at the end of the line. -->
|
||||
<property name="option" value="eol"/>
|
||||
<property name="tokens" value="ASSIGN"/>
|
||||
</module>
|
||||
|
||||
<module name="ParenPad">
|
||||
<!-- Checks that there is no whitespace before close parens or after
|
||||
open parens.
|
||||
-->
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
</module>
|
||||
|
||||
<!--
|
||||
|
||||
LENGTH and CODING CHECKS
|
||||
|
||||
-->
|
||||
|
||||
<module name="LineLength">
|
||||
<!-- Checks if a line is too long. -->
|
||||
<property name="max" value="120"/>
|
||||
<property name="severity" value="error"/>
|
||||
|
||||
<!--
|
||||
The default ignore pattern exempts the following elements:
|
||||
- import statements
|
||||
- long URLs inside comments
|
||||
-->
|
||||
|
||||
<property name="ignorePattern"
|
||||
value="^(package .*;\s*)|(import .*;\s*)|( *\* .*https?://.*)$"/>
|
||||
</module>
|
||||
</module>
|
25
src/main/resources/textures/items/apple.ans
Normal file
25
src/main/resources/textures/items/apple.ans
Normal file
@ -0,0 +1,25 @@
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;127;54;0m [48;2;111;47;0m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;117;39;2m [48;2;117;38;2m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;125;56;12m [48;2;124;54;13m [48;2;84;36;9m [48;2;84;36;10m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;128;57;14m [48;2;128;57;17m [48;2;84;36;9m [48;2;84;36;10m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;117;38;2m [48;2;117;39;2m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;156;16;22m [48;2;156;16;20m [48;2;117;39;0m [48;2;101;37;7m [48;2;84;36;9m [48;2;117;39;1m [48;2;117;39;2m [48;2;117;39;0m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;158;17;26m [48;2;156;16;22m [48;2;117;39;0m [48;2;100;38;5m [48;2;84;36;9m [48;2;117;38;4m [48;2;118;38;4m [48;2;116;39;2m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;156;16;20m [48;2;180;18;30m [48;2;182;20;35m [48;2;255;149;160m [48;2;166;10;22m [48;2;180;19;30m [48;2;84;36;9m [48;2;115;26;15m [48;2;156;16;22m [48;2;220;22;36m [48;2;219;23;36m [48;2;181;19;30m [48;2;116;40;0m [48;2;117;39;2m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [48;2;153;16;22m [48;2;153;15;21m [48;2;177;19;30m [48;2;249;31;44m [48;2;251;30;43m [48;2;248;92;101m [48;2;255;163;162m [48;2;255;160;160m [48;2;251;163;165m [48;2;254;162;161m [48;2;255;161;163m [48;2;254;101;106m [48;2;255;101;111m [48;2;249;31;45m [48;2;176;20;22m [48;2;178;21;27m [48;2;117;39;2m [48;2;116;39;2m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [48;2;155;16;22m [48;2;154;18;20m [48;2;180;19;30m [48;2;253;29;43m [48;2;255;27;46m [48;2;254;93;104m [48;2;255;152;158m [48;2;255;150;159m [48;2;255;149;159m [48;2;255;150;159m [48;2;255;94;105m [48;2;255;97;106m [48;2;255;28;45m [48;2;181;20;30m [48;2;181;18;28m [48;2;117;39;2m [48;2;116;39;2m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [48;2;155;16;22m [48;2;154;17;20m [48;2;180;19;30m [48;2;253;29;43m [48;2;255;28;43m [48;2;253;28;44m [48;2;221;23;39m [48;2;255;28;43m [48;2;254;28;45m [48;2;180;19;30m [48;2;112;40;0m [48;2;116;39;2m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [48;2;155;16;22m [48;2;154;16;20m [48;2;181;19;30m [48;2;239;27;39m [48;2;238;25;39m [48;2;255;28;43m [48;2;239;26;40m [48;2;239;26;42m [48;2;255;28;43m [48;2;247;29;42m [48;2;239;26;40m [48;2;239;26;41m [48;2;221;23;37m [48;2;255;28;43m [48;2;254;28;43m [48;2;201;20;35m [48;2;98;23;5m [48;2;100;25;8m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [48;2;155;16;22m [48;2;153;16;19m [48;2;180;19;30m [48;2;222;22;37m [48;2;221;23;37m [48;2;255;28;43m [48;2;222;21;34m [48;2;221;23;37m [48;2;255;28;43m [48;2;237;26;41m [48;2;221;23;37m [48;2;221;23;36m [48;2;221;23;37m [48;2;255;28;43m [48;2;255;27;43m [48;2;221;23;37m [48;2;78;6;11m [48;2;83;8;13m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [48;2;116;39;2m [48;2;115;39;4m [48;2;180;19;30m [48;2;181;18;30m [48;2;180;20;28m [48;2;221;23;37m [48;2;221;23;39m [48;2;221;23;37m [48;2;180;19;28m [48;2;180;19;30m [48;2;182;18;30m [48;2;221;23;37m [48;2;219;23;39m [48;2;180;19;30m [48;2;254;28;44m [48;2;254;28;43m [48;2;221;23;37m [48;2;77;7;11m [48;2;83;8;13m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [48;2;116;39;0m [48;2;113;40;4m [48;2;180;19;30m [48;2;180;20;28m [48;2;218;24;36m [48;2;220;22;41m [48;2;218;23;37m [48;2;180;19;30m [48;2;180;19;28m [48;2;220;22;41m [48;2;218;25;43m [48;2;180;19;30m [48;2;255;27;44m [48;2;255;27;43m [48;2;218;23;41m [48;2;77;7;12m [48;2;83;8;13m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [48;2;116;39;2m [48;2;112;37;3m [48;2;180;19;30m [48;2;200;21;33m [48;2;221;23;37m [48;2;180;19;30m [48;2;182;18;30m [48;2;254;28;44m [48;2;254;28;43m [48;2;180;19;30m [48;2;80;6;12m [48;2;83;8;13m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;117;41;3m [48;2;179;20;28m [48;2;180;19;30m [48;2;219;24;40m [48;2;221;23;38m [48;2;180;18;30m [48;2;180;19;29m [48;2;179;18;29m [48;2;180;19;30m [48;2;178;21;26m [48;2;221;23;35m [48;2;179;20;29m [48;2;182;19;29m [48;2;84;10;15m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;117;39;2m [48;2;184;18;30m [48;2;180;18;30m [48;2;180;19;30m [48;2;219;24;40m [48;2;221;22;35m [48;2;180;19;30m [48;2;179;20;30m [48;2;179;19;30m [48;2;179;20;28m [48;2;178;18;25m [48;2;221;23;35m [48;2;179;18;29m [48;2;183;17;31m [48;2;84;8;13m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;117;39;2m [48;2;156;16;21m [48;2;156;16;22m [48;2;180;19;30m [48;2;199;20;33m [48;2;221;23;37m [48;2;218;23;39m [48;2;180;19;30m [48;2;156;16;22m [48;2;156;15;20m [48;2;84;8;13m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;81;8;21m [48;2;80;10;13m [48;2;155;17;20m [48;2;177;20;30m [48;2;180;19;30m [48;2;153;16;19m [48;2;153;14;21m [48;2;152;16;21m [48;2;179;19;29m [48;2;152;17;20m [48;2;83;7;13m [48;2;78;9;12m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;83;8;13m [48;2;85;7;13m [48;2;156;16;21m [48;2;178;19;29m [48;2;180;19;30m [48;2;156;16;20m [48;2;156;16;22m [48;2;179;19;30m [48;2;179;20;29m [48;2;154;16;23m [48;2;82;9;9m [48;2;83;8;13m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;84;8;13m [48;2;121;43;8m [48;2;117;39;2m [48;2;84;8;13m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;81;11;11m [48;2;127;46;11m [48;2;115;46;11m [48;2;81;11;11m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
25
src/main/resources/textures/items/oak_leaves.ans
Normal file
25
src/main/resources/textures/items/oak_leaves.ans
Normal file
@ -0,0 +1,25 @@
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;43;61;29m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;48;66;32m [49m [49m [48;2;76;115;52m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;51;71;33m [48;2;63;93;43m [48;2;56;82;38m [48;2;63;93;43m [48;2;43;61;29m [49m [49m [48;2;52;76;36m [48;2;43;61;29m [48;2;63;93;43m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;76;115;52m [48;2;63;93;43m [48;2;41;61;29m [48;2;42;58;28m [48;2;43;61;29m [49m [49m [49m [49m [49m [49m [48;2;76;115;52m [48;2;52;76;35m [48;2;52;76;34m [49m [49m [48;2;49;71;33m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [48;2;55;82;37m [48;2;51;71;33m [48;2;63;93;43m [48;2;60;85;40m [49m [49m [48;2;41;61;29m [48;2;78;115;52m [48;2;72;109;49m [48;2;76;115;52m [48;2;44;63;30m [48;2;67;101;46m [49m [49m [48;2;43;61;29m [48;2;60;93;40m [48;2;59;87;40m [48;2;63;93;43m [48;2;60;93;40m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [48;2;76;115;52m [49m [49m [48;2;76;113;52m [48;2;63;93;43m [48;2;40;60;28m [49m [49m [48;2;42;60;28m [48;2;42;62;28m [48;2;43;61;29m [48;2;63;93;43m [49m [49m [48;2;42;60;28m [48;2;49;70;33m [48;2;42;60;28m [49m [49m [48;2;43;61;31m [49m [49m [49m [49m [48;2;77;115;52m [48;2;63;93;43m [48;2;76;115;52m [49m [49m [49m [49m [m
|
||||
[49m [49m [48;2;34;49;23m [48;2;35;49;23m [48;2;76;115;52m [48;2;63;93;43m [48;2;76;115;54m [48;2;47;70;32m [48;2;63;93;43m [49m [49m [48;2;76;116;52m [48;2;63;93;43m [48;2;59;87;40m [49m [49m [48;2;53;76;35m [48;2;51;71;33m [48;2;62;92;42m [48;2;43;61;29m [48;2;57;87;40m [49m [49m [48;2;76;115;52m [48;2;78;115;52m [48;2;45;69;31m [48;2;29;43;20m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [48;2;61;88;41m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;76;115;54m [48;2;76;113;52m [48;2;76;114;52m [49m [49m [48;2;63;93;43m [48;2;76;115;52m [48;2;49;71;33m [49m [49m [48;2;37;56;26m [49m [49m [48;2;37;56;26m [48;2;45;69;31m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [48;2;39;57;26m [48;2;34;49;23m [48;2;50;74;34m [49m [49m [48;2;43;63;29m [48;2;49;69;33m [48;2;48;73;32m [49m [49m [48;2;43;61;29m [48;2;51;74;34m [48;2;63;93;43m [49m [49m [48;2;76;114;52m [48;2;76;115;52m [48;2;49;71;33m [48;2;29;43;20m [48;2;27;39;18m [48;2;37;56;26m [49m [49m [48;2;45;68;31m [49m [49m [49m [49m [m
|
||||
[49m [49m [48;2;50;74;34m [48;2;34;49;23m [49m [49m [48;2;50;74;34m [48;2;50;74;35m [48;2;39;57;26m [48;2;34;49;23m [49m [49m [48;2;76;114;52m [48;2;76;115;52m [48;2;49;70;33m [49m [49m [49m [49m [49m [49m [48;2;37;56;26m [49m [49m [49m [49m [48;2;36;56;26m [49m [49m [49m [49m [48;2;45;69;31m [49m [49m [49m [49m [m
|
||||
[49m [49m [48;2;50;74;34m [48;2;44;65;30m [48;2;39;57;26m [48;2;34;49;23m [48;2;56;90;40m [48;2;39;57;26m [48;2;61;91;41m [48;2;39;57;26m [48;2;50;74;34m [49m [49m [49m [49m [48;2;76;115;52m [49m [49m [49m [49m [49m [49m [48;2;25;36;17m [48;2;29;43;20m [48;2;45;69;31m [48;2;24;36;16m [49m [49m [48;2;37;56;26m [48;2;36;56;26m [49m [49m [49m [49m [m
|
||||
[49m [49m [48;2;39;57;26m [48;2;37;57;26m [49m [49m [49m [49m [48;2;50;74;34m [48;2;61;89;41m [48;2;50;74;34m [49m [49m [48;2;61;91;40m [48;2;61;91;41m [48;2;32;46;21m [48;2;24;36;17m [49m [49m [49m [49m [48;2;37;56;26m [48;2;45;69;31m [49m [49m [48;2;24;36;16m [48;2;25;36;17m [48;2;29;43;20m [48;2;45;69;31m [49m [49m [m
|
||||
[49m [49m [48;2;39;57;26m [48;2;34;49;23m [48;2;61;91;41m [48;2;50;74;33m [48;2;47;70;32m [49m [49m [49m [49m [49m [49m [48;2;61;91;41m [48;2;49;73;33m [49m [49m [48;2;29;41;20m [48;2;24;36;17m [49m [49m [48;2;47;69;31m [48;2;24;36;16m [49m [49m [48;2;37;56;26m [48;2;29;43;20m [48;2;37;56;26m [49m [49m [m
|
||||
[49m [49m [48;2;61;91;41m [48;2;50;74;34m [49m [49m [48;2;61;91;41m [48;2;55;82;37m [48;2;50;74;34m [48;2;34;49;23m [49m [49m [48;2;34;49;23m [49m [49m [48;2;61;91;41m [48;2;60;94;40m [48;2;37;56;26m [48;2;29;43;21m [49m [49m [48;2;44;68;30m [48;2;25;36;17m [49m [49m [48;2;29;43;20m [48;2;37;56;26m [49m [49m [48;2;37;56;26m [48;2;35;52;24m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [48;2;32;48;20m [48;2;34;49;23m [48;2;63;91;41m [49m [49m [49m [49m [48;2;39;57;26m [49m [49m [48;2;44;67;30m [49m [49m [49m [49m [48;2;29;43;20m [48;2;33;49;22m [49m [49m [48;2;37;56;26m [48;2;25;36;17m [48;2;27;39;19m [48;2;31;43;20m [48;2;37;56;26m [48;2;45;69;31m [49m [49m [m
|
||||
[49m [49m [48;2;61;91;41m [48;2;50;74;34m [49m [49m [48;2;34;49;23m [48;2;38;55;25m [48;2;50;74;32m [48;2;34;49;23m [48;2;37;57;26m [49m [49m [48;2;50;74;34m [48;2;36;56;26m [48;2;37;56;26m [49m [49m [48;2;45;69;31m [49m [49m [49m [49m [48;2;33;50;24m [48;2;37;58;26m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [48;2;39;57;26m [48;2;43;61;28m [48;2;34;49;23m [48;2;50;74;34m [48;2;39;57;26m [48;2;49;73;33m [48;2;50;74;34m [48;2;61;91;41m [48;2;39;57;26m [48;2;45;65;30m [48;2;29;43;20m [48;2;25;36;16m [48;2;45;69;31m [48;2;31;46;21m [48;2;37;56;26m [48;2;44;68;30m [48;2;37;56;26m [48;2;37;57;26m [49m [49m [48;2;45;69;31m [49m [49m [m
|
||||
[49m [49m [48;2;50;74;34m [48;2;61;91;41m [49m [49m [48;2;48;72;32m [49m [49m [48;2;50;74;34m [48;2;39;57;26m [48;2;50;74;34m [48;2;47;69;32m [49m [49m [48;2;39;57;26m [48;2;39;58;27m [48;2;25;36;17m [49m [49m [48;2;25;36;17m [48;2;37;56;26m [48;2;29;43;20m [48;2;44;68;30m [48;2;28;41;19m [48;2;29;43;20m [48;2;37;56;26m [48;2;45;69;31m [49m [49m [m
|
||||
[49m [49m [48;2;61;91;41m [49m [49m [48;2;61;91;41m [48;2;39;56;24m [48;2;50;74;34m [48;2;60;90;40m [48;2;50;74;34m [49m [49m [48;2;50;74;34m [49m [49m [48;2;58;86;39m [48;2;42;63;28m [48;2;36;56;24m [49m [49m [48;2;25;36;17m [49m [49m [48;2;47;69;31m [48;2;39;59;27m [48;2;28;36;16m [48;2;37;56;26m [48;2;45;69;31m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [48;2;50;74;34m [48;2;61;91;43m [48;2;34;49;23m [49m [49m [48;2;61;91;41m [48;2;32;48;28m [48;2;39;57;26m [49m [49m [49m [49m [48;2;47;71;32m [48;2;37;56;26m [49m [49m [48;2;36;56;24m [49m [49m [49m [49m [48;2;24;38;16m [49m [49m [48;2;45;70;31m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [48;2;61;91;41m [48;2;50;74;34m [49m [49m [49m [49m [49m [49m [48;2;35;49;23m [48;2;60;89;40m [49m [49m [48;2;60;90;40m [48;2;31;43;20m [48;2;28;41;19m [48;2;39;56;26m [48;2;25;38;17m [49m [49m [48;2;29;43;20m [48;2;28;42;20m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;34;49;23m [48;2;38;57;26m [49m [49m [48;2;50;74;35m [48;2;39;57;26m [49m [49m [48;2;44;66;30m [48;2;37;56;26m [49m [49m [48;2;29;43;20m [48;2;37;56;26m [49m [49m [48;2;25;36;17m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;39;57;26m [49m [49m [48;2;50;74;34m [48;2;49;73;33m [48;2;45;69;31m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;61;91;41m [48;2;44;68;30m [49m [49m [48;2;45;69;31m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;43;65;30m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
25
src/main/resources/textures/items/obsidian.ans
Normal file
25
src/main/resources/textures/items/obsidian.ans
Normal file
@ -0,0 +1,25 @@
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;6;3;11m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;0;0;1m [48;2;29;19;41m [48;2;6;3;9m [48;2;0;0;1m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;16;12;27m [48;2;16;12;25m [48;2;27;20;43m [48;2;16;12;27m [48;2;38;29;60m [48;2;19;14;30m [48;2;16;12;27m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;38;29;60m [48;2;0;0;1m [48;2;8;6;14m [48;2;9;7;19m [48;2;17;12;27m [48;2;0;0;3m [48;2;16;12;27m [48;2;0;0;1m [48;2;6;3;11m [48;2;22;16;35m [48;2;19;14;30m [48;2;58;38;82m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [48;2;4;2;8m [48;2;16;12;27m [48;2;6;3;9m [48;2;0;0;1m [48;2;16;12;27m [48;2;37;25;54m [48;2;58;38;82m [48;2;6;3;11m [48;2;0;2;1m [48;2;0;0;1m [48;2;16;12;27m [48;2;11;7;19m [48;2;6;3;11m [48;2;7;3;11m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [48;2;4;3;7m [48;2;38;29;60m [48;2;27;20;43m [48;2;58;38;82m [48;2;12;8;23m [48;2;16;12;27m [48;2;6;3;11m [48;2;38;29;60m [48;2;27;20;43m [48;2;16;12;27m [48;2;3;1;6m [48;2;0;2;1m [48;2;6;3;11m [48;2;0;0;1m [48;2;6;3;9m [48;2;4;2;8m [48;2;16;12;27m [48;2;48;33;71m [48;2;16;12;27m [48;2;53;35;76m [49m [49m [49m [49m [m
|
||||
[49m [49m [48;2;5;2;9m [48;2;0;0;1m [48;2;8;5;15m [48;2;18;12;27m [48;2;7;3;11m [48;2;16;12;27m [48;2;13;9;23m [48;2;11;7;19m [48;2;16;12;27m [48;2;6;3;11m [48;2;0;0;1m [48;2;4;2;8m [48;2;6;3;11m [48;2;0;0;1m [48;2;4;2;8m [48;2;6;3;11m [48;2;36;24;51m [48;2;24;18;37m [49m [49m [m
|
||||
[49m [49m [48;2;1;0;3m [48;2;0;0;0m [48;2;0;0;1m [48;2;6;3;11m [48;2;32;24;51m [48;2;22;16;35m [48;2;16;12;27m [48;2;38;29;60m [48;2;58;38;82m [48;2;0;0;1m [48;2;16;12;27m [48;2;8;7;15m [48;2;36;29;60m [48;2;58;38;82m [48;2;19;14;30m [48;2;1;0;1m [48;2;0;0;1m [48;2;4;2;7m [48;2;4;0;7m [48;2;10;7;17m [48;2;4;2;7m [49m [49m [m
|
||||
[49m [49m [48;2;0;0;1m [48;2;38;25;55m [48;2;0;1;1m [48;2;9;6;15m [48;2;5;2;9m [48;2;16;12;27m [48;2;12;9;20m [48;2;16;12;27m [48;2;6;3;11m [48;2;13;9;23m [48;2;16;12;27m [48;2;6;3;11m [48;2;16;12;27m [48;2;0;0;1m [48;2;30;21;44m [48;2;6;2;7m [48;2;13;9;22m [48;2;0;0;1m [49m [49m [m
|
||||
[49m [49m [48;2;0;0;1m [48;2;47;31;67m [48;2;13;10;22m [48;2;31;24;49m [48;2;2;1;5m [48;2;0;0;1m [48;2;2;0;1m [48;2;31;24;49m [48;2;6;3;11m [48;2;4;2;8m [48;2;6;3;11m [48;2;0;0;1m [48;2;16;12;27m [48;2;13;9;23m [48;2;16;12;26m [48;2;4;2;7m [48;2;36;24;51m [48;2;10;7;17m [48;2;0;0;1m [48;2;4;2;7m [48;2;5;2;7m [48;2;4;2;7m [49m [49m [m
|
||||
[49m [49m [48;2;13;10;22m [48;2;22;17;35m [48;2;13;10;22m [48;2;15;10;22m [48;2;18;13;29m [48;2;31;26;49m [48;2;35;27;53m [48;2;5;2;9m [48;2;31;25;49m [48;2;6;3;11m [48;2;1;1;6m [48;2;6;3;10m [48;2;0;0;1m [48;2;8;4;17m [48;2;18;13;29m [48;2;24;18;39m [48;2;5;3;9m [48;2;0;0;1m [48;2;4;2;7m [48;2;0;0;1m [49m [49m [m
|
||||
[49m [49m [48;2;13;10;22m [48;2;0;0;1m [48;2;6;5;11m [48;2;0;0;3m [48;2;13;10;22m [48;2;5;3;9m [48;2;13;10;22m [48;2;1;0;3m [48;2;47;31;67m [48;2;17;13;30m [48;2;0;0;1m [48;2;4;2;7m [48;2;18;13;28m [48;2;0;0;0m [48;2;10;7;17m [48;2;4;2;7m [48;2;0;0;1m [48;2;14;10;22m [48;2;4;2;7m [48;2;0;0;1m [48;2;4;3;7m [49m [49m [m
|
||||
[49m [49m [48;2;5;2;8m [48;2;0;0;1m [48;2;13;10;22m [48;2;31;24;51m [48;2;11;6;15m [48;2;0;0;5m [48;2;0;2;1m [48;2;0;0;1m [48;2;31;24;49m [48;2;3;2;6m [48;2;4;2;8m [48;2;0;0;1m [48;2;36;24;51m [48;2;10;7;17m [48;2;24;19;37m [48;2;0;2;1m [48;2;2;3;4m [48;2;20;13;29m [48;2;0;0;1m [48;2;5;2;7m [48;2;24;18;37m [48;2;0;0;1m [49m [49m [m
|
||||
[49m [49m [48;2;31;24;49m [48;2;0;0;1m [48;2;47;31;67m [48;2;13;8;22m [48;2;47;31;67m [48;2;31;24;49m [48;2;5;2;9m [48;2;23;15;34m [48;2;5;2;9m [48;2;13;10;22m [48;2;7;2;9m [48;2;2;3;5m [48;2;36;24;51m [48;2;24;18;37m [48;2;10;7;17m [48;2;5;3;9m [48;2;4;2;7m [48;2;12;9;19m [48;2;0;0;1m [48;2;10;7;17m [48;2;4;2;7m [49m [49m [m
|
||||
[49m [49m [48;2;13;10;22m [48;2;1;0;1m [48;2;13;10;22m [48;2;6;5;10m [48;2;13;10;22m [48;2;5;2;8m [48;2;31;24;49m [48;2;29;24;49m [48;2;5;2;9m [48;2;0;0;3m [48;2;0;0;1m [48;2;24;16;37m [48;2;10;7;17m [48;2;0;0;1m [48;2;36;24;51m [48;2;24;18;37m [48;2;0;0;1m [48;2;0;0;3m [48;2;5;2;7m [48;2;4;2;7m [48;2;24;18;37m [49m [49m [m
|
||||
[49m [49m [48;2;0;0;1m [48;2;5;2;8m [48;2;0;2;1m [48;2;13;10;22m [48;2;19;13;29m [48;2;28;24;49m [48;2;0;0;1m [48;2;2;0;1m [48;2;0;0;1m [48;2;3;2;7m [48;2;10;7;17m [48;2;4;2;7m [48;2;24;18;37m [48;2;10;7;17m [48;2;10;7;19m [48;2;24;18;37m [48;2;2;1;4m [48;2;10;7;17m [48;2;0;0;1m [48;2;10;7;17m [49m [49m [m
|
||||
[49m [49m [48;2;5;2;9m [48;2;38;25;55m [48;2;5;2;9m [48;2;5;3;9m [48;2;31;24;49m [48;2;13;10;22m [48;2;0;0;1m [48;2;47;31;67m [48;2;0;0;1m [48;2;7;5;13m [48;2;10;7;17m [48;2;10;5;17m [48;2;8;7;17m [48;2;10;7;17m [48;2;24;18;37m [48;2;10;7;17m [48;2;2;1;4m [48;2;0;1;0m [48;2;10;7;17m [48;2;4;2;7m [49m [49m [m
|
||||
[49m [49m [48;2;31;24;49m [48;2;13;10;22m [48;2;3;2;6m [48;2;2;1;5m [48;2;13;10;22m [48;2;5;2;11m [48;2;1;0;1m [48;2;13;10;22m [48;2;15;10;22m [48;2;31;24;49m [48;2;2;1;4m [48;2;0;0;1m [48;2;36;24;51m [48;2;10;7;17m [48;2;4;2;7m [48;2;8;7;17m [48;2;4;2;7m [48;2;36;24;51m [48;2;9;6;14m [48;2;11;7;17m [48;2;24;18;36m [48;2;4;2;7m [49m [49m [m
|
||||
[49m [49m [48;2;3;2;6m [48;2;31;24;49m [48;2;5;2;9m [48;2;13;10;23m [48;2;13;10;22m [48;2;5;2;9m [48;2;0;0;1m [48;2;13;11;22m [48;2;5;2;9m [48;2;6;5;11m [48;2;11;7;17m [48;2;0;0;1m [48;2;4;2;7m [48;2;10;7;17m [48;2;19;14;29m [48;2;21;14;34m [48;2;4;2;7m [48;2;0;0;1m [48;2;4;2;7m [49m [49m [m
|
||||
[49m [49m [49m [49m [48;2;5;2;9m [48;2;6;4;12m [48;2;13;10;22m [48;2;2;1;5m [48;2;13;11;22m [48;2;29;24;49m [48;2;21;13;33m [48;2;31;24;49m [48;2;5;2;9m [48;2;0;0;1m [48;2;14;10;23m [48;2;4;2;7m [48;2;10;6;17m [48;2;7;5;13m [48;2;10;7;17m [48;2;11;7;17m [48;2;7;4;12m [48;2;0;0;1m [48;2;4;2;7m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [48;2;2;0;1m [48;2;18;13;29m [48;2;5;2;9m [48;2;13;8;22m [48;2;7;2;9m [48;2;5;2;8m [48;2;38;25;55m [48;2;13;10;22m [48;2;20;15;33m [48;2;10;7;17m [48;2;28;18;40m [48;2;0;0;1m [48;2;4;2;7m [48;2;10;7;17m [48;2;4;2;7m [48;2;8;5;14m [48;2;4;2;7m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;31;24;49m [48;2;5;4;12m [48;2;13;10;22m [48;2;7;2;9m [48;2;0;0;1m [48;2;13;11;22m [48;2;4;2;8m [48;2;36;24;51m [48;2;10;7;17m [48;2;4;0;7m [48;2;4;2;7m [48;2;9;6;14m [48;2;10;7;19m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;5;2;9m [48;2;1;0;3m [48;2;0;0;1m [48;2;31;24;49m [48;2;14;10;23m [48;2;24;18;37m [48;2;4;2;7m [48;2;7;5;13m [48;2;4;2;7m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;5;2;9m [48;2;1;0;3m [48;2;2;1;5m [48;2;19;14;29m [48;2;0;0;1m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;7;4;13m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
25
src/main/resources/textures/oak_sapling.ans
Normal file
25
src/main/resources/textures/oak_sapling.ans
Normal file
@ -0,0 +1,25 @@
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;68;136;34m [48;2;68;153;34m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;64;143;47m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;87;175;63m [48;2;86;172;62m [49m [49m [49m [49m [49m [49m [48;2;31;101;25m [48;2;31;101;27m [48;2;31;101;25m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;87;173;61m [48;2;86;172;62m [49m [49m [49m [49m [49m [49m [48;2;31;101;25m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;16;82;16m [48;2;16;82;17m [49m [49m [48;2;64;143;47m [48;2;87;173;63m [48;2;86;172;62m [49m [49m [49m [49m [49m [49m [48;2;16;82;16m [48;2;127;97;57m [48;2;112;83;46m [48;2;16;82;16m [48;2;16;82;17m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;112;83;46m [48;2;112;81;46m [48;2;112;83;46m [48;2;30;101;25m [48;2;31;101;25m [48;2;64;143;47m [48;2;40;112;31m [48;2;16;82;16m [48;2;16;80;16m [48;2;125;97;57m [48;2;112;83;46m [48;2;90;61;30m [48;2;90;63;30m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;112;83;46m [48;2;29;101;25m [48;2;31;100;25m [48;2;64;143;47m [48;2;40;112;31m [48;2;16;82;16m [48;2;18;82;16m [48;2;127;97;57m [48;2;112;83;46m [48;2;90;63;31m [48;2;90;63;30m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [48;2;87;173;63m [48;2;64;143;47m [48;2;87;173;63m [48;2;31;101;25m [48;2;112;82;46m [48;2;112;83;46m [49m [49m [48;2;16;82;16m [48;2;112;83;46m [48;2;112;83;44m [48;2;90;63;30m [48;2;31;101;27m [48;2;87;173;63m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;87;173;63m [48;2;64;143;47m [48;2;112;83;46m [48;2;127;97;57m [48;2;90;63;30m [48;2;88;62;30m [49m [49m [48;2;112;83;46m [49m [49m [49m [49m [48;2;87;173;63m [48;2;64;143;47m [48;2;87;173;62m [48;2;82;164;57m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;87;172;63m [48;2;64;143;47m [48;2;112;83;46m [48;2;127;97;57m [48;2;125;97;57m [48;2;90;63;30m [48;2;90;60;30m [49m [49m [48;2;112;83;46m [49m [49m [49m [49m [48;2;87;173;63m [48;2;64;143;47m [48;2;64;141;47m [48;2;87;173;63m [48;2;82;172;57m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;112;83;46m [48;2;94;66;33m [48;2;76;50;20m [48;2;112;83;46m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;86;173;63m [48;2;87;173;63m [48;2;82;172;57m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;30;100;24m [48;2;64;82;31m [48;2;112;83;46m [48;2;96;97;43m [48;2;81;110;41m [48;2;88;115;47m [48;2;88;113;46m [49m [49m [48;2;16;82;16m [48;2;16;80;16m [48;2;30;96;24m [48;2;86;172;62m [48;2;85;170;51m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;31;101;25m [48;2;16;82;16m [48;2;17;80;16m [48;2;112;83;46m [48;2;99;128;54m [48;2;87;173;63m [48;2;64;143;47m [48;2;64;142;47m [49m [49m [48;2;16;82;16m [48;2;16;83;16m [48;2;31;101;25m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;90;63;30m [48;2;112;83;46m [48;2;90;63;30m [48;2;31;101;25m [48;2;87;173;63m [48;2;75;158;55m [48;2;64;143;46m [48;2;87;173;62m [48;2;87;173;63m [48;2;31;101;25m [48;2;112;83;46m [48;2;90;63;28m [48;2;76;50;20m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;90;63;30m [48;2;112;83;46m [48;2;90;61;30m [48;2;31;101;25m [48;2;87;175;63m [48;2;75;158;55m [48;2;64;141;47m [48;2;87;173;63m [48;2;87;175;63m [48;2;31;101;25m [48;2;112;83;46m [48;2;112;82;46m [48;2;91;63;30m [48;2;76;50;20m [48;2;78;50;23m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [48;2;64;143;46m [48;2;66;142;47m [48;2;31;101;25m [48;2;112;83;46m [48;2;91;63;30m [48;2;90;63;30m [48;2;112;83;46m [48;2;119;90;51m [48;2;127;97;57m [48;2;76;50;20m [48;2;112;83;46m [48;2;90;63;30m [48;2;76;50;20m [48;2;31;101;25m [48;2;31;103;25m [48;2;64;143;47m [48;2;65;139;41m [49m [49m [m
|
||||
[49m [49m [48;2;68;136;34m [48;2;64;143;47m [48;2;65;143;47m [48;2;64;143;46m [49m [49m [49m [49m [48;2;90;63;30m [48;2;87;173;63m [48;2;112;82;44m [48;2;112;83;46m [48;2;76;51;20m [48;2;76;48;20m [48;2;90;63;30m [48;2;76;50;20m [49m [49m [48;2;64;143;47m [48;2;65;139;41m [49m [49m [m
|
||||
[49m [49m [48;2;68;136;34m [48;2;64;143;47m [49m [49m [49m [49m [48;2;90;63;30m [48;2;87;173;63m [48;2;112;83;46m [48;2;76;50;20m [48;2;90;63;30m [48;2;76;50;20m [48;2;76;51;20m [49m [49m [48;2;64;143;47m [48;2;65;139;41m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;87;173;63m [48;2;64;143;47m [48;2;31;101;25m [48;2;71;92;35m [48;2;112;82;46m [48;2;64;143;45m [48;2;64;143;47m [48;2;87;173;63m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;64;143;47m [48;2;65;139;41m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;64;143;47m [48;2;87;173;63m [48;2;76;50;20m [48;2;94;66;33m [48;2;112;83;46m [48;2;87;173;63m [48;2;64;143;47m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;64;142;47m [48;2;87;173;63m [48;2;76;50;21m [48;2;94;66;33m [48;2;114;83;46m [48;2;87;173;63m [48;2;64;143;47m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;90;63;30m [48;2;101;73;38m [48;2;112;83;46m [48;2;76;50;20m [48;2;87;173;63m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;90;63;30m [48;2;91;64;31m [48;2;92;65;32m [48;2;76;50;20m [48;2;82;172;57m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
||||
[49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [48;2;90;63;30m [48;2;76;50;20m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [49m [m
|
Loading…
x
Reference in New Issue
Block a user