diff --git a/MCPainter/data/minecraft_1.10.yml b/MCPainter/data/minecraft_1.13.yml similarity index 82% rename from MCPainter/data/minecraft_1.10.yml rename to MCPainter/data/minecraft_1.13.yml index 7ec9974..af0d311 100644 --- a/MCPainter/data/minecraft_1.10.yml +++ b/MCPainter/data/minecraft_1.13.yml @@ -1,12 +1,12 @@ ################################################################################ # MCPainter mod definition file -# Mod name: Minecraft 1.10.x +# Mod name: Minecraft 1.13.x # Author: SBPrime # Description: # Vanilla minecraft texture resources definition file ################################################################################ -DisplayName: Minecraft 1.10.x -ModId: 1\.10\..+ +DisplayName: Minecraft 1.13.x +ModId: 1\.13\..+ ModIdAlternative: VANILLA Version: TextureRes: 16 diff --git a/MCPainter/data/minecraft_1.10_blocks.yml b/MCPainter/data/minecraft_1.13_blocks.yml similarity index 52% rename from MCPainter/data/minecraft_1.10_blocks.yml rename to MCPainter/data/minecraft_1.13_blocks.yml index 3db3e4c..4a95473 100644 --- a/MCPainter/data/minecraft_1.10_blocks.yml +++ b/MCPainter/data/minecraft_1.13_blocks.yml @@ -1,27 +1,27 @@ ################################################################################ # MCPainter mod definition file -# Mod name: Minecraft 1.10.x +# Mod name: Minecraft 1.13.x # Author: SBPrime # Description: # Vanilla minecraft blocks definition file ################################################################################ -DisplayName: Minecraft 1.10.x - blocks +DisplayName: Minecraft 1.13.x - blocks Blocks: Stone: Name: STONE Id: 1 - Type: BASE + Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/stone.png + Texture: VANILLA:assets/minecraft/textures/block/stone.png Grass: Name: GRASS Id: 2 Type: BASE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/grass_side.png - - VANILLA:assets/minecraft/textures/blocks/grass_top.png - - VANILLA:assets/minecraft/textures/blocks/dirt.png + - VANILLA:assets/minecraft/textures/block/grass_block_side.png + - VANILLA:assets/minecraft/textures/block/grass_block_top.png + - VANILLA:assets/minecraft/textures/block/dirt.png Color: [96, 61] Gray: [4] Dirt: @@ -29,135 +29,135 @@ Blocks: Id: 3 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/dirt.png + Texture: VANILLA:assets/minecraft/textures/block/dirt.png Cobblestone: Name: COBBLESTONE Id: 4 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/cobblestone.png + Texture: VANILLA:assets/minecraft/textures/block/cobblestone.png Planks: Name: WOOD Id: 5 Type: MULTI Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/planks_oak.png - - VANILLA:assets/minecraft/textures/blocks/planks_spruce.png - - VANILLA:assets/minecraft/textures/blocks/planks_birch.png - - VANILLA:assets/minecraft/textures/blocks/planks_jungle.png - - VANILLA:assets/minecraft/textures/blocks/planks_acacia.png - - VANILLA:assets/minecraft/textures/blocks/planks_big_oak.png + - VANILLA:assets/minecraft/textures/block/oak_planks.png + - VANILLA:assets/minecraft/textures/block/spruce_planks.png + - VANILLA:assets/minecraft/textures/block/birch_planks.png + - VANILLA:assets/minecraft/textures/block/jungle_planks.png + - VANILLA:assets/minecraft/textures/block/acacia_planks.png + - VANILLA:assets/minecraft/textures/block/dark_oak_planks.png Sapling_oak: Name: SAPLING Id: 6 Data: 0 Type: DIAGONAL Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/sapling_oak.png + Texture: VANILLA:assets/minecraft/textures/block/oak_sapling.png Sapling_spruce: Name: SAPLING Id: 6 Data: 1 Type: DIAGONAL Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/sapling_spruce.png + Texture: VANILLA:assets/minecraft/textures/block/spruce_sapling.png Sapling_birch: Name: SAPLING Id: 6 Data: 2 Type: DIAGONAL Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/sapling_birch.png + Texture: VANILLA:assets/minecraft/textures/block/birch_sapling.png Sapling_jungle: Name: SAPLING Id: 6 Data: 3 Type: DIAGONAL Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/sapling_jungle.png + Texture: VANILLA:assets/minecraft/textures/block/jungle_sapling.png Sapling_acacia: Name: SAPLING Id: 6 Data: 4 Type: DIAGONAL Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/sapling_acacia.png + Texture: VANILLA:assets/minecraft/textures/block/acacia_sapling.png Sapling_dark_oak: Name: SAPLING Id: 6 Data: 5 Type: DIAGONAL Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/sapling_roofed_oak.png + Texture: VANILLA:assets/minecraft/textures/block/dark_oak_sapling.png Bedrock: Name: BEDROCK Id: 7 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/bedrock.png + Texture: VANILLA:assets/minecraft/textures/block/bedrock.png WaterFlow: Name: WATER Id: 8 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/water_flow.png + Texture: VANILLA:assets/minecraft/textures/block/water_flow.png Water: Name: STATIONARY_WATER Id: 9 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/water_still.png + Texture: VANILLA:assets/minecraft/textures/block/water_still.png LavaFlow: Name: LAVA Id: 10 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/lava_flow.png + Texture: VANILLA:assets/minecraft/textures/block/lava_flow.png Lava: Name: STATIONARY_LAVA Id: 11 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/lava_still.png + Texture: VANILLA:assets/minecraft/textures/block/lava_still.png Sand: Name: SAND Data: 0 Id: 12 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/sand.png + Texture: VANILLA:assets/minecraft/textures/block/sand.png RedSand: Name: SAND Data: 1 Id: 12 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/red_sand.png + Texture: VANILLA:assets/minecraft/textures/block/red_sand.png Gravel: Name: GRAVEL Id: 13 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/gravel.png + Texture: VANILLA:assets/minecraft/textures/block/gravel.png GoldOre: Name: GOLD_ORE Id: 14 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/gold_ore.png + Texture: VANILLA:assets/minecraft/textures/block/gold_ore.png IronOre: Name: IRON_ORE Id: 15 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/iron_ore.png + Texture: VANILLA:assets/minecraft/textures/block/iron_ore.png CoalOre: Name: COAL_ORE Id: 16 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/coal_ore.png + Texture: VANILLA:assets/minecraft/textures/block/coal_ore.png Log_Oak: Name: LOG Id: 17 @@ -167,8 +167,8 @@ Blocks: UsePitch: true UseYaw: true Textures: - - VANILLA:assets/minecraft/textures/blocks/log_oak.png - - VANILLA:assets/minecraft/textures/blocks/log_oak_top.png + - VANILLA:assets/minecraft/textures/block/oak_log.png + - VANILLA:assets/minecraft/textures/block/oak_log_top.png Log_Spruce: Name: LOG Id: 17 @@ -178,8 +178,8 @@ Blocks: UsePitch: true UseYaw: true Textures: - - VANILLA:assets/minecraft/textures/blocks/log_spruce.png - - VANILLA:assets/minecraft/textures/blocks/log_spruce_top.png + - VANILLA:assets/minecraft/textures/block/spruce_log.png + - VANILLA:assets/minecraft/textures/block/spruce_log_top.png Log_Birch: Name: LOG Id: 17 @@ -189,8 +189,8 @@ Blocks: UsePitch: true UseYaw: true Textures: - - VANILLA:assets/minecraft/textures/blocks/log_birch.png - - VANILLA:assets/minecraft/textures/blocks/log_birch_top.png + - VANILLA:assets/minecraft/textures/block/birch_log.png + - VANILLA:assets/minecraft/textures/block/birch_log_top.png Log_Jungle: Name: LOG Id: 17 @@ -200,8 +200,8 @@ Blocks: UsePitch: true UseYaw: true Textures: - - VANILLA:assets/minecraft/textures/blocks/log_jungle.png - - VANILLA:assets/minecraft/textures/blocks/log_jungle_top.png + - VANILLA:assets/minecraft/textures/block/jungle_log.png + - VANILLA:assets/minecraft/textures/block/jungle_log_top.png Leaves_Oak: Name: LEAVES Id: 18 @@ -210,7 +210,7 @@ Blocks: Instruction: Gray: [0, 1, 2, 3, 4, 5, 6] Color: [84, 75] - Texture: VANILLA:assets/minecraft/textures/blocks/leaves_oak.png + Texture: VANILLA:assets/minecraft/textures/block/oak_leaves.png Leaves_Spruce: Name: LEAVES Id: 18 @@ -219,7 +219,7 @@ Blocks: Instruction: Gray: [0, 1, 2, 3, 4, 5, 6] Color: [120, 58] - Texture: VANILLA:assets/minecraft/textures/blocks/leaves_spruce.png + Texture: VANILLA:assets/minecraft/textures/block/spruce_leaves.png Leaves_Birch: Name: LEAVES Id: 18 @@ -228,7 +228,7 @@ Blocks: Instruction: Gray: [0, 1, 2, 3, 4, 5, 6] Color: [88, 58] - Texture: VANILLA:assets/minecraft/textures/blocks/leaves_oak.png + Texture: VANILLA:assets/minecraft/textures/block/oak_leaves.png Leaves_Jungle: Name: LEAVES Id: 18 @@ -237,31 +237,31 @@ Blocks: Instruction: Gray: [0, 1, 2, 3, 4, 5, 6] Color: [85, 74] - Texture: VANILLA:assets/minecraft/textures/blocks/leaves_jungle.png + Texture: VANILLA:assets/minecraft/textures/block/jungle_leaves.png Sponge: Name: SPONGE Id: 19 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/sponge.png + Texture: VANILLA:assets/minecraft/textures/block/sponge.png Glass: Name: GLASS Id: 20 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/glass.png + Texture: VANILLA:assets/minecraft/textures/block/glass.png LapisOre: Name: LAPIS_ORE Id: 21 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/lapis_ore.png + Texture: VANILLA:assets/minecraft/textures/block/lapis_ore.png LapisBlock: Name: LAPIS_BLOCK Id: 22 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/lapis_block.png + Texture: VANILLA:assets/minecraft/textures/block/lapis_block.png Dispenser: Name: DISPENSER Id: 23 @@ -269,10 +269,10 @@ Blocks: Data: 0 Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/dispenser_front_horizontal.png - - VANILLA:assets/minecraft/textures/blocks/furnace_side.png - - VANILLA:assets/minecraft/textures/blocks/furnace_top.png - - VANILLA:assets/minecraft/textures/blocks/furnace_top.png + - VANILLA:assets/minecraft/textures/block/dispenser_front.png + - VANILLA:assets/minecraft/textures/block/furnace_side.png + - VANILLA:assets/minecraft/textures/block/furnace_top.png + - VANILLA:assets/minecraft/textures/block/furnace_top.png DispenserTop: Name: DISPENSER Id: 23 @@ -280,9 +280,9 @@ Blocks: Data: 1 Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/furnace_side.png - - VANILLA:assets/minecraft/textures/blocks/dispenser_front_vertical.png - - VANILLA:assets/minecraft/textures/blocks/furnace_top.png + - VANILLA:assets/minecraft/textures/block/furnace_side.png + - VANILLA:assets/minecraft/textures/block/dispenser_front_vertical.png + - VANILLA:assets/minecraft/textures/block/furnace_top.png DispenserBottom: Name: DISPENSER Id: 23 @@ -290,9 +290,9 @@ Blocks: Data: 2 Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/furnace_side.png - - VANILLA:assets/minecraft/textures/blocks/furnace_top.png - - VANILLA:assets/minecraft/textures/blocks/dispenser_front_vertical.png + - VANILLA:assets/minecraft/textures/block/furnace_side.png + - VANILLA:assets/minecraft/textures/block/furnace_top.png + - VANILLA:assets/minecraft/textures/block/dispenser_front_vertical.png Sandstone_normal: Name: SANDSTONE Id: 24 @@ -300,9 +300,9 @@ Blocks: Data: 0 Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/sandstone_normal.png - - VANILLA:assets/minecraft/textures/blocks/sandstone_top.png - - VANILLA:assets/minecraft/textures/blocks/sandstone_bottom.png + - VANILLA:assets/minecraft/textures/block/sandstone.png + - VANILLA:assets/minecraft/textures/block/sandstone_top.png + - VANILLA:assets/minecraft/textures/block/sandstone_bottom.png Sandstone_carved: Name: SANDSTONE Id: 24 @@ -310,9 +310,9 @@ Blocks: Data: 1 Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/sandstone_carved.png - - VANILLA:assets/minecraft/textures/blocks/sandstone_top.png - - VANILLA:assets/minecraft/textures/blocks/sandstone_bottom.png + - VANILLA:assets/minecraft/textures/block/chiseled_sandstone.png + - VANILLA:assets/minecraft/textures/block/sandstone_top.png + - VANILLA:assets/minecraft/textures/block/sandstone_bottom.png Sandstone_smooth: Name: SANDSTONE Id: 24 @@ -320,80 +320,80 @@ Blocks: Data: 2 Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/sandstone_smooth.png - - VANILLA:assets/minecraft/textures/blocks/sandstone_top.png - - VANILLA:assets/minecraft/textures/blocks/sandstone_bottom.png + - VANILLA:assets/minecraft/textures/block/cut_sandstone.png + - VANILLA:assets/minecraft/textures/block/sandstone_top.png + - VANILLA:assets/minecraft/textures/block/sandstone_bottom.png Noteblock: Name: NOTE_BLOCK Id: 25 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/noteblock.png - Bed: - Name: BED - Id: 26 - Type: CUSTOM - Instruction: - UsePitch: false - UseYaw: true - Size: [16, 16, 32] - TextureColumns: [0, 16] - TextureRows: [0, 16, 7, 16] - TexturesRes: [16, 16, 16, 16, 16, 16, 16] - Textures: - - VANILLA:assets/minecraft/textures/blocks/bed_feet_side.png - - VANILLA:assets/minecraft/textures/blocks/bed_head_side.png - - VANILLA:assets/minecraft/textures/blocks/bed_feet_end.png - - VANILLA:assets/minecraft/textures/blocks/bed_head_end.png - - VANILLA:assets/minecraft/textures/blocks/bed_feet_top.png - - VANILLA:assets/minecraft/textures/blocks/bed_head_top.png - - VANILLA:assets/minecraft/textures/blocks/planks_oak.png - Parts: - Bottom1: - Pos: [0, 3, 0] - Size: [16, 16, 16] - Faces: - - _none_ - - _none_ - - _none_ - - _none_ - - _none_ - - 0,0,1,1,true,6 - Bottom2: - Pos: [0, 3, 16] - Size: [16, 16, 16] - Faces: - - _none_ - - _none_ - - _none_ - - _none_ - - _none_ - - 0,0,1,1,true,6 - Head: - Pos: [0, 0, 0] - Size: [16, 9, 16] - Faces: - - _none_ - - 0,3,1,-1,false,3 - - 1,3,-1,-1,false,1 - - 1,3,-1,-1,false,1 - - 1,1,-1,-1,true,5 - Feet: - Pos: [0, 0, 16] - Size: [16, 9, 16] - Faces: - - 0,3,1,-1,false,2 - - _none_ - - 1,3,-1,-1,false,0 - - 1,3,-1,-1,false,0 - - 1,1,-1,-1,true,4 + Texture: VANILLA:assets/minecraft/textures/block/note_block.png +# Bed: +# Name: BED +# Id: 26 +# Type: CUSTOM +# Instruction: +# UsePitch: false +# UseYaw: true +# Size: [16, 16, 32] +# TextureColumns: [0, 16] +# TextureRows: [0, 16, 7, 16] +# TexturesRes: [16, 16, 16, 16, 16, 16, 16] +# Textures: +# - VANILLA:assets/minecraft/textures/block/bed_feet_side.png +# - VANILLA:assets/minecraft/textures/block/bed_head_side.png +# - VANILLA:assets/minecraft/textures/block/bed_feet_end.png +# - VANILLA:assets/minecraft/textures/block/bed_head_end.png +# - VANILLA:assets/minecraft/textures/block/bed_feet_top.png +# - VANILLA:assets/minecraft/textures/block/bed_head_top.png +# - VANILLA:assets/minecraft/textures/block/oak_planks.png +# Parts: +# Bottom1: +# Pos: [0, 3, 0] +# Size: [16, 16, 16] +# Faces: +# - _none_ +# - _none_ +# - _none_ +# - _none_ +# - _none_ +# - 0,0,1,1,true,6 +# Bottom2: +# Pos: [0, 3, 16] +# Size: [16, 16, 16] +# Faces: +# - _none_ +# - _none_ +# - _none_ +# - _none_ +# - _none_ +# - 0,0,1,1,true,6 +# Head: +# Pos: [0, 0, 0] +# Size: [16, 9, 16] +# Faces: +# - _none_ +# - 0,3,1,-1,false,3 +# - 1,3,-1,-1,false,1 +# - 1,3,-1,-1,false,1 +# - 1,1,-1,-1,true,5 +# Feet: +# Pos: [0, 0, 16] +# Size: [16, 9, 16] +# Faces: +# - 0,3,1,-1,false,2 +# - _none_ +# - 1,3,-1,-1,false,0 +# - 1,3,-1,-1,false,0 +# - 1,1,-1,-1,true,4 PoweredRail_0: Name: POWERED_RAIL Id: 27 Type: FLAT Data: 0 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/rail_golden.png + Texture: VANILLA:assets/minecraft/textures/block/powered_rail.png Face: Bottom PoweredRail_2: Name: POWERED_RAIL @@ -403,7 +403,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_golden.png + Texture: VANILLA:assets/minecraft/textures/block/powered_rail.png Faces: [Right] PoweredRail_3: Name: POWERED_RAIL @@ -413,7 +413,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_golden.png + Texture: VANILLA:assets/minecraft/textures/block/powered_rail.png Faces: [Left] PoweredRail_4: Name: POWERED_RAIL @@ -423,7 +423,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_golden.png + Texture: VANILLA:assets/minecraft/textures/block/powered_rail.png Faces: [Back] PoweredRail_5: Name: POWERED_RAIL @@ -433,7 +433,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_golden.png + Texture: VANILLA:assets/minecraft/textures/block/powered_rail.png Faces: [Front] PoweredRail_8: Name: POWERED_RAIL @@ -441,7 +441,7 @@ Blocks: Type: FLAT Data: 8 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/rail_golden_powered.png + Texture: VANILLA:assets/minecraft/textures/block/powered_rail_on.png Face: Bottom PoweredRail_10: Name: POWERED_RAIL @@ -451,7 +451,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_golden_powered.png + Texture: VANILLA:assets/minecraft/textures/block/powered_rail_on.png Faces: [Right] PoweredRail_11: Name: POWERED_RAIL @@ -461,7 +461,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_golden_powered.png + Texture: VANILLA:assets/minecraft/textures/block/powered_rail_on.png Faces: [Left] PoweredRail_12: Name: POWERED_RAIL @@ -471,7 +471,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_golden_powered.png + Texture: VANILLA:assets/minecraft/textures/block/powered_rail_on.png Faces: [Back] PoweredRail_13: Name: POWERED_RAIL @@ -481,7 +481,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_golden_powered.png + Texture: VANILLA:assets/minecraft/textures/block/powered_rail_on.png Faces: [Front] DetectorRail_0: Name: DETECTOR_RAIL @@ -489,7 +489,7 @@ Blocks: Type: FLAT Data: 0 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/rail_detector.png + Texture: VANILLA:assets/minecraft/textures/block/detector_rail.png Face: Bottom DetectorRail_2: Name: DETECTOR_RAIL @@ -499,7 +499,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_detector.png + Texture: VANILLA:assets/minecraft/textures/block/detector_rail.png Faces: [Right] DetectorRail_3: Name: DETECTOR_RAIL @@ -509,7 +509,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_detector.png + Texture: VANILLA:assets/minecraft/textures/block/detector_rail.png Faces: [Left] DetectorRail_4: Name: DETECTOR_RAIL @@ -519,7 +519,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_detector.png + Texture: VANILLA:assets/minecraft/textures/block/detector_rail.png Faces: [Back] DetectorRail_5: Name: DETECTOR_RAIL @@ -529,7 +529,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_detector.png + Texture: VANILLA:assets/minecraft/textures/block/detector_rail.png Faces: [Front] DetectorRail_8: Name: DETECTOR_RAIL @@ -537,7 +537,7 @@ Blocks: Type: FLAT Data: 8 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/rail_detector_powered.png + Texture: VANILLA:assets/minecraft/textures/block/detector_rail_on.png Face: Bottom DetectorRail_10: Name: DETECTOR_RAIL @@ -547,7 +547,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_detector_powered.png + Texture: VANILLA:assets/minecraft/textures/block/detector_rail_on.png Faces: [Right] DetectorRail_11: Name: DETECTOR_RAIL @@ -557,7 +557,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_detector_powered.png + Texture: VANILLA:assets/minecraft/textures/block/detector_rail_on.png Faces: [Left] DetectorRail_12: Name: DETECTOR_RAIL @@ -567,7 +567,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_detector_powered.png + Texture: VANILLA:assets/minecraft/textures/block/detector_rail_on.png Faces: [Back] DetectorRail_13: Name: DETECTOR_RAIL @@ -577,7 +577,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_detector_powered.png + Texture: VANILLA:assets/minecraft/textures/block/detector_rail_on.png Faces: [Front] #piston Web: @@ -587,7 +587,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/web.png + Texture: VANILLA:assets/minecraft/textures/block/cobweb.png Grass_deadBush: Name: LONG_GRASS Id: 31 @@ -596,17 +596,17 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/deadbush.png - Grass_tallGrass: - Name: LONG_GRASS - Id: 31 - Data: 1 - Type: DIAGONAL - Instruction: - UsePitch: false - UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/tallgrass.png - Color: [96, 61] + Texture: VANILLA:assets/minecraft/textures/block/dead_bush.png +# Grass_tallGrass: +# Name: LONG_GRASS +# Id: 31 +# Data: 1 +# Type: DIAGONAL +# Instruction: +# UsePitch: false +# UseYaw: false +# Texture: VANILLA:assets/minecraft/textures/block/tallgrass.png +# Color: [96, 61] Grass_fern: Name: LONG_GRASS Id: 31 @@ -615,7 +615,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/fern.png + Texture: VANILLA:assets/minecraft/textures/block/fern.png Color: [96, 61] DeadBush: Name: DEAD_BUSH @@ -624,7 +624,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/deadbush.png + Texture: VANILLA:assets/minecraft/textures/block/dead_bush.png #33 - piston #34 - piston extended Wool: @@ -633,115 +633,115 @@ Blocks: Type: MULTI Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/wool_colored_white.png - - VANILLA:assets/minecraft/textures/blocks/wool_colored_orange.png - - VANILLA:assets/minecraft/textures/blocks/wool_colored_magenta.png - - VANILLA:assets/minecraft/textures/blocks/wool_colored_light_blue.png - - VANILLA:assets/minecraft/textures/blocks/wool_colored_yellow.png - - VANILLA:assets/minecraft/textures/blocks/wool_colored_lime.png - - VANILLA:assets/minecraft/textures/blocks/wool_colored_pink.png - - VANILLA:assets/minecraft/textures/blocks/wool_colored_gray.png - - VANILLA:assets/minecraft/textures/blocks/wool_colored_silver.png - - VANILLA:assets/minecraft/textures/blocks/wool_colored_cyan.png - - VANILLA:assets/minecraft/textures/blocks/wool_colored_purple.png - - VANILLA:assets/minecraft/textures/blocks/wool_colored_blue.png - - VANILLA:assets/minecraft/textures/blocks/wool_colored_brown.png - - VANILLA:assets/minecraft/textures/blocks/wool_colored_green.png - - VANILLA:assets/minecraft/textures/blocks/wool_colored_red.png - - VANILLA:assets/minecraft/textures/blocks/wool_colored_black.png + - VANILLA:assets/minecraft/textures/block/white_wool.png + - VANILLA:assets/minecraft/textures/block/orange_wool.png + - VANILLA:assets/minecraft/textures/block/magenta_wool.png + - VANILLA:assets/minecraft/textures/block/light_blue_wool.png + - VANILLA:assets/minecraft/textures/block/yellow_wool.png + - VANILLA:assets/minecraft/textures/block/lime_wool.png + - VANILLA:assets/minecraft/textures/block/pink_wool.png + - VANILLA:assets/minecraft/textures/block/gray_wool.png + - VANILLA:assets/minecraft/textures/block/light_gray_wool.png + - VANILLA:assets/minecraft/textures/block/cyan_wool.png + - VANILLA:assets/minecraft/textures/block/purple_wool.png + - VANILLA:assets/minecraft/textures/block/blue_wool.png + - VANILLA:assets/minecraft/textures/block/brown_wool.png + - VANILLA:assets/minecraft/textures/block/green_wool.png + - VANILLA:assets/minecraft/textures/block/red_wool.png + - VANILLA:assets/minecraft/textures/block/black_wool.png Flower_dandelion: Name: YELLOW_FLOWER Id: 37 Type: DIAGONAL Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/flower_dandelion.png - Flower_poppy: - Name: RED_ROSE - Id: 38 - Data: 0 - Type: DIAGONAL - Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/flower_rose.png + Texture: VANILLA:assets/minecraft/textures/block/dandelion.png +# Flower_poppy: +# Name: RED_ROSE +# Id: 38 +# Data: 0 +# Type: DIAGONAL +# Instruction: +# Texture: VANILLA:assets/minecraft/textures/block/rose.png Flower_blueOrchid: Name: RED_ROSE Id: 38 Data: 1 Type: DIAGONAL Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/flower_blue_orchid.png + Texture: VANILLA:assets/minecraft/textures/block/blue_orchid.png Flower_allium: Name: RED_ROSE Id: 38 Data: 2 Type: DIAGONAL Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/flower_allium.png - Flower_azureBluet: - Name: RED_ROSE - Id: 38 - Data: 3 - Type: DIAGONAL - Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/flower_houstonia.png + Texture: VANILLA:assets/minecraft/textures/block/allium.png +# Flower_azureBluet: +# Name: RED_ROSE +# Id: 38 +# Data: 3 +# Type: DIAGONAL +# Instruction: +# Texture: VANILLA:assets/minecraft/textures/block/houstonia.png Flower_tulipRed: Name: RED_ROSE Id: 38 Data: 4 Type: DIAGONAL Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/flower_tulip_red.png + Texture: VANILLA:assets/minecraft/textures/block/red_tulip.png Flower_tulipOrange: Name: RED_ROSE Id: 38 Data: 5 Type: DIAGONAL Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/flower_tulip_orange.png + Texture: VANILLA:assets/minecraft/textures/block/orange_tulip.png Flower_tulipWhite: Name: RED_ROSE Id: 38 Data: 6 Type: DIAGONAL Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/flower_tulip_white.png + Texture: VANILLA:assets/minecraft/textures/block/white_tulip.png Flower_tulipPink: Name: RED_ROSE Id: 38 Data: 7 Type: DIAGONAL Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/flower_tulip_pink.png + Texture: VANILLA:assets/minecraft/textures/block/pink_tulip.png Flower_oxeyeDaisy: Name: RED_ROSE Id: 38 Data: 8 Type: DIAGONAL Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/flower_oxeye_daisy.png + Texture: VANILLA:assets/minecraft/textures/block/oxeye_daisy.png Mushroom_brown: Name: BROWN_MUSHROOM Id: 39 Type: DIAGONAL Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/mushroom_brown.png + Texture: VANILLA:assets/minecraft/textures/block/brown_mushroom.png Mushroom_red: Name: RED_MUSHROOM Id: 40 Type: DIAGONAL Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/mushroom_red.png + Texture: VANILLA:assets/minecraft/textures/block/red_mushroom.png GoldBlock: Name: GOLD_BLOCK Id: 41 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/gold_block.png + Texture: VANILLA:assets/minecraft/textures/block/gold_block.png IronBlock: Name: IRON_BLOCK Id: 42 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/iron_block.png + Texture: VANILLA:assets/minecraft/textures/block/iron_block.png DoubleStep_stone: Name: DOUBLE_STEP Id: 43 @@ -749,8 +749,8 @@ Blocks: Type: BASE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/stone_slab_side.png - - VANILLA:assets/minecraft/textures/blocks/stone_slab_top.png + - VANILLA:assets/minecraft/textures/block/stone_slab_side.png + - VANILLA:assets/minecraft/textures/block/stone_slab_top.png DoubleStep_sandstone: Name: DOUBLE_STEP Id: 43 @@ -758,44 +758,44 @@ Blocks: Type: BASE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/sandstone_normal.png - - VANILLA:assets/minecraft/textures/blocks/sandstone_top.png - - VANILLA:assets/minecraft/textures/blocks/sandstone_bottom.png + - VANILLA:assets/minecraft/textures/block/sandstone.png + - VANILLA:assets/minecraft/textures/block/sandstone_top.png + - VANILLA:assets/minecraft/textures/block/sandstone_bottom.png DoubleStep_oak: Name: DOUBLE_STEP Id: 43 Data: 2 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/planks_oak.png + Texture: VANILLA:assets/minecraft/textures/block/oak_planks.png DoubleStep_cobble: Name: DOUBLE_STEP Id: 43 Data: 3 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/cobblestone.png + Texture: VANILLA:assets/minecraft/textures/block/cobblestone.png DoubleStep_brick: Name: DOUBLE_STEP Id: 43 Data: 4 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/brick.png + Texture: VANILLA:assets/minecraft/textures/block/bricks.png DoubleStep_stone2: Name: DOUBLE_STEP Id: 43 Data: 5 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/stonebrick.png + Texture: VANILLA:assets/minecraft/textures/block/stone_bricks.png DoubleStep_nether: Name: DOUBLE_STEP Id: 43 Data: 6 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/nether_brick.png + Texture: VANILLA:assets/minecraft/textures/block/nether_bricks.png DoubleStep_quartz: Name: DOUBLE_STEP Id: 43 @@ -803,9 +803,9 @@ Blocks: Type: BASE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/quartz_block_side.png - - VANILLA:assets/minecraft/textures/blocks/quartz_block_bottom.png - - VANILLA:assets/minecraft/textures/blocks/quartz_block_top.png + - VANILLA:assets/minecraft/textures/block/quartz_block_side.png + - VANILLA:assets/minecraft/textures/block/quartz_block_bottom.png + - VANILLA:assets/minecraft/textures/block/quartz_block_top.png Step_stone: Name: STEP Id: 44 @@ -813,8 +813,8 @@ Blocks: Type: SLAB Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/stone_slab_side.png - - VANILLA:assets/minecraft/textures/blocks/stone_slab_top.png + - VANILLA:assets/minecraft/textures/block/stone_slab_side.png + - VANILLA:assets/minecraft/textures/block/stone_slab_top.png Step_sandstone: Name: STEP Id: 44 @@ -822,44 +822,44 @@ Blocks: Type: SLAB Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/sandstone_normal.png - - VANILLA:assets/minecraft/textures/blocks/sandstone_top.png - - VANILLA:assets/minecraft/textures/blocks/sandstone_bottom.png + - VANILLA:assets/minecraft/textures/block/sandstone.png + - VANILLA:assets/minecraft/textures/block/sandstone_top.png + - VANILLA:assets/minecraft/textures/block/sandstone_bottom.png Step_oak: Name: STEP Id: 44 Data: 2 Type: SLAB Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/planks_oak.png + Texture: VANILLA:assets/minecraft/textures/block/oak_planks.png Step_cobble: Name: STEP Id: 44 Data: 3 Type: SLAB Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/cobblestone.png + Texture: VANILLA:assets/minecraft/textures/block/cobblestone.png Step_brick: Name: STEP Id: 44 Data: 4 Type: SLAB Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/brick.png + Texture: VANILLA:assets/minecraft/textures/block/bricks.png Step_stone2: Name: STEP Id: 44 Data: 5 Type: SLAB Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/stonebrick.png + Texture: VANILLA:assets/minecraft/textures/block/stone_bricks.png Step_nether: Name: STEP Id: 44 Data: 6 Type: SLAB Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/nether_brick.png + Texture: VANILLA:assets/minecraft/textures/block/nether_bricks.png Step_quartz: Name: STEP Id: 44 @@ -867,9 +867,9 @@ Blocks: Type: SLAB Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/quartz_block_side.png - - VANILLA:assets/minecraft/textures/blocks/quartz_block_bottom.png - - VANILLA:assets/minecraft/textures/blocks/quartz_block_top.png + - VANILLA:assets/minecraft/textures/block/quartz_block_side.png + - VANILLA:assets/minecraft/textures/block/quartz_block_bottom.png + - VANILLA:assets/minecraft/textures/block/quartz_block_top.png StepTop_stone: Name: STEP Id: 44 @@ -878,8 +878,8 @@ Blocks: Instruction: IsTop: true Textures: - - VANILLA:assets/minecraft/textures/blocks/stone_slab_side.png - - VANILLA:assets/minecraft/textures/blocks/stone_slab_top.png + - VANILLA:assets/minecraft/textures/block/stone_slab_side.png + - VANILLA:assets/minecraft/textures/block/stone_slab_top.png StepTop_sandstone: Name: STEP Id: 44 @@ -888,9 +888,9 @@ Blocks: Instruction: IsTop: true Textures: - - VANILLA:assets/minecraft/textures/blocks/sandstone_normal.png - - VANILLA:assets/minecraft/textures/blocks/sandstone_top.png - - VANILLA:assets/minecraft/textures/blocks/sandstone_bottom.png + - VANILLA:assets/minecraft/textures/block/sandstone.png + - VANILLA:assets/minecraft/textures/block/sandstone_top.png + - VANILLA:assets/minecraft/textures/block/sandstone_bottom.png StepTop_oak: Name: STEP Id: 44 @@ -898,7 +898,7 @@ Blocks: Type: SLAB Instruction: IsTop: true - Texture: VANILLA:assets/minecraft/textures/blocks/planks_oak.png + Texture: VANILLA:assets/minecraft/textures/block/oak_planks.png StepTop_cobble: Name: STEP Id: 44 @@ -906,7 +906,7 @@ Blocks: Type: SLAB Instruction: IsTop: true - Texture: VANILLA:assets/minecraft/textures/blocks/cobblestone.png + Texture: VANILLA:assets/minecraft/textures/block/cobblestone.png StepTop_brick: Name: STEP Id: 44 @@ -914,7 +914,7 @@ Blocks: Type: SLAB Instruction: IsTop: true - Texture: VANILLA:assets/minecraft/textures/blocks/brick.png + Texture: VANILLA:assets/minecraft/textures/block/bricks.png StepTop_stone2: Name: STEP Id: 44 @@ -922,7 +922,7 @@ Blocks: Type: SLAB Instruction: IsTop: true - Texture: VANILLA:assets/minecraft/textures/blocks/stonebrick.png + Texture: VANILLA:assets/minecraft/textures/block/stone_bricks.png StepTop_nether: Name: STEP Id: 44 @@ -930,7 +930,7 @@ Blocks: Type: SLAB Instruction: IsTop: true - Texture: VANILLA:assets/minecraft/textures/blocks/nether_brick.png + Texture: VANILLA:assets/minecraft/textures/block/nether_bricks.png StepTop_quartz: Name: STEP Id: 44 @@ -939,50 +939,50 @@ Blocks: Instruction: IsTop: true Textures: - - VANILLA:assets/minecraft/textures/blocks/quartz_block_side.png - - VANILLA:assets/minecraft/textures/blocks/quartz_block_bottom.png - - VANILLA:assets/minecraft/textures/blocks/quartz_block_top.png + - VANILLA:assets/minecraft/textures/block/quartz_block_side.png + - VANILLA:assets/minecraft/textures/block/quartz_block_bottom.png + - VANILLA:assets/minecraft/textures/block/quartz_block_top.png Brick: Name: BRICK Id: 45 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/brick.png + Texture: VANILLA:assets/minecraft/textures/block/bricks.png Tnt: Name: TNT Id: 46 Type: BASE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/tnt_side.png - - VANILLA:assets/minecraft/textures/blocks/tnt_top.png - - VANILLA:assets/minecraft/textures/blocks/tnt_bottom.png + - VANILLA:assets/minecraft/textures/block/tnt_side.png + - VANILLA:assets/minecraft/textures/block/tnt_top.png + - VANILLA:assets/minecraft/textures/block/tnt_bottom.png BookShelf: Name: BOOKSHELF Id: 47 Type: BASE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/bookshelf.png - - VANILLA:assets/minecraft/textures/blocks/planks_oak.png + - VANILLA:assets/minecraft/textures/block/bookshelf.png + - VANILLA:assets/minecraft/textures/block/oak_planks.png MosStone: Name: MOSSY_COBBLESTONE Id: 48 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/cobblestone_mossy.png + Texture: VANILLA:assets/minecraft/textures/block/mossy_cobblestone.png Obsidian: Name: OBSIDIAN Id: 49 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/obsidian.png + Texture: VANILLA:assets/minecraft/textures/block/obsidian.png Torch: Name: TORCH Id: 50 Type: TORCH Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/torch_on.png + Texture: VANILLA:assets/minecraft/textures/block/torch.png Fire: Name: Fire Id: 51 @@ -995,7 +995,7 @@ Blocks: TextureRows: [0, 16] TexturesRes: [16] Textures: - - VANILLA:assets/minecraft/textures/blocks/fire_layer_0.png + - VANILLA:assets/minecraft/textures/block/fire_0.png Parts: Part1: Pos: [0, 0, 0] @@ -1023,14 +1023,14 @@ Blocks: Id: 52 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/mob_spawner.png + Texture: VANILLA:assets/minecraft/textures/block/spawner.png OakStairs: Name: WOOD_STAIRS Id: 53 Type: STAIRS Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/planks_oak.png + - VANILLA:assets/minecraft/textures/block/oak_planks.png Chest_normal: Name: CHEST Id: 54 @@ -1067,29 +1067,29 @@ Blocks: Id: 56 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/diamond_ore.png + Texture: VANILLA:assets/minecraft/textures/block/diamond_ore.png DiamondOre: Name: DIAMOND_ORE Id: 56 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/diamond_ore.png + Texture: VANILLA:assets/minecraft/textures/block/diamond_ore.png DiamondBlock: Name: DIAMOND_BLOCK Id: 57 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/diamond_block.png + Texture: VANILLA:assets/minecraft/textures/block/diamond_block.png WoorkBench: Name: WORKBENCH Id: 58 Type: BASE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/crafting_table_front.png - - VANILLA:assets/minecraft/textures/blocks/crafting_table_side.png - - VANILLA:assets/minecraft/textures/blocks/crafting_table_top.png - - VANILLA:assets/minecraft/textures/blocks/planks_oak.png + - VANILLA:assets/minecraft/textures/block/crafting_table_front.png + - VANILLA:assets/minecraft/textures/block/crafting_table_side.png + - VANILLA:assets/minecraft/textures/block/crafting_table_top.png + - VANILLA:assets/minecraft/textures/block/oak_planks.png Crops_0: Name: CROPS Id: 59 @@ -1097,7 +1097,7 @@ Blocks: Data: 0 Instruction: Delta: 3 - Texture: VANILLA:assets/minecraft/textures/blocks/wheat_stage_0.png + Texture: VANILLA:assets/minecraft/textures/block/wheat_stage0.png Crops_1: Name: CROPS Id: 59 @@ -1105,7 +1105,7 @@ Blocks: Data: 1 Instruction: Delta: 3 - Texture: VANILLA:assets/minecraft/textures/blocks/wheat_stage_1.png + Texture: VANILLA:assets/minecraft/textures/block/wheat_stage1.png Crops_2: Name: CROPS Id: 59 @@ -1113,7 +1113,7 @@ Blocks: Data: 2 Instruction: Delta: 3 - Texture: VANILLA:assets/minecraft/textures/blocks/wheat_stage_2.png + Texture: VANILLA:assets/minecraft/textures/block/wheat_stage2.png Crops_3: Name: CROPS Id: 59 @@ -1121,7 +1121,7 @@ Blocks: Data: 3 Instruction: Delta: 3 - Texture: VANILLA:assets/minecraft/textures/blocks/wheat_stage_3.png + Texture: VANILLA:assets/minecraft/textures/block/wheat_stage3.png Crops_4: Name: CROPS Id: 59 @@ -1129,7 +1129,7 @@ Blocks: Data: 4 Instruction: Delta: 3 - Texture: VANILLA:assets/minecraft/textures/blocks/wheat_stage_4.png + Texture: VANILLA:assets/minecraft/textures/block/wheat_stage4.png Crops_5: Name: CROPS Id: 59 @@ -1137,7 +1137,7 @@ Blocks: Data: 5 Instruction: Delta: 3 - Texture: VANILLA:assets/minecraft/textures/blocks/wheat_stage_5.png + Texture: VANILLA:assets/minecraft/textures/block/wheat_stage5.png Crops_6: Name: CROPS Id: 59 @@ -1145,7 +1145,7 @@ Blocks: Data: 6 Instruction: Delta: 3 - Texture: VANILLA:assets/minecraft/textures/blocks/wheat_stage_6.png + Texture: VANILLA:assets/minecraft/textures/block/wheat_stage6.png Crops_7: Name: CROPS Id: 59 @@ -1153,7 +1153,7 @@ Blocks: Data: 7 Instruction: Delta: 3 - Texture: VANILLA:assets/minecraft/textures/blocks/wheat_stage_7.png + Texture: VANILLA:assets/minecraft/textures/block/wheat_stage7.png Soil_0: Name: SOIL Id: 60 @@ -1162,9 +1162,9 @@ Blocks: Instruction: Size: [16,15,16] Textures: - - VANILLA:assets/minecraft/textures/blocks/dirt.png - - VANILLA:assets/minecraft/textures/blocks/farmland_dry.png - - VANILLA:assets/minecraft/textures/blocks/dirt.png + - VANILLA:assets/minecraft/textures/block/dirt.png + - VANILLA:assets/minecraft/textures/block/farmland.png + - VANILLA:assets/minecraft/textures/block/dirt.png Soil_1: Name: SOIL Id: 60 @@ -1173,29 +1173,29 @@ Blocks: Instruction: Size: [16,15,16] Textures: - - VANILLA:assets/minecraft/textures/blocks/dirt.png - - VANILLA:assets/minecraft/textures/blocks/farmland_wet.png - - VANILLA:assets/minecraft/textures/blocks/dirt.png + - VANILLA:assets/minecraft/textures/block/dirt.png + - VANILLA:assets/minecraft/textures/block/farmland_moist.png + - VANILLA:assets/minecraft/textures/block/dirt.png Furnace: Name: FURNACE Id: 61 Type: BASE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/furnace_front_off.png - - VANILLA:assets/minecraft/textures/blocks/furnace_side.png - - VANILLA:assets/minecraft/textures/blocks/furnace_top.png - - VANILLA:assets/minecraft/textures/blocks/furnace_top.png + - VANILLA:assets/minecraft/textures/block/furnace_front.png + - VANILLA:assets/minecraft/textures/block/furnace_side.png + - VANILLA:assets/minecraft/textures/block/furnace_top.png + - VANILLA:assets/minecraft/textures/block/furnace_top.png FurnaceBurning: Name: BURNING_FURNACE Id: 62 Type: BASE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/furnace_front_on.png - - VANILLA:assets/minecraft/textures/blocks/furnace_side.png - - VANILLA:assets/minecraft/textures/blocks/furnace_top.png - - VANILLA:assets/minecraft/textures/blocks/furnace_top.png + - VANILLA:assets/minecraft/textures/block/furnace_front_on.png + - VANILLA:assets/minecraft/textures/block/furnace_side.png + - VANILLA:assets/minecraft/textures/block/furnace_top.png + - VANILLA:assets/minecraft/textures/block/furnace_top.png #63 - SIGN_POST WoodenDoor_0: Name: WOODEN_DOOR @@ -1206,8 +1206,8 @@ Blocks: Face: Back Flip: false Textures: - - VANILLA:assets/minecraft/textures/blocks/door_wood_lower.png - - VANILLA:assets/minecraft/textures/blocks/door_wood_upper.png + - VANILLA:assets/minecraft/textures/block/oak_door_bottom.png + - VANILLA:assets/minecraft/textures/block/oak_door_top.png WoodenDoor_1: Name: WOODEN_DOOR Id: 324 @@ -1217,8 +1217,8 @@ Blocks: Face: Back Flip: true Textures: - - VANILLA:assets/minecraft/textures/blocks/door_wood_lower.png - - VANILLA:assets/minecraft/textures/blocks/door_wood_upper.png + - VANILLA:assets/minecraft/textures/block/oak_door_bottom.png + - VANILLA:assets/minecraft/textures/block/oak_door_top.png WoodenDoor_2: Name: WOODEN_DOOR Id: 324 @@ -1228,8 +1228,8 @@ Blocks: Face: Front Flip: true Textures: - - VANILLA:assets/minecraft/textures/blocks/door_wood_lower.png - - VANILLA:assets/minecraft/textures/blocks/door_wood_upper.png + - VANILLA:assets/minecraft/textures/block/oak_door_bottom.png + - VANILLA:assets/minecraft/textures/block/oak_door_top.png WoodenDoor_3: Name: WOODEN_DOOR Id: 324 @@ -1239,15 +1239,15 @@ Blocks: Face: Front Flip: false Textures: - - VANILLA:assets/minecraft/textures/blocks/door_wood_lower.png - - VANILLA:assets/minecraft/textures/blocks/door_wood_upper.png + - VANILLA:assets/minecraft/textures/block/oak_door_bottom.png + - VANILLA:assets/minecraft/textures/block/oak_door_top.png Ladder: Name: LADDER Id: 65 Type: FLAT Instruction: Face: Front - Texture: VANILLA:assets/minecraft/textures/blocks/ladder.png + Texture: VANILLA:assets/minecraft/textures/block/ladder.png Rails_0: Name: RAILS Id: 66 @@ -1255,7 +1255,7 @@ Blocks: Data: 0 Instruction: Face: Bottom - Texture: VANILLA:assets/minecraft/textures/blocks/rail_normal.png + Texture: VANILLA:assets/minecraft/textures/block/rail.png Rails_2: Name: RAILS Id: 66 @@ -1264,7 +1264,7 @@ Blocks: Instruction: Face: Right UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_normal.png + Texture: VANILLA:assets/minecraft/textures/block/rail.png Rails_3: Name: RAILS Id: 66 @@ -1273,7 +1273,7 @@ Blocks: Instruction: Face: Left UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_normal.png + Texture: VANILLA:assets/minecraft/textures/block/rail.png Rails_4: Name: RAILS Id: 66 @@ -1282,7 +1282,7 @@ Blocks: Instruction: Face: Back UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_normal.png + Texture: VANILLA:assets/minecraft/textures/block/rail.png Rails_5: Name: RAILS Id: 66 @@ -1291,7 +1291,7 @@ Blocks: Instruction: Face: Front UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_normal.png + Texture: VANILLA:assets/minecraft/textures/block/rail.png Rails_6: Name: RAILS Id: 66 @@ -1299,14 +1299,14 @@ Blocks: Data: 6 Instruction: Face: Bottom - Texture: VANILLA:assets/minecraft/textures/blocks/rail_normal_turned.png + Texture: VANILLA:assets/minecraft/textures/block/rail_corner.png CobblestoneStairs: Name: COBBLESTONE_STAIRS Id: 67 Type: STAIRS Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/cobblestone.png + - VANILLA:assets/minecraft/textures/block/cobblestone.png #68 - Wall sign #69 - Lever StonePlate: @@ -1314,7 +1314,7 @@ Blocks: Id: 70 Type: FLAT Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/stone.png + Texture: VANILLA:assets/minecraft/textures/block/stone.png Size: [14,14,1] IrronDoor_0: Name: IRON_DOOR_BLOCK @@ -1325,8 +1325,8 @@ Blocks: Face: Back Flip: false Textures: - - VANILLA:assets/minecraft/textures/blocks/door_iron_lower.png - - VANILLA:assets/minecraft/textures/blocks/door_iron_upper.png + - VANILLA:assets/minecraft/textures/block/iron_door_bottom.png + - VANILLA:assets/minecraft/textures/block/iron_door_top.png IrronDoor_1: Name: IRON_DOOR_BLOCK Id: 330 @@ -1336,8 +1336,8 @@ Blocks: Face: Back Flip: true Textures: - - VANILLA:assets/minecraft/textures/blocks/door_iron_lower.png - - VANILLA:assets/minecraft/textures/blocks/door_iron_upper.png + - VANILLA:assets/minecraft/textures/block/iron_door_bottom.png + - VANILLA:assets/minecraft/textures/block/iron_door_top.png IrronDoor_2: Name: IRON_DOOR_BLOCK Id: 330 @@ -1347,8 +1347,8 @@ Blocks: Face: Front Flip: true Textures: - - VANILLA:assets/minecraft/textures/blocks/door_iron_lower.png - - VANILLA:assets/minecraft/textures/blocks/door_iron_upper.png + - VANILLA:assets/minecraft/textures/block/iron_door_bottom.png + - VANILLA:assets/minecraft/textures/block/iron_door_top.png IrronDoor_3: Name: IRON_DOOR_BLOCK Id: 330 @@ -1358,46 +1358,46 @@ Blocks: Face: Front Flip: false Textures: - - VANILLA:assets/minecraft/textures/blocks/door_iron_lower.png - - VANILLA:assets/minecraft/textures/blocks/door_iron_upper.png + - VANILLA:assets/minecraft/textures/block/iron_door_bottom.png + - VANILLA:assets/minecraft/textures/block/iron_door_top.png WoodPlate: Name: WOOD_PLATE Id: 72 Type: FLAT Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/planks_oak.png + Texture: VANILLA:assets/minecraft/textures/block/oak_planks.png Size: [14,14,1] RedstoneOre: Name: REDSTONE_ORE Id: 73 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/redstone_ore.png + Texture: VANILLA:assets/minecraft/textures/block/redstone_ore.png RedstoneOreOn: Name: GLOWING_REDSTONE_ORE Id: 74 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/redstone_ore.png + Texture: VANILLA:assets/minecraft/textures/block/redstone_ore.png RedstoneTorch: Name: REDSTONE_TORCH_OFF Id: 75 Type: TORCH Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/redstone_torch_off.png + Texture: VANILLA:assets/minecraft/textures/block/redstone_torch_off.png RedstoneTorchOn: Name: REDSTONE_TORCH_ON Id: 76 Type: TORCH Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/redstone_torch_on.png + Texture: VANILLA:assets/minecraft/textures/block/redstone_torch.png StoneButton: Name: STONE_BUTTON Id: 77 Type: FLAT Instruction: Size: [6,4,2] - Texture: VANILLA:assets/minecraft/textures/blocks/stone.png + Texture: VANILLA:assets/minecraft/textures/block/stone.png Snow_0: Name: SNOW Id: 78 @@ -1406,7 +1406,7 @@ Blocks: Instruction: CropFacesV: [14, 0, 14, 0, 14, 0, 14, 0, 0, 0] Delta: [0, 0, 0, 0, 14, 0] - Texture: VANILLA:assets/minecraft/textures/blocks/snow.png + Texture: VANILLA:assets/minecraft/textures/block/snow.png Snow_1: Name: SNOW Id: 78 @@ -1415,7 +1415,7 @@ Blocks: Instruction: CropFacesV: [12, 0, 12, 0, 12, 0, 12, 0, 0, 0] Delta: [0, 0, 0, 0, 12, 0] - Texture: VANILLA:assets/minecraft/textures/blocks/snow.png + Texture: VANILLA:assets/minecraft/textures/block/snow.png Snow_2: Name: SNOW Id: 78 @@ -1424,7 +1424,7 @@ Blocks: Instruction: CropFacesV: [10, 0, 10, 0, 10, 0, 10, 0, 0, 0] Delta: [0, 0, 0, 0, 10, 0] - Texture: VANILLA:assets/minecraft/textures/blocks/snow.png + Texture: VANILLA:assets/minecraft/textures/block/snow.png Snow_3: Name: SNOW Id: 78 @@ -1433,7 +1433,7 @@ Blocks: Instruction: CropFacesV: [8, 0, 8, 0, 8, 0, 8, 0, 0, 0] Delta: [0, 0, 0, 0, 8, 0] - Texture: VANILLA:assets/minecraft/textures/blocks/snow.png + Texture: VANILLA:assets/minecraft/textures/block/snow.png Snow_4: Name: SNOW Id: 78 @@ -1442,7 +1442,7 @@ Blocks: Instruction: CropFacesV: [6, 0, 6, 0, 6, 0, 6, 0, 0, 0] Delta: [0, 0, 0, 0, 6, 0] - Texture: VANILLA:assets/minecraft/textures/blocks/snow.png + Texture: VANILLA:assets/minecraft/textures/block/snow.png Snow_5: Name: SNOW Id: 78 @@ -1451,7 +1451,7 @@ Blocks: Instruction: CropFacesV: [4, 0, 4, 0, 4, 0, 4, 0, 0, 0] Delta: [0, 0, 0, 0, 4, 0] - Texture: VANILLA:assets/minecraft/textures/blocks/snow.png + Texture: VANILLA:assets/minecraft/textures/block/snow.png Snow_6: Name: SNOW Id: 78 @@ -1460,26 +1460,26 @@ Blocks: Instruction: CropFacesV: [2, 0, 2, 0, 2, 0, 2, 0, 0, 0] Delta: [0, 0, 0, 0, 2, 0] - Texture: VANILLA:assets/minecraft/textures/blocks/snow.png + Texture: VANILLA:assets/minecraft/textures/block/snow.png Snow_7: Name: SNOW Id: 78 Data: 7 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/snow.png + Texture: VANILLA:assets/minecraft/textures/block/snow.png Ice: Name: ICE Id: 79 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/ice.png + Texture: VANILLA:assets/minecraft/textures/block/ice.png SnowBlock: Name: SNOW_BLOCK Id: 80 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/snow.png + Texture: VANILLA:assets/minecraft/textures/block/snow.png Cactus: Name: CACTUS Id: 81 @@ -1489,30 +1489,30 @@ Blocks: UseYaw: false Delta: [1, 1, 1, 1, 0, 0] Textures: - - VANILLA:assets/minecraft/textures/blocks/cactus_side.png - - VANILLA:assets/minecraft/textures/blocks/cactus_top.png - - VANILLA:assets/minecraft/textures/blocks/cactus_bottom.png + - VANILLA:assets/minecraft/textures/block/cactus_side.png + - VANILLA:assets/minecraft/textures/block/cactus_top.png + - VANILLA:assets/minecraft/textures/block/cactus_bottom.png ClayBlock: Name: CLAY Id: 82 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/clay.png + Texture: VANILLA:assets/minecraft/textures/block/clay.png SugerCane: Name: SUGAR_CANE_BLOCK Id: 83 Type: DIAGONAL Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/reeds.png + Texture: VANILLA:assets/minecraft/textures/block/sugar_cane.png Jukebox: Name: JUKEBOX Id: 84 Type: BASE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/jukebox_side.png - - VANILLA:assets/minecraft/textures/blocks/jukebox_top.png - - VANILLA:assets/minecraft/textures/blocks/jukebox_side.png + - VANILLA:assets/minecraft/textures/block/jukebox_side.png + - VANILLA:assets/minecraft/textures/block/jukebox_top.png + - VANILLA:assets/minecraft/textures/block/jukebox_side.png #85 - Fence Pumpkin: Name: PUMPKIN @@ -1520,28 +1520,28 @@ Blocks: Type: BASE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/pumpkin_face_off.png - - VANILLA:assets/minecraft/textures/blocks/pumpkin_side.png - - VANILLA:assets/minecraft/textures/blocks/pumpkin_top.png - - VANILLA:assets/minecraft/textures/blocks/pumpkin_top.png + - VANILLA:assets/minecraft/textures/block/carved_pumpkin.png + - VANILLA:assets/minecraft/textures/block/pumpkin_side.png + - VANILLA:assets/minecraft/textures/block/pumpkin_top.png + - VANILLA:assets/minecraft/textures/block/pumpkin_top.png Netherack: Name: NETHERRACK Id: 87 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/netherrack.png + Texture: VANILLA:assets/minecraft/textures/block/netherrack.png SoulSand: Name: SOUL_SAND Id: 88 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/soul_sand.png + Texture: VANILLA:assets/minecraft/textures/block/soul_sand.png Glowstone: Name: GLOWSTONE Id: 89 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/glowstone.png + Texture: VANILLA:assets/minecraft/textures/block/glowstone.png #90 - Nether portal JackOLantern: Name: JACK_O_LANTERN @@ -1549,10 +1549,10 @@ Blocks: Type: BASE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/pumpkin_face_on.png - - VANILLA:assets/minecraft/textures/blocks/pumpkin_side.png - - VANILLA:assets/minecraft/textures/blocks/pumpkin_top.png - - VANILLA:assets/minecraft/textures/blocks/pumpkin_top.png + - VANILLA:assets/minecraft/textures/block/jack_o_lantern.png + - VANILLA:assets/minecraft/textures/block/pumpkin_side.png + - VANILLA:assets/minecraft/textures/block/pumpkin_top.png + - VANILLA:assets/minecraft/textures/block/pumpkin_top.png Cake_0: Name: CAKE Id: 92 @@ -1561,9 +1561,9 @@ Blocks: Instruction: Delta: [1, 1, 1, 1, 8, 0] Textures: - - VANILLA:assets/minecraft/textures/blocks/cake_side.png - - VANILLA:assets/minecraft/textures/blocks/cake_top.png - - VANILLA:assets/minecraft/textures/blocks/cake_bottom.png + - VANILLA:assets/minecraft/textures/block/cake_side.png + - VANILLA:assets/minecraft/textures/block/cake_top.png + - VANILLA:assets/minecraft/textures/block/cake_bottom.png Cake_1: Name: CAKE Id: 92 @@ -1574,10 +1574,10 @@ Blocks: CropFacesH: [0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0] CropFacesV: [0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3] Textures: - - VANILLA:assets/minecraft/textures/blocks/cake_inner.png - - VANILLA:assets/minecraft/textures/blocks/cake_side.png - - VANILLA:assets/minecraft/textures/blocks/cake_top.png - - VANILLA:assets/minecraft/textures/blocks/cake_bottom.png + - VANILLA:assets/minecraft/textures/block/cake_inner.png + - VANILLA:assets/minecraft/textures/block/cake_side.png + - VANILLA:assets/minecraft/textures/block/cake_top.png + - VANILLA:assets/minecraft/textures/block/cake_bottom.png Cake_2: Name: CAKE Id: 92 @@ -1588,10 +1588,10 @@ Blocks: CropFacesH: [0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0] CropFacesV: [0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 5] Textures: - - VANILLA:assets/minecraft/textures/blocks/cake_inner.png - - VANILLA:assets/minecraft/textures/blocks/cake_side.png - - VANILLA:assets/minecraft/textures/blocks/cake_top.png - - VANILLA:assets/minecraft/textures/blocks/cake_bottom.png + - VANILLA:assets/minecraft/textures/block/cake_inner.png + - VANILLA:assets/minecraft/textures/block/cake_side.png + - VANILLA:assets/minecraft/textures/block/cake_top.png + - VANILLA:assets/minecraft/textures/block/cake_bottom.png Cake_3: Name: CAKE Id: 92 @@ -1602,10 +1602,10 @@ Blocks: CropFacesH: [0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0] CropFacesV: [0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7] Textures: - - VANILLA:assets/minecraft/textures/blocks/cake_inner.png - - VANILLA:assets/minecraft/textures/blocks/cake_side.png - - VANILLA:assets/minecraft/textures/blocks/cake_top.png - - VANILLA:assets/minecraft/textures/blocks/cake_bottom.png + - VANILLA:assets/minecraft/textures/block/cake_inner.png + - VANILLA:assets/minecraft/textures/block/cake_side.png + - VANILLA:assets/minecraft/textures/block/cake_top.png + - VANILLA:assets/minecraft/textures/block/cake_bottom.png Cake_4: Name: CAKE Id: 92 @@ -1616,10 +1616,10 @@ Blocks: CropFacesH: [0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0] CropFacesV: [0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 9] Textures: - - VANILLA:assets/minecraft/textures/blocks/cake_inner.png - - VANILLA:assets/minecraft/textures/blocks/cake_side.png - - VANILLA:assets/minecraft/textures/blocks/cake_top.png - - VANILLA:assets/minecraft/textures/blocks/cake_bottom.png + - VANILLA:assets/minecraft/textures/block/cake_inner.png + - VANILLA:assets/minecraft/textures/block/cake_side.png + - VANILLA:assets/minecraft/textures/block/cake_top.png + - VANILLA:assets/minecraft/textures/block/cake_bottom.png Cake_5: Name: CAKE Id: 92 @@ -1630,10 +1630,10 @@ Blocks: CropFacesH: [0, 0, 0, 0, 0, 11, 11, 0, 0, 0, 0, 0] CropFacesV: [0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11] Textures: - - VANILLA:assets/minecraft/textures/blocks/cake_inner.png - - VANILLA:assets/minecraft/textures/blocks/cake_side.png - - VANILLA:assets/minecraft/textures/blocks/cake_top.png - - VANILLA:assets/minecraft/textures/blocks/cake_bottom.png + - VANILLA:assets/minecraft/textures/block/cake_inner.png + - VANILLA:assets/minecraft/textures/block/cake_side.png + - VANILLA:assets/minecraft/textures/block/cake_top.png + - VANILLA:assets/minecraft/textures/block/cake_bottom.png Cake_6: Name: CAKE Id: 92 @@ -1644,10 +1644,10 @@ Blocks: CropFacesH: [0, 0, 0, 0, 0, 13, 13, 0, 0, 0, 0, 0] CropFacesV: [0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 13] Textures: - - VANILLA:assets/minecraft/textures/blocks/cake_inner.png - - VANILLA:assets/minecraft/textures/blocks/cake_side.png - - VANILLA:assets/minecraft/textures/blocks/cake_top.png - - VANILLA:assets/minecraft/textures/blocks/cake_bottom.png + - VANILLA:assets/minecraft/textures/block/cake_inner.png + - VANILLA:assets/minecraft/textures/block/cake_side.png + - VANILLA:assets/minecraft/textures/block/cake_top.png + - VANILLA:assets/minecraft/textures/block/cake_bottom.png #93 - Redstone repeater #94 - Redstone repeater on StainedGlass: @@ -1656,22 +1656,22 @@ Blocks: Type: MULTI Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/glass_white.png - - VANILLA:assets/minecraft/textures/blocks/glass_orange.png - - VANILLA:assets/minecraft/textures/blocks/glass_magenta.png - - VANILLA:assets/minecraft/textures/blocks/glass_light_blue.png - - VANILLA:assets/minecraft/textures/blocks/glass_yellow.png - - VANILLA:assets/minecraft/textures/blocks/glass_lime.png - - VANILLA:assets/minecraft/textures/blocks/glass_pink.png - - VANILLA:assets/minecraft/textures/blocks/glass_gray.png - - VANILLA:assets/minecraft/textures/blocks/glass_silver.png - - VANILLA:assets/minecraft/textures/blocks/glass_cyan.png - - VANILLA:assets/minecraft/textures/blocks/glass_purple.png - - VANILLA:assets/minecraft/textures/blocks/glass_blue.png - - VANILLA:assets/minecraft/textures/blocks/glass_brown.png - - VANILLA:assets/minecraft/textures/blocks/glass_green.png - - VANILLA:assets/minecraft/textures/blocks/glass_red.png - - VANILLA:assets/minecraft/textures/blocks/glass_black.png + - VANILLA:assets/minecraft/textures/block/white_stained_glass.png + - VANILLA:assets/minecraft/textures/block/orange_stained_glass.png + - VANILLA:assets/minecraft/textures/block/magenta_stained_glass.png + - VANILLA:assets/minecraft/textures/block/light_blue_stained_glass.png + - VANILLA:assets/minecraft/textures/block/yellow_stained_glass.png + - VANILLA:assets/minecraft/textures/block/lime_stained_glass.png + - VANILLA:assets/minecraft/textures/block/pink_stained_glass.png + - VANILLA:assets/minecraft/textures/block/gray_stained_glass.png + - VANILLA:assets/minecraft/textures/block/light_gray_stained_glass.png + - VANILLA:assets/minecraft/textures/block/cyan_stained_glass.png + - VANILLA:assets/minecraft/textures/block/purple_stained_glass.png + - VANILLA:assets/minecraft/textures/block/blue_stained_glass.png + - VANILLA:assets/minecraft/textures/block/brown_stained_glass.png + - VANILLA:assets/minecraft/textures/block/green_stained_glass.png + - VANILLA:assets/minecraft/textures/block/red_stained_glass.png + - VANILLA:assets/minecraft/textures/block/black_stained_glass.png TrapDoor_0: Name: TRAP_DOOR Id: 96 @@ -1679,7 +1679,7 @@ Blocks: Data: 0 Instruction: Face: Bottom - Texture: VANILLA:assets/minecraft/textures/blocks/trapdoor.png + Texture: VANILLA:assets/minecraft/textures/block/oak_trapdoor.png TrapDoor_4: Name: TRAP_DOOR Id: 96 @@ -1687,7 +1687,7 @@ Blocks: Data: 4 Instruction: Face: Front - Texture: VANILLA:assets/minecraft/textures/blocks/trapdoor.png + Texture: VANILLA:assets/minecraft/textures/block/oak_trapdoor.png TrapDoor_5: Name: TRAP_DOOR Id: 96 @@ -1695,7 +1695,7 @@ Blocks: Data: 5 Instruction: Face: Back - Texture: VANILLA:assets/minecraft/textures/blocks/trapdoor.png + Texture: VANILLA:assets/minecraft/textures/block/oak_trapdoor.png TrapDoor_6: Name: TRAP_DOOR Id: 96 @@ -1703,7 +1703,7 @@ Blocks: Data: 6 Instruction: Face: Left - Texture: VANILLA:assets/minecraft/textures/blocks/trapdoor.png + Texture: VANILLA:assets/minecraft/textures/block/oak_trapdoor.png TrapDoor_7: Name: TRAP_DOOR Id: 96 @@ -1711,7 +1711,7 @@ Blocks: Data: 7 Instruction: Face: Right - Texture: VANILLA:assets/minecraft/textures/blocks/trapdoor.png + Texture: VANILLA:assets/minecraft/textures/block/oak_trapdoor.png TrapDoor_8: Name: TRAP_DOOR Id: 96 @@ -1719,38 +1719,38 @@ Blocks: Data: 8 Instruction: Face: Top - Texture: VANILLA:assets/minecraft/textures/blocks/trapdoor.png + Texture: VANILLA:assets/minecraft/textures/block/oak_trapdoor.png MonsterEgg_Stone: Name: MONSTER_EGGS Id: 97 Data: 0 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/stone.png + Texture: VANILLA:assets/minecraft/textures/block/stone.png MonsterEgg_Cobble: Name: MONSTER_EGGS Id: 97 Data: 1 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/cobblestone.png + Texture: VANILLA:assets/minecraft/textures/block/cobblestone.png MonsterEgg_Brick: Name: MONSTER_EGGS Id: 97 Data: 2 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/stonebrick.png + Texture: VANILLA:assets/minecraft/textures/block/stone_bricks.png StoneBricks: Name: SMOOTH_BRICK Id: 98 Type: MULTI Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/stonebrick.png - - VANILLA:assets/minecraft/textures/blocks/stonebrick_mossy.png - - VANILLA:assets/minecraft/textures/blocks/stonebrick_cracked.png - - VANILLA:assets/minecraft/textures/blocks/stonebrick_carved.png + - VANILLA:assets/minecraft/textures/block/stone_bricks.png + - VANILLA:assets/minecraft/textures/block/mossy_stone_bricks.png + - VANILLA:assets/minecraft/textures/block/cracked_stone_bricks.png + - VANILLA:assets/minecraft/textures/block/chiseled_stone_bricks.png #99 - Huge brow mushroom #100 - Huge red mushroom IronBar: @@ -1758,39 +1758,39 @@ Blocks: Id: 101 Type: PLANE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/iron_bars.png + Texture: VANILLA:assets/minecraft/textures/block/iron_bars.png GlasPlane: Name: THIN_GLASS Id: 102 Type: PLANE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/glass.png - - VANILLA:assets/minecraft/textures/blocks/glass_pane_top.png + - VANILLA:assets/minecraft/textures/block/glass.png + - VANILLA:assets/minecraft/textures/block/glass_pane_top.png Melon: Name: MELON_BLOCK Id: 103 Type: BASE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/melon_side.png - - VANILLA:assets/minecraft/textures/blocks/melon_top.png + - VANILLA:assets/minecraft/textures/block/melon_side.png + - VANILLA:assets/minecraft/textures/block/melon_top.png PumpkinStem: Name: PUMPKIN_STEM Id: 104 Type: STEM Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/pumpkin_stem_disconnected.png - - VANILLA:assets/minecraft/textures/blocks/pumpkin_stem_connected.png + - VANILLA:assets/minecraft/textures/block/pumpkin_stem.png + - VANILLA:assets/minecraft/textures/block/attached_pumpkin_stem.png MelonStem: Name: MELON_STEM Id: 105 Type: STEM Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/melon_stem_disconnected.png - - VANILLA:assets/minecraft/textures/blocks/melon_stem_connected.png + - VANILLA:assets/minecraft/textures/block/melon_stem.png + - VANILLA:assets/minecraft/textures/block/attached_melon_stem.png Vine: Name: VINE Id: 106 @@ -1799,7 +1799,7 @@ Blocks: Instruction: Face: Front Color: [84, 75] - Texture: VANILLA:assets/minecraft/textures/blocks/vine.png + Texture: VANILLA:assets/minecraft/textures/block/vine.png Vine_top: Name: VINE Id: 106 @@ -1810,10 +1810,10 @@ Blocks: Color: [84, 75] Textures: - __none__ - - VANILLA:assets/minecraft/textures/blocks/vine.png + - VANILLA:assets/minecraft/textures/block/vine.png - __none__ - __none__ - - VANILLA:assets/minecraft/textures/blocks/vine.png + - VANILLA:assets/minecraft/textures/block/vine.png - __none__ #107 - FENCE_GATE BrickStairs: @@ -1822,23 +1822,23 @@ Blocks: Type: STAIRS Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/brick.png + - VANILLA:assets/minecraft/textures/block/bricks.png SmoothStairs: Name: SMOOTH_STAIRS Id: 109 Type: STAIRS Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/stonebrick.png + - VANILLA:assets/minecraft/textures/block/stone_bricks.png Mycel: Name: MYCEL Id: 110 Type: BASE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/mycelium_side.png - - VANILLA:assets/minecraft/textures/blocks/mycelium_top.png - - VANILLA:assets/minecraft/textures/blocks/dirt.png + - VANILLA:assets/minecraft/textures/block/mycelium_side.png + - VANILLA:assets/minecraft/textures/block/mycelium_top.png + - VANILLA:assets/minecraft/textures/block/dirt.png WaterLily: Name: WATER_LILY Id: 111 @@ -1846,27 +1846,27 @@ Blocks: Instruction: Color: [96, 61] Face: Bottom - Texture: VANILLA:assets/minecraft/textures/blocks/waterlily.png + Texture: VANILLA:assets/minecraft/textures/block/lily_pad.png NetherBrick: Name: NETHER_BRISK Id: 112 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/nether_brick.png + Texture: VANILLA:assets/minecraft/textures/block/nether_bricks.png NetherBrickStairs: Name: NETHER_BRISK_STAIRS Id: 114 Type: STAIRS Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/nether_brick.png + - VANILLA:assets/minecraft/textures/block/nether_bricks.png NetherWarts_0: Name: NETHER_WARTS Id: 115 Type: CROPS Data: 0 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/nether_wart_stage_0.png + Texture: VANILLA:assets/minecraft/textures/block/nether_wart_stage0.png Delta: 3 NetherWarts_1: Name: NETHER_WARTS @@ -1874,7 +1874,7 @@ Blocks: Type: CROPS Data: 1 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/nether_wart_stage_1.png + Texture: VANILLA:assets/minecraft/textures/block/nether_wart_stage1.png Delta: 3 NetherWarts_2: Name: NETHER_WARTS @@ -1882,7 +1882,7 @@ Blocks: Type: CROPS Data: 2 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/nether_wart_stage_2.png + Texture: VANILLA:assets/minecraft/textures/block/nether_wart_stage2.png Delta: 3 Cauldron_0: Name: CAULDRON @@ -1897,11 +1897,11 @@ Blocks: TextureRows: [0, 16] TexturesRes: [16, 16, 16, 16, 16] Textures: - - VANILLA:assets/minecraft/textures/blocks/cauldron_top.png - - VANILLA:assets/minecraft/textures/blocks/cauldron_bottom.png - - VANILLA:assets/minecraft/textures/blocks/cauldron_side.png - - VANILLA:assets/minecraft/textures/blocks/cauldron_inner.png - - VANILLA:assets/minecraft/textures/blocks/water_still.png + - VANILLA:assets/minecraft/textures/block/cauldron_top.png + - VANILLA:assets/minecraft/textures/block/cauldron_bottom.png + - VANILLA:assets/minecraft/textures/block/cauldron_side.png + - VANILLA:assets/minecraft/textures/block/cauldron_inner.png + - VANILLA:assets/minecraft/textures/block/water_still.png Parts: Watter: Pos: [0, 3, 0] @@ -1936,11 +1936,11 @@ Blocks: TextureRows: [0, 16] TexturesRes: [16, 16, 16, 16, 16] Textures: - - VANILLA:assets/minecraft/textures/blocks/cauldron_top.png - - VANILLA:assets/minecraft/textures/blocks/cauldron_bottom.png - - VANILLA:assets/minecraft/textures/blocks/cauldron_side.png - - VANILLA:assets/minecraft/textures/blocks/cauldron_inner.png - - VANILLA:assets/minecraft/textures/blocks/water_still.png + - VANILLA:assets/minecraft/textures/block/cauldron_top.png + - VANILLA:assets/minecraft/textures/block/cauldron_bottom.png + - VANILLA:assets/minecraft/textures/block/cauldron_side.png + - VANILLA:assets/minecraft/textures/block/cauldron_inner.png + - VANILLA:assets/minecraft/textures/block/water_still.png Parts: Watter: Pos: [0, 3, 0] @@ -1975,11 +1975,11 @@ Blocks: TextureRows: [0, 16] TexturesRes: [16, 16, 16, 16, 16] Textures: - - VANILLA:assets/minecraft/textures/blocks/cauldron_top.png - - VANILLA:assets/minecraft/textures/blocks/cauldron_bottom.png - - VANILLA:assets/minecraft/textures/blocks/cauldron_side.png - - VANILLA:assets/minecraft/textures/blocks/cauldron_inner.png - - VANILLA:assets/minecraft/textures/blocks/water_still.png + - VANILLA:assets/minecraft/textures/block/cauldron_top.png + - VANILLA:assets/minecraft/textures/block/cauldron_bottom.png + - VANILLA:assets/minecraft/textures/block/cauldron_side.png + - VANILLA:assets/minecraft/textures/block/cauldron_inner.png + - VANILLA:assets/minecraft/textures/block/water_still.png Parts: Watter: Pos: [0, 3, 0] @@ -2014,11 +2014,11 @@ Blocks: TextureRows: [0, 16] TexturesRes: [16, 16, 16, 16, 16] Textures: - - VANILLA:assets/minecraft/textures/blocks/cauldron_top.png - - VANILLA:assets/minecraft/textures/blocks/cauldron_bottom.png - - VANILLA:assets/minecraft/textures/blocks/cauldron_side.png - - VANILLA:assets/minecraft/textures/blocks/cauldron_inner.png - - VANILLA:assets/minecraft/textures/blocks/water_still.png + - VANILLA:assets/minecraft/textures/block/cauldron_top.png + - VANILLA:assets/minecraft/textures/block/cauldron_bottom.png + - VANILLA:assets/minecraft/textures/block/cauldron_side.png + - VANILLA:assets/minecraft/textures/block/cauldron_inner.png + - VANILLA:assets/minecraft/textures/block/water_still.png Parts: Watter: Pos: [0, 3, 0] @@ -2045,73 +2045,73 @@ Blocks: Id: 121 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/end_stone.png + Texture: VANILLA:assets/minecraft/textures/block/end_stone.png RsLamp_off: Name: REDSTONE_LAMP_OFF Id: 123 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/redstone_lamp_off.png + Texture: VANILLA:assets/minecraft/textures/block/redstone_lamp.png RsLamp_on: Name: REDSTONE_LAMP_ON Id: 124 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/redstone_lamp_on.png + Texture: VANILLA:assets/minecraft/textures/block/redstone_lamp_on.png Slab_wood_dbl: Name: WOOD_DOUBLE_STEP Id: 125 Type: MULTI Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/planks_oak.png - - VANILLA:assets/minecraft/textures/blocks/planks_spruce.png - - VANILLA:assets/minecraft/textures/blocks/planks_birch.png - - VANILLA:assets/minecraft/textures/blocks/planks_jungle.png - - VANILLA:assets/minecraft/textures/blocks/planks_acacia.png - - VANILLA:assets/minecraft/textures/blocks/planks_big_oak.png + - VANILLA:assets/minecraft/textures/block/oak_planks.png + - VANILLA:assets/minecraft/textures/block/spruce_planks.png + - VANILLA:assets/minecraft/textures/block/birch_planks.png + - VANILLA:assets/minecraft/textures/block/jungle_planks.png + - VANILLA:assets/minecraft/textures/block/acacia_planks.png + - VANILLA:assets/minecraft/textures/block/dark_oak_planks.png Slab_oak: Name: WOOD_STEP Id: 126 Type: SLAB Data: 0 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/planks_oak.png + Texture: VANILLA:assets/minecraft/textures/block/oak_planks.png Slab_spruce: Name: WOOD_STEP Id: 126 Type: SLAB Data: 1 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/planks_spruce.png + Texture: VANILLA:assets/minecraft/textures/block/spruce_planks.png Slab_birch: Name: WOOD_STEP Id: 126 Type: SLAB Data: 2 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/planks_birch.png + Texture: VANILLA:assets/minecraft/textures/block/birch_planks.png Slab_jungle: Name: WOOD_STEP Id: 126 Type: SLAB Data: 3 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/planks_jungle.png + Texture: VANILLA:assets/minecraft/textures/block/jungle_planks.png Slab_acacia: Name: WOOD_STEP Id: 126 Type: SLAB Data: 4 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/planks_acacia.png + Texture: VANILLA:assets/minecraft/textures/block/acacia_planks.png Slab_darkOak: Name: WOOD_STEP Id: 126 Type: SLAB Data: 5 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/planks_big_oak.png + Texture: VANILLA:assets/minecraft/textures/block/dark_oak_planks.png Slab_oak_up: Name: WOOD_STEP Id: 126 @@ -2119,7 +2119,7 @@ Blocks: Data: 8 Instruction: IsTop: true - Texture: VANILLA:assets/minecraft/textures/blocks/planks_oak.png + Texture: VANILLA:assets/minecraft/textures/block/oak_planks.png Slab_spruce_up: Name: WOOD_STEP Id: 126 @@ -2127,7 +2127,7 @@ Blocks: Data: 9 Instruction: IsTop: true - Texture: VANILLA:assets/minecraft/textures/blocks/planks_spruce.png + Texture: VANILLA:assets/minecraft/textures/block/spruce_planks.png Slab_birch_up: Name: WOOD_STEP Id: 126 @@ -2135,7 +2135,7 @@ Blocks: Data: 10 Instruction: IsTop: true - Texture: VANILLA:assets/minecraft/textures/blocks/planks_birch.png + Texture: VANILLA:assets/minecraft/textures/block/birch_planks.png Slab_jungle_up: Name: WOOD_STEP Id: 126 @@ -2143,36 +2143,36 @@ Blocks: Data: 11 Instruction: IsTop: true - Texture: VANILLA:assets/minecraft/textures/blocks/planks_jungle.png + Texture: VANILLA:assets/minecraft/textures/block/jungle_planks.png Slab_acacia_up: Name: WOOD_STEP Id: 126 Type: SLAB Data: 12 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/planks_acacia.png + Texture: VANILLA:assets/minecraft/textures/block/acacia_planks.png Slab_darkOak_up: Name: WOOD_STEP Id: 126 Type: SLAB Data: 13 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/planks_big_oak.png + Texture: VANILLA:assets/minecraft/textures/block/dark_oak_planks.png SandstoneStairs: Name: SANDSTONE_STAIRS Id: 128 Type: STAIRS Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/sandstone_normal.png - - VANILLA:assets/minecraft/textures/blocks/sandstone_top.png - - VANILLA:assets/minecraft/textures/blocks/sandstone_bottom.png + - VANILLA:assets/minecraft/textures/block/sandstone.png + - VANILLA:assets/minecraft/textures/block/sandstone_top.png + - VANILLA:assets/minecraft/textures/block/sandstone_bottom.png EmeraldOre: Name: EMERALD_ORE Id: 129 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/emerald_ore.png + Texture: VANILLA:assets/minecraft/textures/block/emerald_ore.png EnderChest: Name: ENDER_CHEST Id: 130 @@ -2184,41 +2184,47 @@ Blocks: Id: 133 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/emerald_block.png + Texture: VANILLA:assets/minecraft/textures/block/emerald_block.png SpruceStairs: Name: SPRUCE_WOOD_STAIRS Id: 134 Type: STAIRS Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/planks_spruce.png + - VANILLA:assets/minecraft/textures/block/spruce_planks.png BirchStairs: Name: BIRCH_WOOD_STAIRS Id: 135 Type: STAIRS Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/planks_birch.png + - VANILLA:assets/minecraft/textures/block/birch_planks.png JungleStairs: Name: JUNGLE_WOOD_STAIRS Id: 136 Type: STAIRS Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/planks_jungle.png + - VANILLA:assets/minecraft/textures/block/jungle_planks.png CommandBlock: Name: COMMAND Id: 137 Type: Base Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/command_block.png + Textures: + - VANILLA:assets/minecraft/textures/block/command_block_back.png + - VANILLA:assets/minecraft/textures/block/command_block_front.png + - VANILLA:assets/minecraft/textures/block/command_block_side.png + - VANILLA:assets/minecraft/textures/block/command_block_side.png + - VANILLA:assets/minecraft/textures/block/command_block_side.png + - VANILLA:assets/minecraft/textures/block/command_block_side.png Carrot_0: Name: CARROT Id: 391 Type: CROPS Data: 0 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/carrots_stage_0.png + Texture: VANILLA:assets/minecraft/textures/block/carrots_stage0.png Delta: 3 Carrot_1: Name: CARROT @@ -2226,7 +2232,7 @@ Blocks: Type: CROPS Data: 1 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/carrots_stage_1.png + Texture: VANILLA:assets/minecraft/textures/block/carrots_stage1.png Delta: 3 Carrot_2: Name: CARROT @@ -2234,7 +2240,7 @@ Blocks: Type: CROPS Data: 2 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/carrots_stage_2.png + Texture: VANILLA:assets/minecraft/textures/block/carrots_stage2.png Delta: 3 Carrot_3: Name: CARROT @@ -2242,7 +2248,7 @@ Blocks: Type: CROPS Data: 3 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/carrots_stage_3.png + Texture: VANILLA:assets/minecraft/textures/block/carrots_stage3.png Delta: 3 Potatoes_0: Name: POTATO @@ -2250,7 +2256,7 @@ Blocks: Type: CROPS Data: 0 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/potatoes_stage_0.png + Texture: VANILLA:assets/minecraft/textures/block/potatoes_stage0.png Delta: 3 Potatoes_1: Name: POTATO @@ -2258,7 +2264,7 @@ Blocks: Type: CROPS Data: 1 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/potatoes_stage_1.png + Texture: VANILLA:assets/minecraft/textures/block/potatoes_stage1.png Delta: 3 Potatoes_2: Name: POTATO @@ -2266,7 +2272,7 @@ Blocks: Type: CROPS Data: 2 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/potatoes_stage_2.png + Texture: VANILLA:assets/minecraft/textures/block/potatoes_stage2.png Delta: 3 Potatoes_3: Name: POTATO @@ -2274,14 +2280,14 @@ Blocks: Type: CROPS Data: 3 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/potatoes_stage_3.png + Texture: VANILLA:assets/minecraft/textures/block/potatoes_stage3.png Delta: 3 WoodButton: Name: WOOD_BUTTON Id: 143 Type: FLAT Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/planks_oak.png + Texture: VANILLA:assets/minecraft/textures/block/oak_planks.png Size: [6, 4, 2] Face: Back TrappedChest: @@ -2304,14 +2310,14 @@ Blocks: Id: 147 Type: FLAT Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/gold_block.png + Texture: VANILLA:assets/minecraft/textures/block/gold_block.png Size: [14,14,1] IronPlate: Name: IRON_PLATE Id: 148 Type: FLAT Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/iron_block.png + Texture: VANILLA:assets/minecraft/textures/block/iron_block.png Size: [14,14,1] DayLightDetector: Name: DAYLIGHT_DETECTOR @@ -2325,8 +2331,8 @@ Blocks: TextureRows: [0, 7, 16] TexturesRes: [16, 16] Textures: - - VANILLA:assets/minecraft/textures/blocks/daylight_detector_top.png - - VANILLA:assets/minecraft/textures/blocks/daylight_detector_side.png + - VANILLA:assets/minecraft/textures/block/daylight_detector_top.png + - VANILLA:assets/minecraft/textures/block/daylight_detector_side.png Parts: Main: Pos: [0, 0, 0] @@ -2343,13 +2349,13 @@ Blocks: Id: 152 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/redstone_block.png + Texture: VANILLA:assets/minecraft/textures/block/redstone_block.png QuartzOre: Name: QUARTZ_ORE Id: 153 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/quartz_ore.png + Texture: VANILLA:assets/minecraft/textures/block/nether_quartz_ore.png QuartzBlock: Name: QUARTZ_BLOCK Id: 155 @@ -2357,9 +2363,9 @@ Blocks: Data: 0 Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/quartz_block_side.png - - VANILLA:assets/minecraft/textures/blocks/quartz_block_top.png - - VANILLA:assets/minecraft/textures/blocks/quartz_block_bottom.png + - VANILLA:assets/minecraft/textures/block/quartz_block_side.png + - VANILLA:assets/minecraft/textures/block/quartz_block_top.png + - VANILLA:assets/minecraft/textures/block/quartz_block_bottom.png QuartzBlock_Chiseled: Name: QUARTZ_BLOCK Id: 155 @@ -2367,8 +2373,8 @@ Blocks: Data: 1 Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/quartz_block_chiseled.png - - VANILLA:assets/minecraft/textures/blocks/quartz_block_chiseled_top.png + - VANILLA:assets/minecraft/textures/block/chiseled_quartz_block.png + - VANILLA:assets/minecraft/textures/block/chiseled_quartz_block_top.png QuartzBlock_Pilar: Name: QUARTZ_BLOCK Id: 155 @@ -2378,24 +2384,24 @@ Blocks: UsePitch: true UseYaw: true Textures: - - VANILLA:assets/minecraft/textures/blocks/quartz_block_lines.png - - VANILLA:assets/minecraft/textures/blocks/quartz_block_lines_top.png + - VANILLA:assets/minecraft/textures/block/quartz_pillar.png + - VANILLA:assets/minecraft/textures/block/quartz_pillar_top.png QuartzStairs: Name: QUARTZ_STAIRS Id: 156 Type: STAIRS Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/quartz_block_side.png - - VANILLA:assets/minecraft/textures/blocks/quartz_block_top.png - - VANILLA:assets/minecraft/textures/blocks/quartz_block_bottom.png + - VANILLA:assets/minecraft/textures/block/quartz_block_side.png + - VANILLA:assets/minecraft/textures/block/quartz_block_top.png + - VANILLA:assets/minecraft/textures/block/quartz_block_bottom.png ActivatorRail_0: Name: ACTIVATOR_RAIL Id: 157 Type: FLAT Data: 0 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/rail_activator.png + Texture: VANILLA:assets/minecraft/textures/block/activator_rail.png Face: Bottom ActivatorRail_2: Name: ACTIVATOR_RAIL @@ -2405,7 +2411,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_activator.png + Texture: VANILLA:assets/minecraft/textures/block/activator_rail.png Faces: [Right] ActivatorRail_3: Name: ACTIVATOR_RAIL @@ -2415,7 +2421,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_activator.png + Texture: VANILLA:assets/minecraft/textures/block/activator_rail.png Faces: [Left] ActivatorRail_4: Name: ACTIVATOR_RAIL @@ -2425,7 +2431,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_activator.png + Texture: VANILLA:assets/minecraft/textures/block/activator_rail.png Faces: [Back] ActivatorRail_5: Name: ACTIVATOR_RAIL @@ -2435,7 +2441,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_activator.png + Texture: VANILLA:assets/minecraft/textures/block/activator_rail.png Faces: [Front] ActivatorRail_8: Name: ACTIVATOR_RAIL @@ -2443,7 +2449,7 @@ Blocks: Type: FLAT Data: 8 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/rail_activator_powered.png + Texture: VANILLA:assets/minecraft/textures/block/activator_rail_on.png Face: Bottom ActivatorRail_10: Name: ACTIVATOR_RAIL @@ -2453,7 +2459,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_activator_powered.png + Texture: VANILLA:assets/minecraft/textures/block/activator_rail_on.png Faces: [Right] ActivatorRail_11: Name: ACTIVATOR_RAIL @@ -2463,7 +2469,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_activator_powered.png + Texture: VANILLA:assets/minecraft/textures/block/activator_rail_on.png Faces: [Left] ActivatorRail_12: Name: ACTIVATOR_RAIL @@ -2473,7 +2479,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_activator_powered.png + Texture: VANILLA:assets/minecraft/textures/block/activator_rail_on.png Faces: [Back] ActivatorRail_13: Name: ACTIVATOR_RAIL @@ -2483,7 +2489,7 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/rail_activator_powered.png + Texture: VANILLA:assets/minecraft/textures/block/activator_rail_on.png Faces: [Front] Dropper: Name: DROPPER @@ -2492,10 +2498,10 @@ Blocks: Data: 0 Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/dropper_front_horizontal.png - - VANILLA:assets/minecraft/textures/blocks/furnace_side.png - - VANILLA:assets/minecraft/textures/blocks/furnace_top.png - - VANILLA:assets/minecraft/textures/blocks/furnace_top.png + - VANILLA:assets/minecraft/textures/block/dropper_front.png + - VANILLA:assets/minecraft/textures/block/furnace_side.png + - VANILLA:assets/minecraft/textures/block/furnace_top.png + - VANILLA:assets/minecraft/textures/block/furnace_top.png DropperTop: Name: DROPPER Id: 158 @@ -2503,9 +2509,9 @@ Blocks: Data: 1 Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/furnace_side.png - - VANILLA:assets/minecraft/textures/blocks/dropper_front_vertical.png - - VANILLA:assets/minecraft/textures/blocks/furnace_top.png + - VANILLA:assets/minecraft/textures/block/furnace_side.png + - VANILLA:assets/minecraft/textures/block/dropper_front_vertical.png + - VANILLA:assets/minecraft/textures/block/furnace_top.png DropperBottom: Name: DROPPER Id: 158 @@ -2513,31 +2519,31 @@ Blocks: Data: 2 Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/furnace_side.png - - VANILLA:assets/minecraft/textures/blocks/furnace_top.png - - VANILLA:assets/minecraft/textures/blocks/dropper_front_vertical.png - StainedClay: - Name: STAINED_CLAY + - VANILLA:assets/minecraft/textures/block/furnace_side.png + - VANILLA:assets/minecraft/textures/block/furnace_top.png + - VANILLA:assets/minecraft/textures/block/dropper_front_vertical.png + StainedTerracotta: + Name: STAINED_TERRACOTTA Id: 159 Type: MULTI Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_white.png - - VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_orange.png - - VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_magenta.png - - VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_light_blue.png - - VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_yellow.png - - VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_lime.png - - VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_pink.png - - VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_gray.png - - VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_silver.png - - VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_cyan.png - - VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_purple.png - - VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_blue.png - - VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_brown.png - - VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_green.png - - VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_red.png - - VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_black.png + - VANILLA:assets/minecraft/textures/block/white_terracotta.png + - VANILLA:assets/minecraft/textures/block/orange_terracotta.png + - VANILLA:assets/minecraft/textures/block/magenta_terracotta.png + - VANILLA:assets/minecraft/textures/block/light_blue_terracotta.png + - VANILLA:assets/minecraft/textures/block/yellow_terracotta.png + - VANILLA:assets/minecraft/textures/block/lime_terracotta.png + - VANILLA:assets/minecraft/textures/block/pink_terracotta.png + - VANILLA:assets/minecraft/textures/block/gray_terracotta.png + - VANILLA:assets/minecraft/textures/block/light_gray_terracotta.png + - VANILLA:assets/minecraft/textures/block/cyan_terracotta.png + - VANILLA:assets/minecraft/textures/block/purple_terracotta.png + - VANILLA:assets/minecraft/textures/block/blue_terracotta.png + - VANILLA:assets/minecraft/textures/block/brown_terracotta.png + - VANILLA:assets/minecraft/textures/block/green_terracotta.png + - VANILLA:assets/minecraft/textures/block/red_terracotta.png + - VANILLA:assets/minecraft/textures/block/black_terracotta.png WhiteGlasPlane: Name: STAINED_THIN_GLASS Id: 160 @@ -2546,8 +2552,8 @@ Blocks: Type: PLANE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/glass_white.png - - VANILLA:assets/minecraft/textures/blocks/glass_pane_top_white.png + - VANILLA:assets/minecraft/textures/block/white_stained_glass.png + - VANILLA:assets/minecraft/textures/block/white_stained_glass_pane_top.png OrangeGlasPlane: Name: STAINED_THIN_GLASS Id: 160 @@ -2556,8 +2562,8 @@ Blocks: Type: PLANE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/glass_orange.png - - VANILLA:assets/minecraft/textures/blocks/glass_pane_top_orange.png + - VANILLA:assets/minecraft/textures/block/orange_stained_glass.png + - VANILLA:assets/minecraft/textures/block/orange_stained_glass_pane_top.png MagentaGlasPlane: Name: STAINED_THIN_GLASS Id: 160 @@ -2566,8 +2572,8 @@ Blocks: Type: PLANE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/glass_magenta.png - - VANILLA:assets/minecraft/textures/blocks/glass_pane_top_magenta.png + - VANILLA:assets/minecraft/textures/block/magenta_stained_glass.png + - VANILLA:assets/minecraft/textures/block/magenta_stained_glass_pane_top.png LBlueGlasPlane: Name: STAINED_THIN_GLASS Id: 160 @@ -2576,8 +2582,8 @@ Blocks: Type: PLANE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/glass_light_blue.png - - VANILLA:assets/minecraft/textures/blocks/glass_pane_top_light_blue.png + - VANILLA:assets/minecraft/textures/block/light_blue_stained_glass.png + - VANILLA:assets/minecraft/textures/block/light_blue_stained_glass_pane_top.png YellowGlasPlane: Name: STAINED_THIN_GLASS Id: 160 @@ -2586,8 +2592,8 @@ Blocks: Type: PLANE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/glass_yellow.png - - VANILLA:assets/minecraft/textures/blocks/glass_pane_top_yellow.png + - VANILLA:assets/minecraft/textures/block/yellow_stained_glass.png + - VANILLA:assets/minecraft/textures/block/yellow_stained_glass_pane_top.png LimeGlasPlane: Name: STAINED_THIN_GLASS Id: 160 @@ -2596,8 +2602,8 @@ Blocks: Type: PLANE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/glass_lime.png - - VANILLA:assets/minecraft/textures/blocks/glass_pane_top_lime.png + - VANILLA:assets/minecraft/textures/block/lime_stained_glass.png + - VANILLA:assets/minecraft/textures/block/lime_stained_glass_pane_top.png PinkGlasPlane: Name: STAINED_THIN_GLASS Id: 160 @@ -2606,8 +2612,8 @@ Blocks: Type: PLANE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/glass_pink.png - - VANILLA:assets/minecraft/textures/blocks/glass_pane_top_pink.png + - VANILLA:assets/minecraft/textures/block/pink_stained_glass.png + - VANILLA:assets/minecraft/textures/block/pink_stained_glass_pane_top.png GrayGlasPlane: Name: STAINED_THIN_GLASS Id: 160 @@ -2616,8 +2622,8 @@ Blocks: Type: PLANE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/glass_gray.png - - VANILLA:assets/minecraft/textures/blocks/glass_pane_top_gray.png + - VANILLA:assets/minecraft/textures/block/gray_stained_glass.png + - VANILLA:assets/minecraft/textures/block/gray_stained_glass_pane_top.png SilverGlasPlane: Name: STAINED_THIN_GLASS Id: 160 @@ -2626,8 +2632,8 @@ Blocks: Type: PLANE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/glass_silver.png - - VANILLA:assets/minecraft/textures/blocks/glass_pane_top_silver.png + - VANILLA:assets/minecraft/textures/block/light_gray_stained_glass.png + - VANILLA:assets/minecraft/textures/block/light_gray_stained_glass_pane_top.png CyanGlasPlane: Name: STAINED_THIN_GLASS Id: 160 @@ -2636,8 +2642,8 @@ Blocks: Type: PLANE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/glass_cyan.png - - VANILLA:assets/minecraft/textures/blocks/glass_pane_top_cyan.png + - VANILLA:assets/minecraft/textures/block/cyan_stained_glass.png + - VANILLA:assets/minecraft/textures/block/cyan_stained_glass_pane_top.png PurpleGlasPlane: Name: STAINED_THIN_GLASS Id: 160 @@ -2646,8 +2652,8 @@ Blocks: Type: PLANE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/glass_purple.png - - VANILLA:assets/minecraft/textures/blocks/glass_pane_top_purple.png + - VANILLA:assets/minecraft/textures/block/purple_stained_glass.png + - VANILLA:assets/minecraft/textures/block/purple_stained_glass_pane_top.png BlueGlasPlane: Name: STAINED_THIN_GLASS Id: 160 @@ -2656,8 +2662,8 @@ Blocks: Type: PLANE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/glass_blue.png - - VANILLA:assets/minecraft/textures/blocks/glass_pane_top_blue.png + - VANILLA:assets/minecraft/textures/block/blue_stained_glass.png + - VANILLA:assets/minecraft/textures/block/blue_stained_glass_pane_top.png BrownGlasPlane: Name: STAINED_THIN_GLASS Id: 160 @@ -2666,8 +2672,8 @@ Blocks: Type: PLANE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/glass_brown.png - - VANILLA:assets/minecraft/textures/blocks/glass_pane_top_brown.png + - VANILLA:assets/minecraft/textures/block/brown_stained_glass.png + - VANILLA:assets/minecraft/textures/block/brown_stained_glass_pane_top.png GreenGlasPlane: Name: STAINED_THIN_GLASS Id: 160 @@ -2676,8 +2682,8 @@ Blocks: Type: PLANE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/glass_green.png - - VANILLA:assets/minecraft/textures/blocks/glass_pane_top_green.png + - VANILLA:assets/minecraft/textures/block/green_stained_glass.png + - VANILLA:assets/minecraft/textures/block/green_stained_glass_pane_top.png RedGlasPlane: Name: STAINED_THIN_GLASS Id: 160 @@ -2686,8 +2692,8 @@ Blocks: Type: PLANE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/glass_red.png - - VANILLA:assets/minecraft/textures/blocks/glass_pane_top_red.png + - VANILLA:assets/minecraft/textures/block/red_stained_glass.png + - VANILLA:assets/minecraft/textures/block/red_stained_glass_pane_top.png BlackGlasPlane: Name: STAINED_THIN_GLASS Id: 160 @@ -2696,8 +2702,8 @@ Blocks: Type: PLANE Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/glass_black.png - - VANILLA:assets/minecraft/textures/blocks/glass_pane_top_black.png + - VANILLA:assets/minecraft/textures/block/black_stained_glass.png + - VANILLA:assets/minecraft/textures/block/black_stained_glass_pane_top.png Leaves_Acacia: Name: LEAVES_2 Id: 161 @@ -2706,7 +2712,7 @@ Blocks: Instruction: Gray: [0, 1, 2, 3, 4, 5, 6] Color: [84, 75] - Texture: VANILLA:assets/minecraft/textures/blocks/leaves_acacia.png + Texture: VANILLA:assets/minecraft/textures/block/acacia_leaves.png Leaves_BigOak: Name: LEAVES_2 Id: 161 @@ -2715,7 +2721,7 @@ Blocks: Instruction: Gray: [0, 1, 2, 3, 4, 5, 6] Color: [84, 75] - Texture: VANILLA:assets/minecraft/textures/blocks/leaves_big_oak.png + Texture: VANILLA:assets/minecraft/textures/block/dark_oak_leaves.png Log_Acacia: Name: LOG_2 Id: 162 @@ -2725,8 +2731,8 @@ Blocks: UsePitch: true UseYaw: true Textures: - - VANILLA:assets/minecraft/textures/blocks/log_acacia.png - - VANILLA:assets/minecraft/textures/blocks/log_acacia_top.png + - VANILLA:assets/minecraft/textures/block/acacia_log.png + - VANILLA:assets/minecraft/textures/block/acacia_log_top.png Log_DarkOak: Name: LOG_2 Id: 162 @@ -2736,22 +2742,22 @@ Blocks: UsePitch: true UseYaw: true Textures: - - VANILLA:assets/minecraft/textures/blocks/log_big_oak.png - - VANILLA:assets/minecraft/textures/blocks/log_big_oak_top.png + - VANILLA:assets/minecraft/textures/block/dark_oak_log.png + - VANILLA:assets/minecraft/textures/block/dark_oak_log_top.png AcaciaStairs: Name: ACACIA_STAIRS Id: 163 Type: STAIRS Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/planks_acacia.png + - VANILLA:assets/minecraft/textures/block/acacia_planks.png DarkOakStairs: Name: DARK_OAK_STAIRS Id: 164 Type: STAIRS Instruction: Textures: - - VANILLA:assets/minecraft/textures/blocks/planks_big_oak.png + - VANILLA:assets/minecraft/textures/block/dark_oak_planks.png HayBlock: Name: HAY_BLOCK Id: 170 @@ -2760,15 +2766,15 @@ Blocks: UsePitch: true UseYaw: true Textures: - - VANILLA:assets/minecraft/textures/blocks/hay_block_side.png - - VANILLA:assets/minecraft/textures/blocks/hay_block_top.png + - VANILLA:assets/minecraft/textures/block/hay_block_side.png + - VANILLA:assets/minecraft/textures/block/hay_block_top.png Carpet_0: Name: CARPET Id: 171 Type: FLAT Data: 0 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/wool_colored_white.png + Texture: VANILLA:assets/minecraft/textures/block/white_wool.png Face: Bottom Carpet_1: Name: CARPET @@ -2776,7 +2782,7 @@ Blocks: Type: FLAT Data: 1 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/wool_colored_orange.png + Texture: VANILLA:assets/minecraft/textures/block/orange_wool.png Face: Bottom Carpet_2: Name: CARPET @@ -2784,7 +2790,7 @@ Blocks: Type: FLAT Data: 2 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/wool_colored_magenta.png + Texture: VANILLA:assets/minecraft/textures/block/magenta_wool.png Face: Bottom Carpet_3: Name: CARPET @@ -2792,7 +2798,7 @@ Blocks: Type: FLAT Data: 3 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/wool_colored_light_blue.png + Texture: VANILLA:assets/minecraft/textures/block/light_blue_wool.png Face: Bottom Carpet_4: Name: CARPET @@ -2800,7 +2806,7 @@ Blocks: Type: FLAT Data: 4 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/wool_colored_yellow.png + Texture: VANILLA:assets/minecraft/textures/block/yellow_wool.png Face: Bottom Carpet_5: Name: CARPET @@ -2808,7 +2814,7 @@ Blocks: Type: FLAT Data: 5 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/wool_colored_lime.png + Texture: VANILLA:assets/minecraft/textures/block/lime_wool.png Face: Bottom Carpet_6: Name: CARPET @@ -2816,7 +2822,7 @@ Blocks: Type: FLAT Data: 6 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/wool_colored_pink.png + Texture: VANILLA:assets/minecraft/textures/block/pink_wool.png Face: Bottom Carpet_7: Name: CARPET @@ -2824,7 +2830,7 @@ Blocks: Type: FLAT Data: 7 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/wool_colored_gray.png + Texture: VANILLA:assets/minecraft/textures/block/gray_wool.png Face: Bottom Carpet_8: Name: CARPET @@ -2832,7 +2838,7 @@ Blocks: Type: FLAT Data: 8 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/wool_colored_silver.png + Texture: VANILLA:assets/minecraft/textures/block/light_gray_wool.png Face: Bottom Carpet_9: Name: CARPET @@ -2840,7 +2846,7 @@ Blocks: Type: FLAT Data: 9 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/wool_colored_cyan.png + Texture: VANILLA:assets/minecraft/textures/block/cyan_wool.png Face: Bottom Carpet_10: Name: CARPET @@ -2848,7 +2854,7 @@ Blocks: Type: FLAT Data: 10 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/wool_colored_purple.png + Texture: VANILLA:assets/minecraft/textures/block/purple_wool.png Face: Bottom Carpet_11: Name: CARPET @@ -2856,7 +2862,7 @@ Blocks: Type: FLAT Data: 11 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/wool_colored_blue.png + Texture: VANILLA:assets/minecraft/textures/block/blue_wool.png Face: Bottom Carpet_12: Name: CARPET @@ -2864,7 +2870,7 @@ Blocks: Type: FLAT Data: 12 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/wool_colored_brown.png + Texture: VANILLA:assets/minecraft/textures/block/brown_wool.png Face: Bottom Carpet_13: Name: CARPET @@ -2872,7 +2878,7 @@ Blocks: Type: FLAT Data: 13 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/wool_colored_green.png + Texture: VANILLA:assets/minecraft/textures/block/green_wool.png Face: Bottom Carpet_14: Name: CARPET @@ -2880,7 +2886,7 @@ Blocks: Type: FLAT Data: 14 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/wool_colored_red.png + Texture: VANILLA:assets/minecraft/textures/block/red_wool.png Face: Bottom Carpet_15: Name: CARPET @@ -2888,20 +2894,20 @@ Blocks: Type: FLAT Data: 15 Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/wool_colored_black.png + Texture: VANILLA:assets/minecraft/textures/block/black_wool.png Face: Bottom - HardenedClay: - Name: HARD_CLAY + Terracotta: + Name: TERRACOTTA Id: 172 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/hardened_clay.png + Texture: VANILLA:assets/minecraft/textures/block/terracotta.png CoalBlock: Name: COAL_BLOCK Id: 173 Type: BASE Instruction: - Texture: VANILLA:assets/minecraft/textures/blocks/coal_block.png + Texture: VANILLA:assets/minecraft/textures/block/coal_block.png PackedIce: Name: PACKED_ICE Id: 174 @@ -2909,5 +2915,5 @@ Blocks: Instruction: UsePitch: false UseYaw: false - Texture: VANILLA:assets/minecraft/textures/blocks/ice_packed.png -#Large Flowers 175 \ No newline at end of file + Texture: VANILLA:assets/minecraft/textures/block/packed_ice.png +#Large Flowers 175 diff --git a/MCPainter/data/minecraft_1.10_statues.yml b/MCPainter/data/minecraft_1.13_statues.yml similarity index 94% rename from MCPainter/data/minecraft_1.10_statues.yml rename to MCPainter/data/minecraft_1.13_statues.yml index 5dd4182..9c3508a 100644 --- a/MCPainter/data/minecraft_1.10_statues.yml +++ b/MCPainter/data/minecraft_1.13_statues.yml @@ -1,11 +1,11 @@ ################################################################################ # MCPainter mod definition file -# Mod name: Minecraft 1.10.x +# Mod name: Minecraft 1.13.x # Author: SBPrime # Description: # Vanilla minecraft statue definition file ################################################################################ -DisplayName: Minecraft 1.10.x - mobs +DisplayName: Minecraft 1.13.x - mobs Mobs: Ghast: Variants: 2 @@ -20,7 +20,7 @@ Mobs: Leg1: Pos: [1, 0, 2] Size: [2, 14, 2] - Faces: + Faces: - 8,5,1,-1 - 7,5,-1,-1 - 7,5,1,-1 @@ -30,7 +30,7 @@ Mobs: Leg2: Pos: [6, 0, 2] Size: [2, 14, 2] - Faces: + Faces: - 8,5,1,-1 - 7,5,-1,-1 - 7,5,1,-1 @@ -40,7 +40,7 @@ Mobs: Leg3: Pos: [11, 0, 2] Size: [2, 14, 2] - Faces: + Faces: - 8,5,1,-1 - 7,5,-1,-1 - 7,5,1,-1 @@ -50,7 +50,7 @@ Mobs: Leg4: Pos: [3, 0, 7] Size: [2, 14, 2] - Faces: + Faces: - 8,5,1,-1 - 7,5,-1,-1 - 7,5,1,-1 @@ -60,7 +60,7 @@ Mobs: Leg5: Pos: [8, 0, 7] Size: [2, 14, 2] - Faces: + Faces: - 8,5,1,-1 - 7,5,-1,-1 - 7,5,1,-1 @@ -70,7 +70,7 @@ Mobs: Leg6: Pos: [13, 0, 7] Size: [2, 14, 2] - Faces: + Faces: - 8,5,1,-1 - 7,5,-1,-1 - 7,5,1,-1 @@ -80,7 +80,7 @@ Mobs: Leg7: Pos: [1, 0, 12] Size: [2, 14, 2] - Faces: + Faces: - 8,5,1,-1 - 7,5,-1,-1 - 7,5,1,-1 @@ -90,7 +90,7 @@ Mobs: Leg8: Pos: [6, 0, 12] Size: [2, 14, 2] - Faces: + Faces: - 8,5,1,-1 - 7,5,-1,-1 - 7,5,1,-1 @@ -100,7 +100,7 @@ Mobs: Leg9: Pos: [11, 0, 12] Size: [2, 14, 2] - Faces: + Faces: - 8,5,1,-1 - 7,5,-1,-1 - 7,5,1,-1 @@ -110,7 +110,7 @@ Mobs: Head: Pos: [0, 14, 0] Size: [16, 16, 16] - Faces: + Faces: - 3,2,1,-1 - 2,2,-1,-1 - 2,2,1,-1 @@ -138,9 +138,9 @@ Mobs: Horn1: Pos: [1, 22, 2] Size: [1, 3, 1] - Faces: + Faces: + - __none__ - __none__ - - __none__ - __none__ - 18,10,1,-1 - __none__ @@ -148,7 +148,7 @@ Mobs: Horn2: Pos: [1, 22, 2] Size: [10, 3, 1] - Faces: + Faces: - __none__ - __none__ - __none__ @@ -158,7 +158,7 @@ Mobs: Head: Pos: [2, 16, 0] Size: [8, 8, 6] - Faces: + Faces: - 13,8,2,-1 - 12,8,-1,-1 - 12,8,1,-1 @@ -168,9 +168,9 @@ Mobs: Leg1: Pos: [0, 0, 6] Size: [4, 12, 4] - Faces: + Faces: - 3,2,1,-1 - - 2,2,-1,-1 + - 2,2,-1,-1 - 2,2,1,-1 - 1,2,-1,-1 - 2,1,-1,-1 @@ -178,9 +178,9 @@ Mobs: Leg2: Pos: [8, 0, 6] Size: [4, 12, 4] - Faces: + Faces: - 3,2,1,-1 - - 2,2,-1,-1 + - 2,2,-1,-1 - 2,2,1,-1 - 1,2,-1,-1 - 2,1,-1,-1 @@ -188,7 +188,7 @@ Mobs: Leg3: Pos: [0, 0, 19] Size: [4, 12, 4] - Faces: + Faces: - 3,2,1,-1 - 2,2,-1,-1 - 2,2,1,-1 @@ -198,7 +198,7 @@ Mobs: Leg4: Pos: [8, 0, 19] Size: [4, 12, 4] - Faces: + Faces: - 3,2,1,-1 - 2,2,-1,-1 - 2,2,1,-1 @@ -216,7 +216,7 @@ Mobs: - 8,4,1,1 - 7,4,-1,1 Cow: - Texture: VANILLA:assets/minecraft/textures/entity/cow/cow.png + Texture: VANILLA:assets/minecraft/textures/entity/cow/cow.png TextureRes: 16 Permission: user.drawStatue.mob.cow Size: [12, 25, 23] @@ -236,9 +236,9 @@ Mobs: Horn1: Pos: [1, 22, 2] Size: [1, 3, 1] - Faces: + Faces: + - __none__ - __none__ - - __none__ - __none__ - 18,10,1,-1 - __none__ @@ -246,7 +246,7 @@ Mobs: Horn2: Pos: [1, 22, 2] Size: [10, 3, 1] - Faces: + Faces: - __none__ - __none__ - __none__ @@ -256,7 +256,7 @@ Mobs: Head: Pos: [2, 16, 0] Size: [8, 8, 6] - Faces: + Faces: - 13,8,2,-1 - 12,8,-1,-1 - 12,8,1,-1 @@ -266,9 +266,9 @@ Mobs: Leg1: Pos: [0, 0, 6] Size: [4, 12, 4] - Faces: + Faces: - 3,2,1,-1 - - 2,2,-1,-1 + - 2,2,-1,-1 - 2,2,1,-1 - 1,2,-1,-1 - 2,1,-1,-1 @@ -276,9 +276,9 @@ Mobs: Leg2: Pos: [8, 0, 6] Size: [4, 12, 4] - Faces: + Faces: - 3,2,1,-1 - - 2,2,-1,-1 + - 2,2,-1,-1 - 2,2,1,-1 - 1,2,-1,-1 - 2,1,-1,-1 @@ -286,7 +286,7 @@ Mobs: Leg3: Pos: [0, 0, 19] Size: [4, 12, 4] - Faces: + Faces: - 3,2,1,-1 - 2,2,-1,-1 - 2,2,1,-1 @@ -296,7 +296,7 @@ Mobs: Leg4: Pos: [8, 0, 19] Size: [4, 12, 4] - Faces: + Faces: - 3,2,1,-1 - 2,2,-1,-1 - 2,2,1,-1 @@ -334,7 +334,7 @@ Mobs: Leg2: Pos: [4, 0, 0] Size: [4, 6, 4] - Faces: + Faces: - 3,4,1,-1 - 2,4,-1,-1 - 2,4,1,-1 @@ -344,7 +344,7 @@ Mobs: Leg3: Pos: [0, 0, 8] Size: [4, 6, 4] - Faces: + Faces: - 3,4,1,-1 - 2,4,-1,-1 - 2,4,1,-1 @@ -354,7 +354,7 @@ Mobs: Leg4: Pos: [4, 0, 8] Size: [4, 6, 4] - Faces: + Faces: - 3,4,1,-1 - 2,4,-1,-1 - 2,4,1,-1 @@ -364,7 +364,7 @@ Mobs: Torso: Pos: [0, 6, 4] Size: [8, 12, 4] - Faces: + Faces: - 8,5,2,-2 - 7,5,-2,-2 - 7,5,1,-2 @@ -374,7 +374,7 @@ Mobs: Head: Pos: [0, 18, 2] Size: [8, 8, 8] - Faces: + Faces: - 6,2,2,-1 - 4,2,-2,-1 - 4,2,2,-1 @@ -459,8 +459,8 @@ Mobs: - 11,2,-2,-1 - 15,1,-4,-1 - 16,1,-1,-1 - Skeleton: - Texture: VANILLA:assets/minecraft/textures/entity/skeleton/skeleton.png + Skeleton: + Texture: VANILLA:assets/minecraft/textures/entity/skeleton/skeleton.png TextureRes: 16 Permission: user.drawStatue.mob.skeleton Size: [8, 32, 3] @@ -472,7 +472,7 @@ Mobs: Size: [2, 12, 2] Faces: - 4,5,-1,-2 - - 1,5,1,-2 + - 1,5,1,-2 - 1,5,-1,-2 - 2,5,1,-2 - 1,3,1,-1 @@ -808,7 +808,7 @@ Mobs: - 2,4,1,-1 - 1,4,-1,-1 - 2,3,-1,-1 - - 3,3,-1,-1 + - 3,3,-1,-1 Rod3a: Pos: [-2, 17, 10] Size: [2, 8, 2] @@ -848,7 +848,7 @@ Mobs: - 2,4,1,-1 - 1,4,-1,-1 - 2,3,-1,-1 - - 3,3,-1,-1 + - 3,3,-1,-1 Rod3b: Pos: [-3, 13, 5] Size: [2, 8, 2] @@ -888,7 +888,7 @@ Mobs: - 2,4,1,-1 - 1,4,-1,-1 - 2,3,-1,-1 - - 3,3,-1,-1 + - 3,3,-1,-1 Rod3c: Pos: [0, 4, 6] Size: [2, 8, 2] @@ -908,7 +908,7 @@ Mobs: - 2,4,1,-1 - 1,4,-1,-1 - 2,3,-1,-1 - - 3,3,-1,-1 + - 3,3,-1,-1 Chicken: Texture: VANILLA:assets/minecraft/textures/entity/chicken.png TextureRes: 16 diff --git a/MCPainter/libs/.emptyfile b/MCPainter/libs/.emptyfile new file mode 100644 index 0000000..e69de29 diff --git a/MCPainter/palette/all.yml b/MCPainter/palette/all.yml new file mode 100644 index 0000000..1221771 --- /dev/null +++ b/MCPainter/palette/all.yml @@ -0,0 +1,251 @@ +################################################################################ +# MCPainter palette definition file +# Author: SBPrime +# Description: +# All 1.13 blocks +################################################################################ +name: All +blocks: +# Wools + - minecraft:black_wool;VANILLA:assets/minecraft/textures/block/black_wool.png + - minecraft:blue_wool;VANILLA:assets/minecraft/textures/block/blue_wool.png + - minecraft:brown_wool;VANILLA:assets/minecraft/textures/block/brown_wool.png + - minecraft:cyan_wool;VANILLA:assets/minecraft/textures/block/cyan_wool.png + - minecraft:gray_wool;VANILLA:assets/minecraft/textures/block/gray_wool.png + - minecraft:green_wool;VANILLA:assets/minecraft/textures/block/green_wool.png + - minecraft:light_blue_wool;VANILLA:assets/minecraft/textures/block/light_blue_wool.png + - minecraft:light_gray_wool;VANILLA:assets/minecraft/textures/block/light_gray_wool.png + - minecraft:lime_wool;VANILLA:assets/minecraft/textures/block/lime_wool.png + - minecraft:magenta_wool;VANILLA:assets/minecraft/textures/block/magenta_wool.png + - minecraft:orange_wool;VANILLA:assets/minecraft/textures/block/orange_wool.png + - minecraft:pink_wool;VANILLA:assets/minecraft/textures/block/pink_wool.png + - minecraft:purple_wool;VANILLA:assets/minecraft/textures/block/purple_wool.png + - minecraft:red_wool;VANILLA:assets/minecraft/textures/block/red_wool.png + - minecraft:white_wool;VANILLA:assets/minecraft/textures/block/white_wool.png + - minecraft:yellow_wool;VANILLA:assets/minecraft/textures/block/yellow_wool.png + +# Concrete + - minecraft:black_concrete;VANILLA:assets/minecraft/textures/block/black_concrete.png + - minecraft:blue_concrete;VANILLA:assets/minecraft/textures/block/blue_concrete.png + - minecraft:brown_concrete;VANILLA:assets/minecraft/textures/block/brown_concrete.png + - minecraft:cyan_concrete;VANILLA:assets/minecraft/textures/block/cyan_concrete.png + - minecraft:gray_concrete;VANILLA:assets/minecraft/textures/block/gray_concrete.png + - minecraft:green_concrete;VANILLA:assets/minecraft/textures/block/green_concrete.png + - minecraft:light_blue_concrete;VANILLA:assets/minecraft/textures/block/light_blue_concrete.png + - minecraft:light_gray_concrete;VANILLA:assets/minecraft/textures/block/light_gray_concrete.png + - minecraft:lime_concrete;VANILLA:assets/minecraft/textures/block/lime_concrete.png + - minecraft:magenta_concrete;VANILLA:assets/minecraft/textures/block/magenta_concrete.png + - minecraft:orange_concrete;VANILLA:assets/minecraft/textures/block/orange_concrete.png + - minecraft:pink_concrete;VANILLA:assets/minecraft/textures/block/pink_concrete.png + - minecraft:purple_concrete;VANILLA:assets/minecraft/textures/block/purple_concrete.png + - minecraft:red_concrete;VANILLA:assets/minecraft/textures/block/red_concrete.png + - minecraft:white_concrete;VANILLA:assets/minecraft/textures/block/white_concrete.png + - minecraft:yellow_concrete;VANILLA:assets/minecraft/textures/block/yellow_concrete.png + +# Concrete powder + - minecraft:black_concrete_powder;VANILLA:assets/minecraft/textures/block/black_concrete_powder.png + - minecraft:blue_concrete_powder;VANILLA:assets/minecraft/textures/block/blue_concrete_powder.png + - minecraft:brown_concrete_powder;VANILLA:assets/minecraft/textures/block/brown_concrete_powder.png + - minecraft:cyan_concrete_powder;VANILLA:assets/minecraft/textures/block/cyan_concrete_powder.png + - minecraft:gray_concrete_powder;VANILLA:assets/minecraft/textures/block/gray_concrete_powder.png + - minecraft:green_concrete_powder;VANILLA:assets/minecraft/textures/block/green_concrete_powder.png + - minecraft:light_blue_concrete_powder;VANILLA:assets/minecraft/textures/block/light_blue_concrete_powder.png + - minecraft:light_gray_concrete_powder;VANILLA:assets/minecraft/textures/block/light_gray_concrete_powder.png + - minecraft:lime_concrete_powder;VANILLA:assets/minecraft/textures/block/lime_concrete_powder.png + - minecraft:magenta_concrete_powder;VANILLA:assets/minecraft/textures/block/magenta_concrete_powder.png + - minecraft:orange_concrete_powder;VANILLA:assets/minecraft/textures/block/orange_concrete_powder.png + - minecraft:pink_concrete_powder;VANILLA:assets/minecraft/textures/block/pink_concrete_powder.png + - minecraft:purple_concrete_powder;VANILLA:assets/minecraft/textures/block/purple_concrete_powder.png + - minecraft:red_concrete_powder;VANILLA:assets/minecraft/textures/block/red_concrete_powder.png + - minecraft:white_concrete_powder;VANILLA:assets/minecraft/textures/block/white_concrete_powder.png + - minecraft:yellow_concrete_powder;VANILLA:assets/minecraft/textures/block/yellow_concrete_powder.png + +# Glazed terracotta + - minecraft:black_glazed_terracotta;VANILLA:assets/minecraft/textures/block/black_glazed_terracotta.png + - minecraft:blue_glazed_terracotta;VANILLA:assets/minecraft/textures/block/blue_glazed_terracotta.png + - minecraft:brown_glazed_terracotta;VANILLA:assets/minecraft/textures/block/brown_glazed_terracotta.png + - minecraft:cyan_glazed_terracotta;VANILLA:assets/minecraft/textures/block/cyan_glazed_terracotta.png + - minecraft:gray_glazed_terracotta;VANILLA:assets/minecraft/textures/block/gray_glazed_terracotta.png + - minecraft:green_glazed_terracotta;VANILLA:assets/minecraft/textures/block/green_glazed_terracotta.png + - minecraft:light_blue_glazed_terracotta;VANILLA:assets/minecraft/textures/block/light_blue_glazed_terracotta.png + - minecraft:lime_glazed_terracotta;VANILLA:assets/minecraft/textures/block/lime_glazed_terracotta.png + - minecraft:magenta_glazed_terracotta;VANILLA:assets/minecraft/textures/block/magenta_glazed_terracotta.png + - minecraft:orange_glazed_terracotta;VANILLA:assets/minecraft/textures/block/orange_glazed_terracotta.png + - minecraft:pink_glazed_terracotta;VANILLA:assets/minecraft/textures/block/pink_glazed_terracotta.png + - minecraft:purple_glazed_terracotta;VANILLA:assets/minecraft/textures/block/purple_glazed_terracotta.png + - minecraft:red_glazed_terracotta;VANILLA:assets/minecraft/textures/block/red_glazed_terracotta.png + - minecraft:light_gray_glazed_terracotta;VANILLA:assets/minecraft/textures/block/light_gray_glazed_terracotta.png + - minecraft:white_glazed_terracotta;VANILLA:assets/minecraft/textures/block/white_glazed_terracotta.png + - minecraft:yellow_glazed_terracotta;VANILLA:assets/minecraft/textures/block/yellow_glazed_terracotta.png + +# Terracotta + - minecraft:terracotta;VANILLA:assets/minecraft/textures/block/terracotta.png + - minecraft:black_terracotta;VANILLA:assets/minecraft/textures/block/black_terracotta.png + - minecraft:blue_terracotta;VANILLA:assets/minecraft/textures/block/blue_terracotta.png + - minecraft:brown_terracotta;VANILLA:assets/minecraft/textures/block/brown_terracotta.png + - minecraft:cyan_terracotta;VANILLA:assets/minecraft/textures/block/cyan_terracotta.png + - minecraft:gray_terracotta;VANILLA:assets/minecraft/textures/block/gray_terracotta.png + - minecraft:green_terracotta;VANILLA:assets/minecraft/textures/block/green_terracotta.png + - minecraft:light_blue_terracotta;VANILLA:assets/minecraft/textures/block/light_blue_terracotta.png + - minecraft:light_gray_terracotta;VANILLA:assets/minecraft/textures/block/light_gray_terracotta.png + - minecraft:lime_terracotta;VANILLA:assets/minecraft/textures/block/lime_terracotta.png + - minecraft:magenta_terracotta;VANILLA:assets/minecraft/textures/block/magenta_terracotta.png + - minecraft:orange_terracotta;VANILLA:assets/minecraft/textures/block/orange_terracotta.png + - minecraft:pink_terracotta;VANILLA:assets/minecraft/textures/block/pink_terracotta.png + - minecraft:purple_terracotta;VANILLA:assets/minecraft/textures/block/purple_terracotta.png + - minecraft:red_terracotta;VANILLA:assets/minecraft/textures/block/red_terracotta.png + - minecraft:white_terracotta;VANILLA:assets/minecraft/textures/block/white_terracotta.png + - minecraft:yellow_terracotta;VANILLA:assets/minecraft/textures/block/yellow_terracotta.png + +# Glass + - minecraft:glass;VANILLA:assets/minecraft/textures/block/glass.png + - minecraft:black_stained_glass;VANILLA:assets/minecraft/textures/block/black_stained_glass.png + - minecraft:blue_stained_glass;VANILLA:assets/minecraft/textures/block/blue_stained_glass.png + - minecraft:brown_stained_glass;VANILLA:assets/minecraft/textures/block/brown_stained_glass.png + - minecraft:cyan_stained_glass;VANILLA:assets/minecraft/textures/block/cyan_stained_glass.png + - minecraft:gray_stained_glass;VANILLA:assets/minecraft/textures/block/gray_stained_glass.png + - minecraft:green_stained_glass;VANILLA:assets/minecraft/textures/block/green_stained_glass.png + - minecraft:light_blue_stained_glass;VANILLA:assets/minecraft/textures/block/light_blue_stained_glass.png + - minecraft:light_gray_stained_glass;VANILLA:assets/minecraft/textures/block/light_gray_stained_glass.png + - minecraft:lime_stained_glass;VANILLA:assets/minecraft/textures/block/lime_stained_glass.png + - minecraft:magenta_stained_glass;VANILLA:assets/minecraft/textures/block/magenta_stained_glass.png + - minecraft:orange_stained_glass;VANILLA:assets/minecraft/textures/block/orange_stained_glass.png + - minecraft:pink_stained_glass;VANILLA:assets/minecraft/textures/block/pink_stained_glass.png + - minecraft:red_stained_glass;VANILLA:assets/minecraft/textures/block/red_stained_glass.png + - minecraft:purple_stained_glass;VANILLA:assets/minecraft/textures/block/purple_stained_glass.png + - minecraft:white_stained_glass;VANILLA:assets/minecraft/textures/block/white_stained_glass.png + - minecraft:yellow_stained_glass;VANILLA:assets/minecraft/textures/block/yellow_stained_glass.png + +# Leaves + - minecraft:acacia_leaves;VANILLA:assets/minecraft/textures/block/acacia_leaves.png;102,86 + - minecraft:birch_leaves;VANILLA:assets/minecraft/textures/block/birch_leaves.png;88,49 + - minecraft:dark_oak_leaves;VANILLA:assets/minecraft/textures/block/dark_oak_leaves.png;102,87 + - minecraft:jungle_leaves;VANILLA:assets/minecraft/textures/block/jungle_leaves.png;107,99 + - minecraft:oak_leaves;VANILLA:assets/minecraft/textures/block/oak_leaves.png;102,87 + - minecraft:spruce_leaves;VANILLA:assets/minecraft/textures/block/spruce_leaves.png;120,37 + +# Wood + - minecraft:acacia_wood;VANILLA:assets/minecraft/textures/block/acacia_log.png + - minecraft:birch_wood;VANILLA:assets/minecraft/textures/block/birch_log.png + - minecraft:dark_oak_wood;VANILLA:assets/minecraft/textures/block/dark_oak_log.png + - minecraft:jungle_wood;VANILLA:assets/minecraft/textures/block/jungle_log.png + - minecraft:oak_wood;VANILLA:assets/minecraft/textures/block/oak_log.png + - minecraft:spruce_wood;VANILLA:assets/minecraft/textures/block/spruce_log.png + - minecraft:stripped_oak_wood;VANILLA:assets/minecraft/textures/block/stripped_oak_log.png + - minecraft:stripped_spruce_wood;VANILLA:assets/minecraft/textures/block/stripped_spruce_log.png + - minecraft:stripped_birch_wood;VANILLA:assets/minecraft/textures/block/stripped_birch_log.png + - minecraft:stripped_jungle_wood;VANILLA:assets/minecraft/textures/block/stripped_jungle_log.png + - minecraft:stripped_acacia_wood;VANILLA:assets/minecraft/textures/block/stripped_acacia_log.png + - minecraft:stripped_dark_oak_wood;VANILLA:assets/minecraft/textures/block/stripped_dark_oak_log.png + +# Planks + - minecraft:acacia_planks;VANILLA:assets/minecraft/textures/block/acacia_planks.png + - minecraft:birch_planks;VANILLA:assets/minecraft/textures/block/birch_planks.png + - minecraft:dark_oak_planks;VANILLA:assets/minecraft/textures/block/dark_oak_planks.png + - minecraft:jungle_planks;VANILLA:assets/minecraft/textures/block/jungle_planks.png + - minecraft:oak_planks;VANILLA:assets/minecraft/textures/block/oak_planks.png + - minecraft:spruce_planks;VANILLA:assets/minecraft/textures/block/spruce_planks.png + +# Ore + - minecraft:coal_ore;VANILLA:assets/minecraft/textures/block/coal_ore.png + - minecraft:diamond_ore;VANILLA:assets/minecraft/textures/block/diamond_ore.png + - minecraft:emerald_ore;VANILLA:assets/minecraft/textures/block/emerald_ore.png + - minecraft:gold_ore;VANILLA:assets/minecraft/textures/block/gold_ore.png + - minecraft:iron_ore;VANILLA:assets/minecraft/textures/block/iron_ore.png + - minecraft:lapis_ore;VANILLA:assets/minecraft/textures/block/lapis_ore.png + - minecraft:nether_quartz_ore;VANILLA:assets/minecraft/textures/block/nether_quartz_ore.png + - minecraft:redstone_ore;VANILLA:assets/minecraft/textures/block/redstone_ore.png + +# Ore blocks + - minecraft:coal_block;VANILLA:assets/minecraft/textures/block/coal_block.png + - minecraft:diamond_block;VANILLA:assets/minecraft/textures/block/diamond_block.png + - minecraft:emerald_block;VANILLA:assets/minecraft/textures/block/emerald_block.png + - minecraft:gold_block;VANILLA:assets/minecraft/textures/block/gold_block.png + - minecraft:iron_block;VANILLA:assets/minecraft/textures/block/iron_block.png + - minecraft:lapis_block;VANILLA:assets/minecraft/textures/block/lapis_block.png + - minecraft:redstone_block;VANILLA:assets/minecraft/textures/block/redstone_block.png + +# Stone + - minecraft:andesite;VANILLA:assets/minecraft/textures/block/andesite.png + - minecraft:diorite;VANILLA:assets/minecraft/textures/block/diorite.png + - minecraft:granite;VANILLA:assets/minecraft/textures/block/granite.png + - minecraft:polished_andesite;VANILLA:assets/minecraft/textures/block/polished_andesite.png + - minecraft:polished_diorite;VANILLA:assets/minecraft/textures/block/polished_diorite.png + - minecraft:polished_granite;VANILLA:assets/minecraft/textures/block/polished_granite.png + - minecraft:chiseled_stone_bricks;VANILLA:assets/minecraft/textures/block/chiseled_stone_bricks.png + - minecraft:cobblestone;VANILLA:assets/minecraft/textures/block/cobblestone.png + - minecraft:stone;VANILLA:assets/minecraft/textures/block/stone.png + - minecraft:mossy_cobblestone;VANILLA:assets/minecraft/textures/block/mossy_cobblestone.png + - minecraft:cracked_stone_bricks;VANILLA:assets/minecraft/textures/block/cracked_stone_bricks.png + - minecraft:mossy_stone_bricks;VANILLA:assets/minecraft/textures/block/mossy_stone_bricks.png + - minecraft:smooth_stone;VANILLA:assets/minecraft/textures/block/stone_slab_top.png + - minecraft:stone_bricks;VANILLA:assets/minecraft/textures/block/stone_bricks.png + +# Sandstone + - minecraft:sandstone;VANILLA:assets/minecraft/textures/block/sandstone.png + - minecraft:chiseled_sandstone;VANILLA:assets/minecraft/textures/block/chiseled_sandstone.png + - minecraft:cut_sandstone;VANILLA:assets/minecraft/textures/block/cut_sandstone.png + - minecraft:smooth_sandstone;VANILLA:assets/minecraft/textures/block/sandstone_top.png + - minecraft:red_sandstone;VANILLA:assets/minecraft/textures/block/red_sandstone.png + - minecraft:chiseled_red_sandstone;VANILLA:assets/minecraft/textures/block/chiseled_red_sandstone.png + - minecraft:cut_red_sandstone;VANILLA:assets/minecraft/textures/block/cut_red_sandstone.png + - minecraft:smooth_red_sandstone;VANILLA:assets/minecraft/textures/block/red_sandstone_top.png + +# Ice + - minecraft:ice;VANILLA:assets/minecraft/textures/block/ice.png + - minecraft:packed_ice;VANILLA:assets/minecraft/textures/block/packed_ice.png + - minecraft:blue_ice;VANILLA:assets/minecraft/textures/block/blue_ice.png + +# Coral + - minecraft:brain_coral_block;VANILLA:assets/minecraft/textures/block/brain_coral_block.png + - minecraft:bubble_coral_block;VANILLA:assets/minecraft/textures/block/bubble_coral_block.png + - minecraft:fire_coral_block;VANILLA:assets/minecraft/textures/block/fire_coral_block.png + - minecraft:horn_coral_block;VANILLA:assets/minecraft/textures/block/horn_coral_block.png + - minecraft:tube_coral_block;VANILLA:assets/minecraft/textures/block/tube_coral_block.png + - minecraft:dead_brain_coral_block;VANILLA:assets/minecraft/textures/block/dead_brain_coral_block.png + - minecraft:dead_bubble_coral_block;VANILLA:assets/minecraft/textures/block/dead_bubble_coral_block.png + - minecraft:dead_fire_coral_block;VANILLA:assets/minecraft/textures/block/dead_fire_coral_block.png + - minecraft:dead_horn_coral_block;VANILLA:assets/minecraft/textures/block/dead_horn_coral_block.png + - minecraft:dead_tube_coral_block;VANILLA:assets/minecraft/textures/block/dead_tube_coral_block.png + +# Other + - minecraft:bedrock;VANILLA:assets/minecraft/textures/block/bedrock.png + - minecraft:bone_block;VANILLA:assets/minecraft/textures/block/bone_block_side.png + - minecraft:bricks;VANILLA:assets/minecraft/textures/block/bricks.png + - minecraft:brown_mushroom_block;VANILLA:assets/minecraft/textures/block/brown_mushroom_block.png + - minecraft:chiseled_quartz_block;VANILLA:assets/minecraft/textures/block/chiseled_quartz_block.png + - minecraft:clay;VANILLA:assets/minecraft/textures/block/clay.png + - minecraft:coarse_dirt;VANILLA:assets/minecraft/textures/block/coarse_dirt.png + - minecraft:dark_prismarine;VANILLA:assets/minecraft/textures/block/dark_prismarine.png + - minecraft:dirt;VANILLA:assets/minecraft/textures/block/dirt.png + - minecraft:dried_kelp_block;VANILLA:assets/minecraft/textures/block/dried_kelp_side.png + - minecraft:end_stone;VANILLA:assets/minecraft/textures/block/end_stone.png + - minecraft:end_stone_bricks;VANILLA:assets/minecraft/textures/block/end_stone_bricks.png + - minecraft:glowstone;VANILLA:assets/minecraft/textures/block/glowstone.png + - minecraft:hay_block;VANILLA:assets/minecraft/textures/block/hay_block_side.png + - minecraft:magma_block;VANILLA:assets/minecraft/textures/block/magma.png + - minecraft:melon;VANILLA:assets/minecraft/textures/block/melon_side.png + - minecraft:mushroom_stem;VANILLA:assets/minecraft/textures/block/mushroom_stem.png + - minecraft:nether_bricks;VANILLA:assets/minecraft/textures/block/nether_bricks.png + - minecraft:nether_wart_block;VANILLA:assets/minecraft/textures/block/nether_wart_block.png + - minecraft:netherrack;VANILLA:assets/minecraft/textures/block/netherrack.png + - minecraft:note_block;VANILLA:assets/minecraft/textures/block/note_block.png + - minecraft:obsidian;VANILLA:assets/minecraft/textures/block/obsidian.png + - minecraft:prismarine;VANILLA:assets/minecraft/textures/block/prismarine.png + - minecraft:prismarine_bricks;VANILLA:assets/minecraft/textures/block/prismarine_bricks.png + - minecraft:pumpkin;VANILLA:assets/minecraft/textures/block/pumpkin_side.png + - minecraft:purpur_block;VANILLA:assets/minecraft/textures/block/purpur_block.png + - minecraft:purpur_pillar;VANILLA:assets/minecraft/textures/block/purpur_pillar.png + - minecraft:quartz_block;VANILLA:assets/minecraft/textures/block/quartz_block_side.png + - minecraft:quartz_pillar;VANILLA:assets/minecraft/textures/block/quartz_pillar.png + - minecraft:red_mushroom_block;VANILLA:assets/minecraft/textures/block/red_mushroom_block.png + - minecraft:red_nether_bricks;VANILLA:assets/minecraft/textures/block/red_nether_bricks.png + - minecraft:redstone_lamp;VANILLA:assets/minecraft/textures/block/redstone_lamp.png + - minecraft:sea_lantern;VANILLA:assets/minecraft/textures/block/sea_lantern.png + - minecraft:slime_block;VANILLA:assets/minecraft/textures/block/slime_block.png + - minecraft:smooth_quartz;VANILLA:assets/minecraft/textures/block/quartz_block_top.png + - minecraft:snow_block;VANILLA:assets/minecraft/textures/block/snow.png + - minecraft:soul_sand;VANILLA:assets/minecraft/textures/block/soul_sand.png + - minecraft:sponge;VANILLA:assets/minecraft/textures/block/sponge.png + - minecraft:wet_sponge;VANILLA:assets/minecraft/textures/block/wet_sponge.png + diff --git a/MCPainter/palette/classic.yml b/MCPainter/palette/classic.yml index 45420b3..c460ff8 100644 --- a/MCPainter/palette/classic.yml +++ b/MCPainter/palette/classic.yml @@ -6,38 +6,46 @@ ################################################################################ name: Classic blocks: - - WOOL:0-VANILLA:assets/minecraft/textures/blocks/wool_colored_white.png - - WOOL:1-VANILLA:assets/minecraft/textures/blocks/wool_colored_orange.png - - WOOL:2-VANILLA:assets/minecraft/textures/blocks/wool_colored_magenta.png - - WOOL:3-VANILLA:assets/minecraft/textures/blocks/wool_colored_light_blue.png - - WOOL:4-VANILLA:assets/minecraft/textures/blocks/wool_colored_yellow.png - - WOOL:5-VANILLA:assets/minecraft/textures/blocks/wool_colored_lime.png - - WOOL:6-VANILLA:assets/minecraft/textures/blocks/wool_colored_pink.png - - WOOL:7-VANILLA:assets/minecraft/textures/blocks/wool_colored_gray.png - - WOOL:8-VANILLA:assets/minecraft/textures/blocks/wool_colored_silver.png - - WOOL:9-VANILLA:assets/minecraft/textures/blocks/wool_colored_cyan.png - - WOOL:10-VANILLA:assets/minecraft/textures/blocks/wool_colored_purple.png - - WOOL:11-VANILLA:assets/minecraft/textures/blocks/wool_colored_blue.png - - WOOL:12-VANILLA:assets/minecraft/textures/blocks/wool_colored_brown.png - - WOOL:13-VANILLA:assets/minecraft/textures/blocks/wool_colored_green.png - - WOOL:14-VANILLA:assets/minecraft/textures/blocks/wool_colored_red.png - - WOOL:15-VANILLA:assets/minecraft/textures/blocks/wool_colored_black.png +# Wools + - minecraft:black_wool;VANILLA:assets/minecraft/textures/block/black_wool.png + - minecraft:blue_wool;VANILLA:assets/minecraft/textures/block/blue_wool.png + - minecraft:brown_wool;VANILLA:assets/minecraft/textures/block/brown_wool.png + - minecraft:cyan_wool;VANILLA:assets/minecraft/textures/block/cyan_wool.png + - minecraft:gray_wool;VANILLA:assets/minecraft/textures/block/gray_wool.png + - minecraft:green_wool;VANILLA:assets/minecraft/textures/block/green_wool.png + - minecraft:light_blue_wool;VANILLA:assets/minecraft/textures/block/light_blue_wool.png + - minecraft:light_gray_wool;VANILLA:assets/minecraft/textures/block/light_gray_wool.png + - minecraft:lime_wool;VANILLA:assets/minecraft/textures/block/lime_wool.png + - minecraft:magenta_wool;VANILLA:assets/minecraft/textures/block/magenta_wool.png + - minecraft:orange_wool;VANILLA:assets/minecraft/textures/block/orange_wool.png + - minecraft:pink_wool;VANILLA:assets/minecraft/textures/block/pink_wool.png + - minecraft:purple_wool;VANILLA:assets/minecraft/textures/block/purple_wool.png + - minecraft:red_wool;VANILLA:assets/minecraft/textures/block/red_wool.png + - minecraft:white_wool;VANILLA:assets/minecraft/textures/block/white_wool.png + - minecraft:yellow_wool;VANILLA:assets/minecraft/textures/block/yellow_wool.png - - STONE-VANILLA:assets/minecraft/textures/blocks/stone.png - - DIRT-VANILLA:assets/minecraft/textures/blocks/dirt.png +# Wood + - minecraft:oak_wood;VANILLA:assets/minecraft/textures/block/oak_log.png + - minecraft:oak_planks;VANILLA:assets/minecraft/textures/block/oak_planks.png + +# Ore + - minecraft:coal_ore;VANILLA:assets/minecraft/textures/block/coal_ore.png + - minecraft:gold_ore;VANILLA:assets/minecraft/textures/block/gold_ore.png + - minecraft:iron_ore;VANILLA:assets/minecraft/textures/block/iron_ore.png + +# Ore blocks + - minecraft:gold_block;VANILLA:assets/minecraft/textures/block/gold_block.png + - minecraft:iron_block;VANILLA:assets/minecraft/textures/block/iron_block.png + +# Stone + - minecraft:cobblestone;VANILLA:assets/minecraft/textures/block/cobblestone.png + - minecraft:stone;VANILLA:assets/minecraft/textures/block/stone.png + - minecraft:mossy_cobblestone;VANILLA:assets/minecraft/textures/block/mossy_cobblestone.png + +# Other + - minecraft:bedrock;VANILLA:assets/minecraft/textures/block/bedrock.png + - minecraft:bricks;VANILLA:assets/minecraft/textures/block/bricks.png + - minecraft:dirt;VANILLA:assets/minecraft/textures/block/dirt.png + - minecraft:obsidian;VANILLA:assets/minecraft/textures/block/obsidian.png + - minecraft:sponge;VANILLA:assets/minecraft/textures/block/sponge.png - - BRICK-VANILLA:assets/minecraft/textures/blocks/brick.png - - COBBLESTONE-VANILLA:assets/minecraft/textures/blocks/stonebrick.png - - BEDROCK-VANILLA:assets/minecraft/textures/blocks/bedrock.png - - - LOG:12-VANILLA:assets/minecraft/textures/blocks/log_oak.png - - WOOD:0-VANILLA:assets/minecraft/textures/blocks/planks_oak.png - - - IRON_BLOCK-VANILLA:assets/minecraft/textures/blocks/iron_block.png - - GOLD_BLOCK-VANILLA:assets/minecraft/textures/blocks/gold_block.png - - GOLD_ORE-VANILLA:assets/minecraft/textures/blocks/gold_ore.png - - IRON_ORE-VANILLA:assets/minecraft/textures/blocks/iron_ore.png - - COAL_ORE-VANILLA:assets/minecraft/textures/blocks/coal_ore.png - - MOSSY_COBBLESTONE-VANILLA:assets/minecraft/textures/blocks/cobblestone_mossy.png - - OBSIDIAN-VANILLA:assets/minecraft/textures/blocks/obsidian.png - - SPONGE-VANILLA:assets/minecraft/textures/blocks/sponge.png \ No newline at end of file diff --git a/MCPainter/palette/clay.yml b/MCPainter/palette/clay.yml deleted file mode 100644 index ca1da91..0000000 --- a/MCPainter/palette/clay.yml +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# MCPainter palette definition file -# Author: SBPrime -# Description: -# Palette consisting only of clay -################################################################################ -name: Clay -blocks: - - STAINED_CLAY:0-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_white.png - - STAINED_CLAY:1-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_orange.png - - STAINED_CLAY:2-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_magenta.png - - STAINED_CLAY:3-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_light_blue.png - - STAINED_CLAY:4-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_yellow.png - - STAINED_CLAY:5-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_lime.png - - STAINED_CLAY:6-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_pink.png - - STAINED_CLAY:7-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_gray.png - - STAINED_CLAY:8-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_silver.png - - STAINED_CLAY:9-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_cyan.png - - STAINED_CLAY:10-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_purple.png - - STAINED_CLAY:11-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_blue.png - - STAINED_CLAY:12-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_brown.png - - STAINED_CLAY:13-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_green.png - - STAINED_CLAY:14-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_red.png - - STAINED_CLAY:15-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_black.png - - HARD_CLAY-VANILLA:assets/minecraft/textures/blocks/hardened_clay.png - - CLAY-VANILLA:assets/minecraft/textures/blocks/clay.png diff --git a/MCPainter/palette/colorful.yml b/MCPainter/palette/colorful.yml new file mode 100644 index 0000000..a327a5c --- /dev/null +++ b/MCPainter/palette/colorful.yml @@ -0,0 +1,117 @@ +################################################################################ +# MCPainter palette definition file +# Author: SBPrime +# Description: +# Palette consisting out of "colorful" blocks +################################################################################ +name: Colorful +blocks: +# Wools + - minecraft:black_wool;VANILLA:assets/minecraft/textures/block/black_wool.png + - minecraft:blue_wool;VANILLA:assets/minecraft/textures/block/blue_wool.png + - minecraft:brown_wool;VANILLA:assets/minecraft/textures/block/brown_wool.png + - minecraft:cyan_wool;VANILLA:assets/minecraft/textures/block/cyan_wool.png + - minecraft:gray_wool;VANILLA:assets/minecraft/textures/block/gray_wool.png + - minecraft:green_wool;VANILLA:assets/minecraft/textures/block/green_wool.png + - minecraft:light_blue_wool;VANILLA:assets/minecraft/textures/block/light_blue_wool.png + - minecraft:light_gray_wool;VANILLA:assets/minecraft/textures/block/light_gray_wool.png + - minecraft:lime_wool;VANILLA:assets/minecraft/textures/block/lime_wool.png + - minecraft:magenta_wool;VANILLA:assets/minecraft/textures/block/magenta_wool.png + - minecraft:orange_wool;VANILLA:assets/minecraft/textures/block/orange_wool.png + - minecraft:pink_wool;VANILLA:assets/minecraft/textures/block/pink_wool.png + - minecraft:purple_wool;VANILLA:assets/minecraft/textures/block/purple_wool.png + - minecraft:red_wool;VANILLA:assets/minecraft/textures/block/red_wool.png + - minecraft:white_wool;VANILLA:assets/minecraft/textures/block/white_wool.png + - minecraft:yellow_wool;VANILLA:assets/minecraft/textures/block/yellow_wool.png + +# Concrete + - minecraft:black_concrete;VANILLA:assets/minecraft/textures/block/black_concrete.png + - minecraft:blue_concrete;VANILLA:assets/minecraft/textures/block/blue_concrete.png + - minecraft:brown_concrete;VANILLA:assets/minecraft/textures/block/brown_concrete.png + - minecraft:cyan_concrete;VANILLA:assets/minecraft/textures/block/cyan_concrete.png + - minecraft:gray_concrete;VANILLA:assets/minecraft/textures/block/gray_concrete.png + - minecraft:green_concrete;VANILLA:assets/minecraft/textures/block/green_concrete.png + - minecraft:light_blue_concrete;VANILLA:assets/minecraft/textures/block/light_blue_concrete.png + - minecraft:light_gray_concrete;VANILLA:assets/minecraft/textures/block/light_gray_concrete.png + - minecraft:lime_concrete;VANILLA:assets/minecraft/textures/block/lime_concrete.png + - minecraft:magenta_concrete;VANILLA:assets/minecraft/textures/block/magenta_concrete.png + - minecraft:orange_concrete;VANILLA:assets/minecraft/textures/block/orange_concrete.png + - minecraft:pink_concrete;VANILLA:assets/minecraft/textures/block/pink_concrete.png + - minecraft:purple_concrete;VANILLA:assets/minecraft/textures/block/purple_concrete.png + - minecraft:red_concrete;VANILLA:assets/minecraft/textures/block/red_concrete.png + - minecraft:white_concrete;VANILLA:assets/minecraft/textures/block/white_concrete.png + - minecraft:yellow_concrete;VANILLA:assets/minecraft/textures/block/yellow_concrete.png + +# Concrete powder +# - minecraft:black_concrete_powder;VANILLA:assets/minecraft/textures/block/black_concrete_powder.png +# - minecraft:blue_concrete_powder;VANILLA:assets/minecraft/textures/block/blue_concrete_powder.png +# - minecraft:brown_concrete_powder;VANILLA:assets/minecraft/textures/block/brown_concrete_powder.png +# - minecraft:cyan_concrete_powder;VANILLA:assets/minecraft/textures/block/cyan_concrete_powder.png +# - minecraft:gray_concrete_powder;VANILLA:assets/minecraft/textures/block/gray_concrete_powder.png +# - minecraft:green_concrete_powder;VANILLA:assets/minecraft/textures/block/green_concrete_powder.png +# - minecraft:light_blue_concrete_powder;VANILLA:assets/minecraft/textures/block/light_blue_concrete_powder.png +# - minecraft:light_gray_concrete_powder;VANILLA:assets/minecraft/textures/block/light_gray_concrete_powder.png +# - minecraft:lime_concrete_powder;VANILLA:assets/minecraft/textures/block/lime_concrete_powder.png +# - minecraft:magenta_concrete_powder;VANILLA:assets/minecraft/textures/block/magenta_concrete_powder.png +# - minecraft:orange_concrete_powder;VANILLA:assets/minecraft/textures/block/orange_concrete_powder.png +# - minecraft:pink_concrete_powder;VANILLA:assets/minecraft/textures/block/pink_concrete_powder.png +# - minecraft:purple_concrete_powder;VANILLA:assets/minecraft/textures/block/purple_concrete_powder.png +# - minecraft:red_concrete_powder;VANILLA:assets/minecraft/textures/block/red_concrete_powder.png +# - minecraft:white_concrete_powder;VANILLA:assets/minecraft/textures/block/white_concrete_powder.png +# - minecraft:yellow_concrete_powder;VANILLA:assets/minecraft/textures/block/yellow_concrete_powder.png + +# Glazed terracotta + - minecraft:black_glazed_terracotta;VANILLA:assets/minecraft/textures/block/black_glazed_terracotta.png + - minecraft:blue_glazed_terracotta;VANILLA:assets/minecraft/textures/block/blue_glazed_terracotta.png + - minecraft:brown_glazed_terracotta;VANILLA:assets/minecraft/textures/block/brown_glazed_terracotta.png + - minecraft:cyan_glazed_terracotta;VANILLA:assets/minecraft/textures/block/cyan_glazed_terracotta.png + - minecraft:gray_glazed_terracotta;VANILLA:assets/minecraft/textures/block/gray_glazed_terracotta.png + - minecraft:green_glazed_terracotta;VANILLA:assets/minecraft/textures/block/green_glazed_terracotta.png + - minecraft:light_blue_glazed_terracotta;VANILLA:assets/minecraft/textures/block/light_blue_glazed_terracotta.png + - minecraft:lime_glazed_terracotta;VANILLA:assets/minecraft/textures/block/lime_glazed_terracotta.png + - minecraft:magenta_glazed_terracotta;VANILLA:assets/minecraft/textures/block/magenta_glazed_terracotta.png + - minecraft:orange_glazed_terracotta;VANILLA:assets/minecraft/textures/block/orange_glazed_terracotta.png + - minecraft:pink_glazed_terracotta;VANILLA:assets/minecraft/textures/block/pink_glazed_terracotta.png + - minecraft:purple_glazed_terracotta;VANILLA:assets/minecraft/textures/block/purple_glazed_terracotta.png + - minecraft:red_glazed_terracotta;VANILLA:assets/minecraft/textures/block/red_glazed_terracotta.png + - minecraft:light_gray_glazed_terracotta;VANILLA:assets/minecraft/textures/block/light_gray_glazed_terracotta.png + - minecraft:white_glazed_terracotta;VANILLA:assets/minecraft/textures/block/white_glazed_terracotta.png + - minecraft:yellow_glazed_terracotta;VANILLA:assets/minecraft/textures/block/yellow_glazed_terracotta.png + +# Terracotta + - minecraft:terracotta;VANILLA:assets/minecraft/textures/block/terracotta.png + - minecraft:black_terracotta;VANILLA:assets/minecraft/textures/block/black_terracotta.png + - minecraft:blue_terracotta;VANILLA:assets/minecraft/textures/block/blue_terracotta.png + - minecraft:brown_terracotta;VANILLA:assets/minecraft/textures/block/brown_terracotta.png + - minecraft:cyan_terracotta;VANILLA:assets/minecraft/textures/block/cyan_terracotta.png + - minecraft:gray_terracotta;VANILLA:assets/minecraft/textures/block/gray_terracotta.png + - minecraft:green_terracotta;VANILLA:assets/minecraft/textures/block/green_terracotta.png + - minecraft:light_blue_terracotta;VANILLA:assets/minecraft/textures/block/light_blue_terracotta.png + - minecraft:light_gray_terracotta;VANILLA:assets/minecraft/textures/block/light_gray_terracotta.png + - minecraft:lime_terracotta;VANILLA:assets/minecraft/textures/block/lime_terracotta.png + - minecraft:magenta_terracotta;VANILLA:assets/minecraft/textures/block/magenta_terracotta.png + - minecraft:orange_terracotta;VANILLA:assets/minecraft/textures/block/orange_terracotta.png + - minecraft:pink_terracotta;VANILLA:assets/minecraft/textures/block/pink_terracotta.png + - minecraft:purple_terracotta;VANILLA:assets/minecraft/textures/block/purple_terracotta.png + - minecraft:red_terracotta;VANILLA:assets/minecraft/textures/block/red_terracotta.png + - minecraft:white_terracotta;VANILLA:assets/minecraft/textures/block/white_terracotta.png + - minecraft:yellow_terracotta;VANILLA:assets/minecraft/textures/block/yellow_terracotta.png + +# Glass + - minecraft:glass;VANILLA:assets/minecraft/textures/block/glass.png + - minecraft:black_stained_glass;VANILLA:assets/minecraft/textures/block/black_stained_glass.png + - minecraft:blue_stained_glass;VANILLA:assets/minecraft/textures/block/blue_stained_glass.png + - minecraft:brown_stained_glass;VANILLA:assets/minecraft/textures/block/brown_stained_glass.png + - minecraft:cyan_stained_glass;VANILLA:assets/minecraft/textures/block/cyan_stained_glass.png + - minecraft:gray_stained_glass;VANILLA:assets/minecraft/textures/block/gray_stained_glass.png + - minecraft:green_stained_glass;VANILLA:assets/minecraft/textures/block/green_stained_glass.png + - minecraft:light_blue_stained_glass;VANILLA:assets/minecraft/textures/block/light_blue_stained_glass.png + - minecraft:light_gray_stained_glass;VANILLA:assets/minecraft/textures/block/light_gray_stained_glass.png + - minecraft:lime_stained_glass;VANILLA:assets/minecraft/textures/block/lime_stained_glass.png + - minecraft:magenta_stained_glass;VANILLA:assets/minecraft/textures/block/magenta_stained_glass.png + - minecraft:orange_stained_glass;VANILLA:assets/minecraft/textures/block/orange_stained_glass.png + - minecraft:pink_stained_glass;VANILLA:assets/minecraft/textures/block/pink_stained_glass.png + - minecraft:red_stained_glass;VANILLA:assets/minecraft/textures/block/red_stained_glass.png + - minecraft:purple_stained_glass;VANILLA:assets/minecraft/textures/block/purple_stained_glass.png + - minecraft:white_stained_glass;VANILLA:assets/minecraft/textures/block/white_stained_glass.png + - minecraft:yellow_stained_glass;VANILLA:assets/minecraft/textures/block/yellow_stained_glass.png diff --git a/MCPainter/palette/concrete.yml b/MCPainter/palette/concrete.yml new file mode 100644 index 0000000..b7ee2c5 --- /dev/null +++ b/MCPainter/palette/concrete.yml @@ -0,0 +1,43 @@ +################################################################################ +# MCPainter palette definition file +# Author: SBPrime +# Description: +# Palette consisting only of concrete blocks +################################################################################ +name: Concrete +blocks: +# Concrete + - minecraft:black_concrete;VANILLA:assets/minecraft/textures/block/black_concrete.png + - minecraft:blue_concrete;VANILLA:assets/minecraft/textures/block/blue_concrete.png + - minecraft:brown_concrete;VANILLA:assets/minecraft/textures/block/brown_concrete.png + - minecraft:cyan_concrete;VANILLA:assets/minecraft/textures/block/cyan_concrete.png + - minecraft:gray_concrete;VANILLA:assets/minecraft/textures/block/gray_concrete.png + - minecraft:green_concrete;VANILLA:assets/minecraft/textures/block/green_concrete.png + - minecraft:light_blue_concrete;VANILLA:assets/minecraft/textures/block/light_blue_concrete.png + - minecraft:light_gray_concrete;VANILLA:assets/minecraft/textures/block/light_gray_concrete.png + - minecraft:lime_concrete;VANILLA:assets/minecraft/textures/block/lime_concrete.png + - minecraft:magenta_concrete;VANILLA:assets/minecraft/textures/block/magenta_concrete.png + - minecraft:orange_concrete;VANILLA:assets/minecraft/textures/block/orange_concrete.png + - minecraft:pink_concrete;VANILLA:assets/minecraft/textures/block/pink_concrete.png + - minecraft:purple_concrete;VANILLA:assets/minecraft/textures/block/purple_concrete.png + - minecraft:red_concrete;VANILLA:assets/minecraft/textures/block/red_concrete.png + - minecraft:white_concrete;VANILLA:assets/minecraft/textures/block/white_concrete.png + - minecraft:yellow_concrete;VANILLA:assets/minecraft/textures/block/yellow_concrete.png + +# Concrete powder + - minecraft:black_concrete_powder;VANILLA:assets/minecraft/textures/block/black_concrete_powder.png + - minecraft:blue_concrete_powder;VANILLA:assets/minecraft/textures/block/blue_concrete_powder.png + - minecraft:brown_concrete_powder;VANILLA:assets/minecraft/textures/block/brown_concrete_powder.png + - minecraft:cyan_concrete_powder;VANILLA:assets/minecraft/textures/block/cyan_concrete_powder.png + - minecraft:gray_concrete_powder;VANILLA:assets/minecraft/textures/block/gray_concrete_powder.png + - minecraft:green_concrete_powder;VANILLA:assets/minecraft/textures/block/green_concrete_powder.png + - minecraft:light_blue_concrete_powder;VANILLA:assets/minecraft/textures/block/light_blue_concrete_powder.png + - minecraft:light_gray_concrete_powder;VANILLA:assets/minecraft/textures/block/light_gray_concrete_powder.png + - minecraft:lime_concrete_powder;VANILLA:assets/minecraft/textures/block/lime_concrete_powder.png + - minecraft:magenta_concrete_powder;VANILLA:assets/minecraft/textures/block/magenta_concrete_powder.png + - minecraft:orange_concrete_powder;VANILLA:assets/minecraft/textures/block/orange_concrete_powder.png + - minecraft:pink_concrete_powder;VANILLA:assets/minecraft/textures/block/pink_concrete_powder.png + - minecraft:purple_concrete_powder;VANILLA:assets/minecraft/textures/block/purple_concrete_powder.png + - minecraft:red_concrete_powder;VANILLA:assets/minecraft/textures/block/red_concrete_powder.png + - minecraft:white_concrete_powder;VANILLA:assets/minecraft/textures/block/white_concrete_powder.png + - minecraft:yellow_concrete_powder;VANILLA:assets/minecraft/textures/block/yellow_concrete_powder.png diff --git a/MCPainter/palette/concrete2.yml b/MCPainter/palette/concrete2.yml new file mode 100644 index 0000000..c48ca8f --- /dev/null +++ b/MCPainter/palette/concrete2.yml @@ -0,0 +1,25 @@ +################################################################################ +# MCPainter palette definition file +# Author: SBPrime +# Description: +# Palette consisting only of concrete blocks, no powder blocks +################################################################################ +name: ConcreteNoPowder +blocks: +# Concrete + - minecraft:black_concrete;VANILLA:assets/minecraft/textures/block/black_concrete.png + - minecraft:blue_concrete;VANILLA:assets/minecraft/textures/block/blue_concrete.png + - minecraft:brown_concrete;VANILLA:assets/minecraft/textures/block/brown_concrete.png + - minecraft:cyan_concrete;VANILLA:assets/minecraft/textures/block/cyan_concrete.png + - minecraft:gray_concrete;VANILLA:assets/minecraft/textures/block/gray_concrete.png + - minecraft:green_concrete;VANILLA:assets/minecraft/textures/block/green_concrete.png + - minecraft:light_blue_concrete;VANILLA:assets/minecraft/textures/block/light_blue_concrete.png + - minecraft:light_gray_concrete;VANILLA:assets/minecraft/textures/block/light_gray_concrete.png + - minecraft:lime_concrete;VANILLA:assets/minecraft/textures/block/lime_concrete.png + - minecraft:magenta_concrete;VANILLA:assets/minecraft/textures/block/magenta_concrete.png + - minecraft:orange_concrete;VANILLA:assets/minecraft/textures/block/orange_concrete.png + - minecraft:pink_concrete;VANILLA:assets/minecraft/textures/block/pink_concrete.png + - minecraft:purple_concrete;VANILLA:assets/minecraft/textures/block/purple_concrete.png + - minecraft:red_concrete;VANILLA:assets/minecraft/textures/block/red_concrete.png + - minecraft:white_concrete;VANILLA:assets/minecraft/textures/block/white_concrete.png + - minecraft:yellow_concrete;VANILLA:assets/minecraft/textures/block/yellow_concrete.png diff --git a/MCPainter/palette/coral.yml b/MCPainter/palette/coral.yml new file mode 100644 index 0000000..aa5bf60 --- /dev/null +++ b/MCPainter/palette/coral.yml @@ -0,0 +1,18 @@ +################################################################################ +# MCPainter palette definition file +# Author: SBPrime +# Description: +# Palette consisting only of coral blocks +################################################################################ +name: Coral +blocks: + - minecraft:brain_coral_block;VANILLA:assets/minecraft/textures/block/brain_coral_block.png + - minecraft:bubble_coral_block;VANILLA:assets/minecraft/textures/block/bubble_coral_block.png + - minecraft:fire_coral_block;VANILLA:assets/minecraft/textures/block/fire_coral_block.png + - minecraft:horn_coral_block;VANILLA:assets/minecraft/textures/block/horn_coral_block.png + - minecraft:tube_coral_block;VANILLA:assets/minecraft/textures/block/tube_coral_block.png + - minecraft:dead_brain_coral_block;VANILLA:assets/minecraft/textures/block/dead_brain_coral_block.png + - minecraft:dead_bubble_coral_block;VANILLA:assets/minecraft/textures/block/dead_bubble_coral_block.png + - minecraft:dead_fire_coral_block;VANILLA:assets/minecraft/textures/block/dead_fire_coral_block.png + - minecraft:dead_horn_coral_block;VANILLA:assets/minecraft/textures/block/dead_horn_coral_block.png + - minecraft:dead_tube_coral_block;VANILLA:assets/minecraft/textures/block/dead_tube_coral_block.png diff --git a/MCPainter/palette/default.yml b/MCPainter/palette/default.yml index 098380b..16bb34e 100644 --- a/MCPainter/palette/default.yml +++ b/MCPainter/palette/default.yml @@ -6,147 +6,246 @@ ################################################################################ name: Default blocks: - - WOOL:0-VANILLA:assets/minecraft/textures/blocks/wool_colored_white.png - - WOOL:1-VANILLA:assets/minecraft/textures/blocks/wool_colored_orange.png - - WOOL:2-VANILLA:assets/minecraft/textures/blocks/wool_colored_magenta.png - - WOOL:3-VANILLA:assets/minecraft/textures/blocks/wool_colored_light_blue.png - - WOOL:4-VANILLA:assets/minecraft/textures/blocks/wool_colored_yellow.png - - WOOL:5-VANILLA:assets/minecraft/textures/blocks/wool_colored_lime.png - - WOOL:6-VANILLA:assets/minecraft/textures/blocks/wool_colored_pink.png - - WOOL:7-VANILLA:assets/minecraft/textures/blocks/wool_colored_gray.png - - WOOL:8-VANILLA:assets/minecraft/textures/blocks/wool_colored_silver.png - - WOOL:9-VANILLA:assets/minecraft/textures/blocks/wool_colored_cyan.png - - WOOL:10-VANILLA:assets/minecraft/textures/blocks/wool_colored_purple.png - - WOOL:11-VANILLA:assets/minecraft/textures/blocks/wool_colored_blue.png - - WOOL:12-VANILLA:assets/minecraft/textures/blocks/wool_colored_brown.png - - WOOL:13-VANILLA:assets/minecraft/textures/blocks/wool_colored_green.png - - WOOL:14-VANILLA:assets/minecraft/textures/blocks/wool_colored_red.png - - WOOL:15-VANILLA:assets/minecraft/textures/blocks/wool_colored_black.png - - - STAINED_CLAY:0-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_white.png - - STAINED_CLAY:1-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_orange.png - - STAINED_CLAY:2-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_magenta.png - - STAINED_CLAY:3-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_light_blue.png - - STAINED_CLAY:4-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_yellow.png - - STAINED_CLAY:5-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_lime.png - - STAINED_CLAY:6-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_pink.png - - STAINED_CLAY:7-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_gray.png - - STAINED_CLAY:8-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_silver.png - - STAINED_CLAY:9-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_cyan.png - - STAINED_CLAY:10-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_purple.png - - STAINED_CLAY:11-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_blue.png - - STAINED_CLAY:12-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_brown.png - - STAINED_CLAY:13-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_green.png - - STAINED_CLAY:14-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_red.png - - STAINED_CLAY:15-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_black.png - - - STONE-VANILLA:assets/minecraft/textures/blocks/stone.png - - DIRT-VANILLA:assets/minecraft/textures/blocks/dirt.png - - - BRICK-VANILLA:assets/minecraft/textures/blocks/brick.png - - COBBLESTONE-VANILLA:assets/minecraft/textures/blocks/stonebrick.png - - BEDROCK-VANILLA:assets/minecraft/textures/blocks/bedrock.png - - - LOG:12-VANILLA:assets/minecraft/textures/blocks/log_oak.png - - LOG:13-VANILLA:assets/minecraft/textures/blocks/log_spruce.png - - LOG:14-VANILLA:assets/minecraft/textures/blocks/log_birch.png - - LOG:15-VANILLA:assets/minecraft/textures/blocks/log_jungle.png - - - LOG_2:12-VANILLA:assets/minecraft/textures/blocks/log_acacia.png - - LOG_2:13-VANILLA:assets/minecraft/textures/blocks/log_big_oak.png - - - WOOD:0-VANILLA:assets/minecraft/textures/blocks/planks_oak.png - - WOOD:1-VANILLA:assets/minecraft/textures/blocks/planks_spruce.png - - WOOD:2-VANILLA:assets/minecraft/textures/blocks/planks_birch.png - - WOOD:3-VANILLA:assets/minecraft/textures/blocks/planks_jungle.png - - WOOD:4-VANILLA:assets/minecraft/textures/blocks/planks_acacia.png - - WOOD:5-VANILLA:assets/minecraft/textures/blocks/planks_big_oak.png - - - IRON_BLOCK-VANILLA:assets/minecraft/textures/blocks/iron_block.png - - GOLD_BLOCK-VANILLA:assets/minecraft/textures/blocks/gold_block.png - - DIAMOND_BLOCK-VANILLA:assets/minecraft/textures/blocks/diamond_block.png - - EMERALD_BLOCK-VANILLA:assets/minecraft/textures/blocks/emerald_block.png - - GOLD_ORE-VANILLA:assets/minecraft/textures/blocks/gold_ore.png - - IRON_ORE-VANILLA:assets/minecraft/textures/blocks/iron_ore.png - - COAL_ORE-VANILLA:assets/minecraft/textures/blocks/coal_ore.png - - MOSSY_COBBLESTONE-VANILLA:assets/minecraft/textures/blocks/cobblestone_mossy.png - - OBSIDIAN-VANILLA:assets/minecraft/textures/blocks/obsidian.png - - - SPONGE-VANILLA:assets/minecraft/textures/blocks/sponge.png - - DIAMOND_ORE-VANILLA:assets/minecraft/textures/blocks/diamond_ore.png - - REDSTONE_ORE-VANILLA:assets/minecraft/textures/blocks/redstone_ore.png - - SMOOTH_BRICK:0-VANILLA:assets/minecraft/textures/blocks/stonebrick.png - - SNOW_BLOCK-VANILLA:assets/minecraft/textures/blocks/snow.png - - HARD_CLAY-VANILLA:assets/minecraft/textures/blocks/hardened_clay.png - - CLAY-VANILLA:assets/minecraft/textures/blocks/clay.png - - NOTE_BLOCK-VANILLA:assets/minecraft/textures/blocks/noteblock.png - - SMOOTH_BRICK:1-VANILLA:assets/minecraft/textures/blocks/stonebrick_mossy.png - - SMOOTH_BRICK:2-VANILLA:assets/minecraft/textures/blocks/stonebrick_cracked.png - - NETHERRACK-VANILLA:assets/minecraft/textures/blocks/netherrack.png - - SOUL_SAND-VANILLA:assets/minecraft/textures/blocks/soul_sand.png - - GLOWSTONE-VANILLA:assets/minecraft/textures/blocks/glowstone.png - -#Pumpkins look bad in 1.8 -# - PUMPKIN:4-VANILLA:assets/minecraft/textures/blocks/pumpkin_side.png - - HUGE_MUSHROOM_2:14-VANILLA:assets/minecraft/textures/blocks/mushroom_block_skin_red.png - - HUGE_MUSHROOM_1:14-VANILLA:assets/minecraft/textures/blocks/mushroom_block_skin_brown.png - -# - HUGE_MUSHROOM_1:10-VANILLA:assets/minecraft/textures/blocks/mushroom_block_inside.png -# - HUGE_MUSHROOM_1:0-VANILLA:assets/minecraft/textures/blocks/mushroom_block_skin_stem.png - - - LAPIS_BLOCK-VANILLA:assets/minecraft/textures/blocks/lapis_block.png - - - LAPIS_ORE-VANILLA:assets/minecraft/textures/blocks/lapis_ore.png - - EMERALD_ORE-VANILLA:assets/minecraft/textures/blocks/emerald_ore.png - - ENDER_STONE-VANILLA:assets/minecraft/textures/blocks/end_stone.png - - - SANDSTONE:0-VANILLA:assets/minecraft/textures/blocks/sandstone_normal.png - - - REDSTONE_LAMP_OFF-VANILLA:assets/minecraft/textures/blocks/redstone_lamp_off.png - - SMOOTH_BRICK:3-VANILLA:assets/minecraft/textures/blocks/stonebrick_carved.png - - SANDSTONE:1-VANILLA:assets/minecraft/textures/blocks/sandstone_carved.png - - SANDSTONE:2-VANILLA:assets/minecraft/textures/blocks/sandstone_smooth.png - - - NETHER_BRICK-VANILLA:assets/minecraft/textures/blocks/nether_brick.png - -# - LEAVES:0-VANILLA:assets/minecraft/textures/blocks/leaves_oak.png-84,75 -# - LEAVES:1-VANILLA:assets/minecraft/textures/blocks/leaves_spruce.png-120,38 -# - LEAVES:2-VANILLA:assets/minecraft/textures/blocks/leaves_birch.png-88,50 -# - LEAVES:3-VANILLA:assets/minecraft/textures/blocks/leaves_jungle.png-85,74 - - - STAINED_GLASS:0-VANILLA:assets/minecraft/textures/blocks/glass_white.png - - STAINED_GLASS:1-VANILLA:assets/minecraft/textures/blocks/glass_orange.png - - STAINED_GLASS:2-VANILLA:assets/minecraft/textures/blocks/glass_magenta.png - - STAINED_GLASS:3-VANILLA:assets/minecraft/textures/blocks/glass_light_blue.png - - STAINED_GLASS:4-VANILLA:assets/minecraft/textures/blocks/glass_yellow.png - - STAINED_GLASS:5-VANILLA:assets/minecraft/textures/blocks/glass_lime.png - - STAINED_GLASS:6-VANILLA:assets/minecraft/textures/blocks/glass_pink.png - - STAINED_GLASS:7-VANILLA:assets/minecraft/textures/blocks/glass_gray.png - - STAINED_GLASS:8-VANILLA:assets/minecraft/textures/blocks/glass_silver.png - - STAINED_GLASS:9-VANILLA:assets/minecraft/textures/blocks/glass_cyan.png - - STAINED_GLASS:10-VANILLA:assets/minecraft/textures/blocks/glass_purple.png - - STAINED_GLASS:11-VANILLA:assets/minecraft/textures/blocks/glass_blue.png - - STAINED_GLASS:12-VANILLA:assets/minecraft/textures/blocks/glass_brown.png - - STAINED_GLASS:13-VANILLA:assets/minecraft/textures/blocks/glass_green.png - - STAINED_GLASS:14-VANILLA:assets/minecraft/textures/blocks/glass_red.png - - STAINED_GLASS:15-VANILLA:assets/minecraft/textures/blocks/glass_black.png - - - STONE:1-VANILLA:assets/minecraft/textures/blocks/stone_granite.png - - STONE:2-VANILLA:assets/minecraft/textures/blocks/stone_granite_smooth.png - - STONE:3-VANILLA:assets/minecraft/textures/blocks/stone_diorite.png - - STONE:4-VANILLA:assets/minecraft/textures/blocks/stone_diorite_smooth.png - - STONE:5-VANILLA:assets/minecraft/textures/blocks/stone_andesite.png - - STONE:6-VANILLA:assets/minecraft/textures/blocks/stone_andesite_smooth.png - - - SPONGE-VANILLA:assets/minecraft/textures/blocks/sponge.png - - SPONGE:1-VANILLA:assets/minecraft/textures/blocks/sponge_wet.png - - - PRISMARINE-VANILLA:assets/minecraft/textures/blocks/prismarine_rough.png - - PRISMARINE:2-VANILLA:assets/minecraft/textures/blocks/prismarine_dark.png - - PRISMARINE:1-VANILLA:assets/minecraft/textures/blocks/sea_lantern.png - - - SEA_LANTERN-VANILLA:assets/minecraft/textures/blocks/prismarine_bricks.png - - - RED_SANDSTONE:0-VANILLA:assets/minecraft/textures/blocks/red_sandstone_normal.png - - RED_SANDSTONE:1-VANILLA:assets/minecraft/textures/blocks/red_sandstone_carved.png - - RED_SANDSTONE:2-VANILLA:assets/minecraft/textures/blocks/red_sandstone_smooth.png +# Wools + - minecraft:black_wool;VANILLA:assets/minecraft/textures/block/black_wool.png + - minecraft:blue_wool;VANILLA:assets/minecraft/textures/block/blue_wool.png + - minecraft:brown_wool;VANILLA:assets/minecraft/textures/block/brown_wool.png + - minecraft:cyan_wool;VANILLA:assets/minecraft/textures/block/cyan_wool.png + - minecraft:gray_wool;VANILLA:assets/minecraft/textures/block/gray_wool.png + - minecraft:green_wool;VANILLA:assets/minecraft/textures/block/green_wool.png + - minecraft:light_blue_wool;VANILLA:assets/minecraft/textures/block/light_blue_wool.png + - minecraft:light_gray_wool;VANILLA:assets/minecraft/textures/block/light_gray_wool.png + - minecraft:lime_wool;VANILLA:assets/minecraft/textures/block/lime_wool.png + - minecraft:magenta_wool;VANILLA:assets/minecraft/textures/block/magenta_wool.png + - minecraft:orange_wool;VANILLA:assets/minecraft/textures/block/orange_wool.png + - minecraft:pink_wool;VANILLA:assets/minecraft/textures/block/pink_wool.png + - minecraft:purple_wool;VANILLA:assets/minecraft/textures/block/purple_wool.png + - minecraft:red_wool;VANILLA:assets/minecraft/textures/block/red_wool.png + - minecraft:white_wool;VANILLA:assets/minecraft/textures/block/white_wool.png + - minecraft:yellow_wool;VANILLA:assets/minecraft/textures/block/yellow_wool.png + +# Concrete + - minecraft:black_concrete;VANILLA:assets/minecraft/textures/block/black_concrete.png + - minecraft:blue_concrete;VANILLA:assets/minecraft/textures/block/blue_concrete.png + - minecraft:brown_concrete;VANILLA:assets/minecraft/textures/block/brown_concrete.png + - minecraft:cyan_concrete;VANILLA:assets/minecraft/textures/block/cyan_concrete.png + - minecraft:gray_concrete;VANILLA:assets/minecraft/textures/block/gray_concrete.png + - minecraft:green_concrete;VANILLA:assets/minecraft/textures/block/green_concrete.png + - minecraft:light_blue_concrete;VANILLA:assets/minecraft/textures/block/light_blue_concrete.png + - minecraft:light_gray_concrete;VANILLA:assets/minecraft/textures/block/light_gray_concrete.png + - minecraft:lime_concrete;VANILLA:assets/minecraft/textures/block/lime_concrete.png + - minecraft:magenta_concrete;VANILLA:assets/minecraft/textures/block/magenta_concrete.png + - minecraft:orange_concrete;VANILLA:assets/minecraft/textures/block/orange_concrete.png + - minecraft:pink_concrete;VANILLA:assets/minecraft/textures/block/pink_concrete.png + - minecraft:purple_concrete;VANILLA:assets/minecraft/textures/block/purple_concrete.png + - minecraft:red_concrete;VANILLA:assets/minecraft/textures/block/red_concrete.png + - minecraft:white_concrete;VANILLA:assets/minecraft/textures/block/white_concrete.png + - minecraft:yellow_concrete;VANILLA:assets/minecraft/textures/block/yellow_concrete.png + +# Concrete powder +# - minecraft:black_concrete_powder;VANILLA:assets/minecraft/textures/block/black_concrete_powder.png +# - minecraft:blue_concrete_powder;VANILLA:assets/minecraft/textures/block/blue_concrete_powder.png +# - minecraft:brown_concrete_powder;VANILLA:assets/minecraft/textures/block/brown_concrete_powder.png +# - minecraft:cyan_concrete_powder;VANILLA:assets/minecraft/textures/block/cyan_concrete_powder.png +# - minecraft:gray_concrete_powder;VANILLA:assets/minecraft/textures/block/gray_concrete_powder.png +# - minecraft:green_concrete_powder;VANILLA:assets/minecraft/textures/block/green_concrete_powder.png +# - minecraft:light_blue_concrete_powder;VANILLA:assets/minecraft/textures/block/light_blue_concrete_powder.png +# - minecraft:light_gray_concrete_powder;VANILLA:assets/minecraft/textures/block/light_gray_concrete_powder.png +# - minecraft:lime_concrete_powder;VANILLA:assets/minecraft/textures/block/lime_concrete_powder.png +# - minecraft:magenta_concrete_powder;VANILLA:assets/minecraft/textures/block/magenta_concrete_powder.png +# - minecraft:orange_concrete_powder;VANILLA:assets/minecraft/textures/block/orange_concrete_powder.png +# - minecraft:pink_concrete_powder;VANILLA:assets/minecraft/textures/block/pink_concrete_powder.png +# - minecraft:purple_concrete_powder;VANILLA:assets/minecraft/textures/block/purple_concrete_powder.png +# - minecraft:red_concrete_powder;VANILLA:assets/minecraft/textures/block/red_concrete_powder.png +# - minecraft:white_concrete_powder;VANILLA:assets/minecraft/textures/block/white_concrete_powder.png +# - minecraft:yellow_concrete_powder;VANILLA:assets/minecraft/textures/block/yellow_concrete_powder.png + +# Glazed terracotta + - minecraft:black_glazed_terracotta;VANILLA:assets/minecraft/textures/block/black_glazed_terracotta.png + - minecraft:blue_glazed_terracotta;VANILLA:assets/minecraft/textures/block/blue_glazed_terracotta.png + - minecraft:brown_glazed_terracotta;VANILLA:assets/minecraft/textures/block/brown_glazed_terracotta.png + - minecraft:cyan_glazed_terracotta;VANILLA:assets/minecraft/textures/block/cyan_glazed_terracotta.png + - minecraft:gray_glazed_terracotta;VANILLA:assets/minecraft/textures/block/gray_glazed_terracotta.png + - minecraft:green_glazed_terracotta;VANILLA:assets/minecraft/textures/block/green_glazed_terracotta.png + - minecraft:light_blue_glazed_terracotta;VANILLA:assets/minecraft/textures/block/light_blue_glazed_terracotta.png + - minecraft:lime_glazed_terracotta;VANILLA:assets/minecraft/textures/block/lime_glazed_terracotta.png + - minecraft:magenta_glazed_terracotta;VANILLA:assets/minecraft/textures/block/magenta_glazed_terracotta.png + - minecraft:orange_glazed_terracotta;VANILLA:assets/minecraft/textures/block/orange_glazed_terracotta.png + - minecraft:pink_glazed_terracotta;VANILLA:assets/minecraft/textures/block/pink_glazed_terracotta.png + - minecraft:purple_glazed_terracotta;VANILLA:assets/minecraft/textures/block/purple_glazed_terracotta.png + - minecraft:red_glazed_terracotta;VANILLA:assets/minecraft/textures/block/red_glazed_terracotta.png + - minecraft:light_gray_glazed_terracotta;VANILLA:assets/minecraft/textures/block/light_gray_glazed_terracotta.png + - minecraft:white_glazed_terracotta;VANILLA:assets/minecraft/textures/block/white_glazed_terracotta.png + - minecraft:yellow_glazed_terracotta;VANILLA:assets/minecraft/textures/block/yellow_glazed_terracotta.png + +# Terracotta + - minecraft:terracotta;VANILLA:assets/minecraft/textures/block/terracotta.png + - minecraft:black_terracotta;VANILLA:assets/minecraft/textures/block/black_terracotta.png + - minecraft:blue_terracotta;VANILLA:assets/minecraft/textures/block/blue_terracotta.png + - minecraft:brown_terracotta;VANILLA:assets/minecraft/textures/block/brown_terracotta.png + - minecraft:cyan_terracotta;VANILLA:assets/minecraft/textures/block/cyan_terracotta.png + - minecraft:gray_terracotta;VANILLA:assets/minecraft/textures/block/gray_terracotta.png + - minecraft:green_terracotta;VANILLA:assets/minecraft/textures/block/green_terracotta.png + - minecraft:light_blue_terracotta;VANILLA:assets/minecraft/textures/block/light_blue_terracotta.png + - minecraft:light_gray_terracotta;VANILLA:assets/minecraft/textures/block/light_gray_terracotta.png + - minecraft:lime_terracotta;VANILLA:assets/minecraft/textures/block/lime_terracotta.png + - minecraft:magenta_terracotta;VANILLA:assets/minecraft/textures/block/magenta_terracotta.png + - minecraft:orange_terracotta;VANILLA:assets/minecraft/textures/block/orange_terracotta.png + - minecraft:pink_terracotta;VANILLA:assets/minecraft/textures/block/pink_terracotta.png + - minecraft:purple_terracotta;VANILLA:assets/minecraft/textures/block/purple_terracotta.png + - minecraft:red_terracotta;VANILLA:assets/minecraft/textures/block/red_terracotta.png + - minecraft:white_terracotta;VANILLA:assets/minecraft/textures/block/white_terracotta.png + - minecraft:yellow_terracotta;VANILLA:assets/minecraft/textures/block/yellow_terracotta.png + +# Glass +# - minecraft:glass;VANILLA:assets/minecraft/textures/block/glass.png +# - minecraft:black_stained_glass;VANILLA:assets/minecraft/textures/block/black_stained_glass.png +# - minecraft:blue_stained_glass;VANILLA:assets/minecraft/textures/block/blue_stained_glass.png +# - minecraft:brown_stained_glass;VANILLA:assets/minecraft/textures/block/brown_stained_glass.png +# - minecraft:cyan_stained_glass;VANILLA:assets/minecraft/textures/block/cyan_stained_glass.png +# - minecraft:gray_stained_glass;VANILLA:assets/minecraft/textures/block/gray_stained_glass.png +# - minecraft:green_stained_glass;VANILLA:assets/minecraft/textures/block/green_stained_glass.png +# - minecraft:light_blue_stained_glass;VANILLA:assets/minecraft/textures/block/light_blue_stained_glass.png +# - minecraft:light_gray_stained_glass;VANILLA:assets/minecraft/textures/block/light_gray_stained_glass.png +# - minecraft:lime_stained_glass;VANILLA:assets/minecraft/textures/block/lime_stained_glass.png +# - minecraft:magenta_stained_glass;VANILLA:assets/minecraft/textures/block/magenta_stained_glass.png +# - minecraft:orange_stained_glass;VANILLA:assets/minecraft/textures/block/orange_stained_glass.png +# - minecraft:pink_stained_glass;VANILLA:assets/minecraft/textures/block/pink_stained_glass.png +# - minecraft:red_stained_glass;VANILLA:assets/minecraft/textures/block/red_stained_glass.png +# - minecraft:purple_stained_glass;VANILLA:assets/minecraft/textures/block/purple_stained_glass.png +# - minecraft:white_stained_glass;VANILLA:assets/minecraft/textures/block/white_stained_glass.png +# - minecraft:yellow_stained_glass;VANILLA:assets/minecraft/textures/block/yellow_stained_glass.png + +# Leaves +# - minecraft:acacia_leaves;VANILLA:assets/minecraft/textures/block/acacia_leaves.png;102,86 +# - minecraft:birch_leaves;VANILLA:assets/minecraft/textures/block/birch_leaves.png;88,49 +# - minecraft:dark_oak_leaves;VANILLA:assets/minecraft/textures/block/dark_oak_leaves.png;102,87 +# - minecraft:jungle_leaves;VANILLA:assets/minecraft/textures/block/jungle_leaves.png;107,99 +# - minecraft:oak_leaves;VANILLA:assets/minecraft/textures/block/oak_leaves.png;102,87 +# - minecraft:spruce_leaves;VANILLA:assets/minecraft/textures/block/spruce_leaves.png;120,37 + +# Wood + - minecraft:acacia_wood;VANILLA:assets/minecraft/textures/block/acacia_log.png + - minecraft:birch_wood;VANILLA:assets/minecraft/textures/block/birch_log.png + - minecraft:dark_oak_wood;VANILLA:assets/minecraft/textures/block/dark_oak_log.png + - minecraft:jungle_wood;VANILLA:assets/minecraft/textures/block/jungle_log.png + - minecraft:oak_wood;VANILLA:assets/minecraft/textures/block/oak_log.png + - minecraft:spruce_wood;VANILLA:assets/minecraft/textures/block/spruce_log.png + - minecraft:stripped_oak_wood;VANILLA:assets/minecraft/textures/block/stripped_oak_log.png + - minecraft:stripped_spruce_wood;VANILLA:assets/minecraft/textures/block/stripped_spruce_log.png + - minecraft:stripped_birch_wood;VANILLA:assets/minecraft/textures/block/stripped_birch_log.png + - minecraft:stripped_jungle_wood;VANILLA:assets/minecraft/textures/block/stripped_jungle_log.png + - minecraft:stripped_acacia_wood;VANILLA:assets/minecraft/textures/block/stripped_acacia_log.png + - minecraft:stripped_dark_oak_wood;VANILLA:assets/minecraft/textures/block/stripped_dark_oak_log.png + +# Planks + - minecraft:acacia_planks;VANILLA:assets/minecraft/textures/block/acacia_planks.png + - minecraft:birch_planks;VANILLA:assets/minecraft/textures/block/birch_planks.png + - minecraft:dark_oak_planks;VANILLA:assets/minecraft/textures/block/dark_oak_planks.png + - minecraft:jungle_planks;VANILLA:assets/minecraft/textures/block/jungle_planks.png + - minecraft:oak_planks;VANILLA:assets/minecraft/textures/block/oak_planks.png + - minecraft:spruce_planks;VANILLA:assets/minecraft/textures/block/spruce_planks.png + +# Ore + - minecraft:coal_ore;VANILLA:assets/minecraft/textures/block/coal_ore.png + - minecraft:diamond_ore;VANILLA:assets/minecraft/textures/block/diamond_ore.png + - minecraft:emerald_ore;VANILLA:assets/minecraft/textures/block/emerald_ore.png + - minecraft:gold_ore;VANILLA:assets/minecraft/textures/block/gold_ore.png + - minecraft:iron_ore;VANILLA:assets/minecraft/textures/block/iron_ore.png + - minecraft:lapis_ore;VANILLA:assets/minecraft/textures/block/lapis_ore.png + - minecraft:nether_quartz_ore;VANILLA:assets/minecraft/textures/block/nether_quartz_ore.png + - minecraft:redstone_ore;VANILLA:assets/minecraft/textures/block/redstone_ore.png + +# Ore blocks + - minecraft:coal_block;VANILLA:assets/minecraft/textures/block/coal_block.png + - minecraft:diamond_block;VANILLA:assets/minecraft/textures/block/diamond_block.png + - minecraft:emerald_block;VANILLA:assets/minecraft/textures/block/emerald_block.png + - minecraft:gold_block;VANILLA:assets/minecraft/textures/block/gold_block.png + - minecraft:iron_block;VANILLA:assets/minecraft/textures/block/iron_block.png + - minecraft:lapis_block;VANILLA:assets/minecraft/textures/block/lapis_block.png + - minecraft:redstone_block;VANILLA:assets/minecraft/textures/block/redstone_block.png + +# Stone + - minecraft:andesite;VANILLA:assets/minecraft/textures/block/andesite.png + - minecraft:diorite;VANILLA:assets/minecraft/textures/block/diorite.png + - minecraft:granite;VANILLA:assets/minecraft/textures/block/granite.png + - minecraft:polished_andesite;VANILLA:assets/minecraft/textures/block/polished_andesite.png + - minecraft:polished_diorite;VANILLA:assets/minecraft/textures/block/polished_diorite.png + - minecraft:polished_granite;VANILLA:assets/minecraft/textures/block/polished_granite.png + - minecraft:chiseled_stone_bricks;VANILLA:assets/minecraft/textures/block/chiseled_stone_bricks.png + - minecraft:cobblestone;VANILLA:assets/minecraft/textures/block/cobblestone.png + - minecraft:stone;VANILLA:assets/minecraft/textures/block/stone.png + - minecraft:mossy_cobblestone;VANILLA:assets/minecraft/textures/block/mossy_cobblestone.png + - minecraft:cracked_stone_bricks;VANILLA:assets/minecraft/textures/block/cracked_stone_bricks.png + - minecraft:mossy_stone_bricks;VANILLA:assets/minecraft/textures/block/mossy_stone_bricks.png + - minecraft:smooth_stone;VANILLA:assets/minecraft/textures/block/stone_slab_top.png + - minecraft:stone_bricks;VANILLA:assets/minecraft/textures/block/stone_bricks.png + +# Sandstone + - minecraft:sandstone;VANILLA:assets/minecraft/textures/block/sandstone.png + - minecraft:chiseled_sandstone;VANILLA:assets/minecraft/textures/block/chiseled_sandstone.png + - minecraft:cut_sandstone;VANILLA:assets/minecraft/textures/block/cut_sandstone.png + - minecraft:smooth_sandstone;VANILLA:assets/minecraft/textures/block/sandstone_top.png + - minecraft:red_sandstone;VANILLA:assets/minecraft/textures/block/red_sandstone.png + - minecraft:chiseled_red_sandstone;VANILLA:assets/minecraft/textures/block/chiseled_red_sandstone.png + - minecraft:cut_red_sandstone;VANILLA:assets/minecraft/textures/block/cut_red_sandstone.png + - minecraft:smooth_red_sandstone;VANILLA:assets/minecraft/textures/block/red_sandstone_top.png + +# Ice +# - minecraft:ice;VANILLA:assets/minecraft/textures/block/ice.png +# - minecraft:packed_ice;VANILLA:assets/minecraft/textures/block/packed_ice.png +# - minecraft:blue_ice;VANILLA:assets/minecraft/textures/block/blue_ice.png + +# Coral + - minecraft:brain_coral_block;VANILLA:assets/minecraft/textures/block/brain_coral_block.png + - minecraft:bubble_coral_block;VANILLA:assets/minecraft/textures/block/bubble_coral_block.png + - minecraft:fire_coral_block;VANILLA:assets/minecraft/textures/block/fire_coral_block.png + - minecraft:horn_coral_block;VANILLA:assets/minecraft/textures/block/horn_coral_block.png + - minecraft:tube_coral_block;VANILLA:assets/minecraft/textures/block/tube_coral_block.png + - minecraft:dead_brain_coral_block;VANILLA:assets/minecraft/textures/block/dead_brain_coral_block.png + - minecraft:dead_bubble_coral_block;VANILLA:assets/minecraft/textures/block/dead_bubble_coral_block.png + - minecraft:dead_fire_coral_block;VANILLA:assets/minecraft/textures/block/dead_fire_coral_block.png + - minecraft:dead_horn_coral_block;VANILLA:assets/minecraft/textures/block/dead_horn_coral_block.png + - minecraft:dead_tube_coral_block;VANILLA:assets/minecraft/textures/block/dead_tube_coral_block.png + +# Other +# - minecraft:bedrock;VANILLA:assets/minecraft/textures/block/bedrock.png + - minecraft:bone_block;VANILLA:assets/minecraft/textures/block/bone_block_side.png + - minecraft:bricks;VANILLA:assets/minecraft/textures/block/bricks.png + - minecraft:brown_mushroom_block;VANILLA:assets/minecraft/textures/block/brown_mushroom_block.png + - minecraft:chiseled_quartz_block;VANILLA:assets/minecraft/textures/block/chiseled_quartz_block.png + - minecraft:clay;VANILLA:assets/minecraft/textures/block/clay.png + - minecraft:coarse_dirt;VANILLA:assets/minecraft/textures/block/coarse_dirt.png + - minecraft:dark_prismarine;VANILLA:assets/minecraft/textures/block/dark_prismarine.png + - minecraft:dirt;VANILLA:assets/minecraft/textures/block/dirt.png + - minecraft:dried_kelp_block;VANILLA:assets/minecraft/textures/block/dried_kelp_side.png + - minecraft:end_stone;VANILLA:assets/minecraft/textures/block/end_stone.png + - minecraft:end_stone_bricks;VANILLA:assets/minecraft/textures/block/end_stone_bricks.png + - minecraft:glowstone;VANILLA:assets/minecraft/textures/block/glowstone.png + - minecraft:hay_block;VANILLA:assets/minecraft/textures/block/hay_block_side.png + - minecraft:magma_block;VANILLA:assets/minecraft/textures/block/magma.png + - minecraft:melon;VANILLA:assets/minecraft/textures/block/melon_side.png + - minecraft:mushroom_stem;VANILLA:assets/minecraft/textures/block/mushroom_stem.png + - minecraft:nether_bricks;VANILLA:assets/minecraft/textures/block/nether_bricks.png + - minecraft:nether_wart_block;VANILLA:assets/minecraft/textures/block/nether_wart_block.png + - minecraft:netherrack;VANILLA:assets/minecraft/textures/block/netherrack.png + - minecraft:note_block;VANILLA:assets/minecraft/textures/block/note_block.png + - minecraft:obsidian;VANILLA:assets/minecraft/textures/block/obsidian.png + - minecraft:prismarine;VANILLA:assets/minecraft/textures/block/prismarine.png + - minecraft:prismarine_bricks;VANILLA:assets/minecraft/textures/block/prismarine_bricks.png +# - minecraft:pumpkin;VANILLA:assets/minecraft/textures/block/pumpkin_side.png + - minecraft:purpur_block;VANILLA:assets/minecraft/textures/block/purpur_block.png + - minecraft:purpur_pillar;VANILLA:assets/minecraft/textures/block/purpur_pillar.png + - minecraft:quartz_block;VANILLA:assets/minecraft/textures/block/quartz_block_side.png + - minecraft:quartz_pillar;VANILLA:assets/minecraft/textures/block/quartz_pillar.png + - minecraft:red_mushroom_block;VANILLA:assets/minecraft/textures/block/red_mushroom_block.png + - minecraft:red_nether_bricks;VANILLA:assets/minecraft/textures/block/red_nether_bricks.png + - minecraft:redstone_lamp;VANILLA:assets/minecraft/textures/block/redstone_lamp.png + - minecraft:sea_lantern;VANILLA:assets/minecraft/textures/block/sea_lantern.png + - minecraft:slime_block;VANILLA:assets/minecraft/textures/block/slime_block.png + - minecraft:smooth_quartz;VANILLA:assets/minecraft/textures/block/quartz_block_top.png +# - minecraft:snow_block;VANILLA:assets/minecraft/textures/block/snow.png + - minecraft:soul_sand;VANILLA:assets/minecraft/textures/block/soul_sand.png + - minecraft:sponge;VANILLA:assets/minecraft/textures/block/sponge.png + - minecraft:wet_sponge;VANILLA:assets/minecraft/textures/block/wet_sponge.png + diff --git a/MCPainter/palette/glass.yml b/MCPainter/palette/glass.yml index b046436..7959640 100644 --- a/MCPainter/palette/glass.yml +++ b/MCPainter/palette/glass.yml @@ -6,19 +6,20 @@ ################################################################################ name: Glass blocks: - - STAINED_GLASS:0-VANILLA:assets/minecraft/textures/blocks/glass_white.png - - STAINED_GLASS:1-VANILLA:assets/minecraft/textures/blocks/glass_orange.png - - STAINED_GLASS:2-VANILLA:assets/minecraft/textures/blocks/glass_magenta.png - - STAINED_GLASS:3-VANILLA:assets/minecraft/textures/blocks/glass_light_blue.png - - STAINED_GLASS:4-VANILLA:assets/minecraft/textures/blocks/glass_yellow.png - - STAINED_GLASS:5-VANILLA:assets/minecraft/textures/blocks/glass_lime.png - - STAINED_GLASS:6-VANILLA:assets/minecraft/textures/blocks/glass_pink.png - - STAINED_GLASS:7-VANILLA:assets/minecraft/textures/blocks/glass_gray.png - - STAINED_GLASS:8-VANILLA:assets/minecraft/textures/blocks/glass_silver.png - - STAINED_GLASS:9-VANILLA:assets/minecraft/textures/blocks/glass_cyan.png - - STAINED_GLASS:10-VANILLA:assets/minecraft/textures/blocks/glass_purple.png - - STAINED_GLASS:11-VANILLA:assets/minecraft/textures/blocks/glass_blue.png - - STAINED_GLASS:12-VANILLA:assets/minecraft/textures/blocks/glass_brown.png - - STAINED_GLASS:13-VANILLA:assets/minecraft/textures/blocks/glass_green.png - - STAINED_GLASS:14-VANILLA:assets/minecraft/textures/blocks/glass_red.png - - STAINED_GLASS:15-VANILLA:assets/minecraft/textures/blocks/glass_black.png \ No newline at end of file + - minecraft:glass;VANILLA:assets/minecraft/textures/block/glass.png + - minecraft:black_stained_glass;VANILLA:assets/minecraft/textures/block/black_stained_glass.png + - minecraft:blue_stained_glass;VANILLA:assets/minecraft/textures/block/blue_stained_glass.png + - minecraft:brown_stained_glass;VANILLA:assets/minecraft/textures/block/brown_stained_glass.png + - minecraft:cyan_stained_glass;VANILLA:assets/minecraft/textures/block/cyan_stained_glass.png + - minecraft:gray_stained_glass;VANILLA:assets/minecraft/textures/block/gray_stained_glass.png + - minecraft:green_stained_glass;VANILLA:assets/minecraft/textures/block/green_stained_glass.png + - minecraft:light_blue_stained_glass;VANILLA:assets/minecraft/textures/block/light_blue_stained_glass.png + - minecraft:light_gray_stained_glass;VANILLA:assets/minecraft/textures/block/light_gray_stained_glass.png + - minecraft:lime_stained_glass;VANILLA:assets/minecraft/textures/block/lime_stained_glass.png + - minecraft:magenta_stained_glass;VANILLA:assets/minecraft/textures/block/magenta_stained_glass.png + - minecraft:orange_stained_glass;VANILLA:assets/minecraft/textures/block/orange_stained_glass.png + - minecraft:pink_stained_glass;VANILLA:assets/minecraft/textures/block/pink_stained_glass.png + - minecraft:red_stained_glass;VANILLA:assets/minecraft/textures/block/red_stained_glass.png + - minecraft:purple_stained_glass;VANILLA:assets/minecraft/textures/block/purple_stained_glass.png + - minecraft:white_stained_glass;VANILLA:assets/minecraft/textures/block/white_stained_glass.png + - minecraft:yellow_stained_glass;VANILLA:assets/minecraft/textures/block/yellow_stained_glass.png \ No newline at end of file diff --git a/MCPainter/palette/stone.yml b/MCPainter/palette/stone.yml index 5f12a34..df93f6a 100644 --- a/MCPainter/palette/stone.yml +++ b/MCPainter/palette/stone.yml @@ -6,10 +6,17 @@ ################################################################################ name: Stone blocks: - - STONE-VANILLA:assets/minecraft/textures/blocks/stone.png - - COBBLESTONE-VANILLA:assets/minecraft/textures/blocks/stonebrick.png - - SMOOTH_BRICK:0-VANILLA:assets/minecraft/textures/blocks/stonebrick.png - - SMOOTH_BRICK:1-VANILLA:assets/minecraft/textures/blocks/stonebrick_mossy.png - - SMOOTH_BRICK:2-VANILLA:assets/minecraft/textures/blocks/stonebrick_cracked.png - - SMOOTH_BRICK:3-VANILLA:assets/minecraft/textures/blocks/stonebrick_carved.png - - MOSSY_COBBLESTONE-VANILLA:assets/minecraft/textures/blocks/cobblestone_mossy.png \ No newline at end of file + - minecraft:andesite;VANILLA:assets/minecraft/textures/block/andesite.png + - minecraft:diorite;VANILLA:assets/minecraft/textures/block/diorite.png + - minecraft:granite;VANILLA:assets/minecraft/textures/block/granite.png + - minecraft:polished_andesite;VANILLA:assets/minecraft/textures/block/polished_andesite.png + - minecraft:polished_diorite;VANILLA:assets/minecraft/textures/block/polished_diorite.png + - minecraft:polished_granite;VANILLA:assets/minecraft/textures/block/polished_granite.png + - minecraft:chiseled_stone_bricks;VANILLA:assets/minecraft/textures/block/chiseled_stone_bricks.png + - minecraft:cobblestone;VANILLA:assets/minecraft/textures/block/cobblestone.png + - minecraft:stone;VANILLA:assets/minecraft/textures/block/stone.png + - minecraft:mossy_cobblestone;VANILLA:assets/minecraft/textures/block/mossy_cobblestone.png + - minecraft:cracked_stone_bricks;VANILLA:assets/minecraft/textures/block/cracked_stone_bricks.png + - minecraft:mossy_stone_bricks;VANILLA:assets/minecraft/textures/block/mossy_stone_bricks.png + - minecraft:smooth_stone;VANILLA:assets/minecraft/textures/block/stone_slab_top.png + - minecraft:stone_bricks;VANILLA:assets/minecraft/textures/block/stone_bricks.png diff --git a/MCPainter/palette/terracotta.yml b/MCPainter/palette/terracotta.yml new file mode 100644 index 0000000..89703ff --- /dev/null +++ b/MCPainter/palette/terracotta.yml @@ -0,0 +1,44 @@ +################################################################################ +# MCPainter palette definition file +# Author: SBPrime +# Description: +# Palette consisting only of terracotta blocks +################################################################################ +name: Terracota +blocks: +# Glazed terracotta + - minecraft:black_glazed_terracotta;VANILLA:assets/minecraft/textures/block/black_glazed_terracotta.png + - minecraft:blue_glazed_terracotta;VANILLA:assets/minecraft/textures/block/blue_glazed_terracotta.png + - minecraft:brown_glazed_terracotta;VANILLA:assets/minecraft/textures/block/brown_glazed_terracotta.png + - minecraft:cyan_glazed_terracotta;VANILLA:assets/minecraft/textures/block/cyan_glazed_terracotta.png + - minecraft:gray_glazed_terracotta;VANILLA:assets/minecraft/textures/block/gray_glazed_terracotta.png + - minecraft:green_glazed_terracotta;VANILLA:assets/minecraft/textures/block/green_glazed_terracotta.png + - minecraft:light_blue_glazed_terracotta;VANILLA:assets/minecraft/textures/block/light_blue_glazed_terracotta.png + - minecraft:lime_glazed_terracotta;VANILLA:assets/minecraft/textures/block/lime_glazed_terracotta.png + - minecraft:magenta_glazed_terracotta;VANILLA:assets/minecraft/textures/block/magenta_glazed_terracotta.png + - minecraft:orange_glazed_terracotta;VANILLA:assets/minecraft/textures/block/orange_glazed_terracotta.png + - minecraft:pink_glazed_terracotta;VANILLA:assets/minecraft/textures/block/pink_glazed_terracotta.png + - minecraft:purple_glazed_terracotta;VANILLA:assets/minecraft/textures/block/purple_glazed_terracotta.png + - minecraft:red_glazed_terracotta;VANILLA:assets/minecraft/textures/block/red_glazed_terracotta.png + - minecraft:light_gray_glazed_terracotta;VANILLA:assets/minecraft/textures/block/light_gray_glazed_terracotta.png + - minecraft:white_glazed_terracotta;VANILLA:assets/minecraft/textures/block/white_glazed_terracotta.png + - minecraft:yellow_glazed_terracotta;VANILLA:assets/minecraft/textures/block/yellow_glazed_terracotta.png + +# Terracotta + - minecraft:terracotta;VANILLA:assets/minecraft/textures/block/terracotta.png + - minecraft:black_terracotta;VANILLA:assets/minecraft/textures/block/black_terracotta.png + - minecraft:blue_terracotta;VANILLA:assets/minecraft/textures/block/blue_terracotta.png + - minecraft:brown_terracotta;VANILLA:assets/minecraft/textures/block/brown_terracotta.png + - minecraft:cyan_terracotta;VANILLA:assets/minecraft/textures/block/cyan_terracotta.png + - minecraft:gray_terracotta;VANILLA:assets/minecraft/textures/block/gray_terracotta.png + - minecraft:green_terracotta;VANILLA:assets/minecraft/textures/block/green_terracotta.png + - minecraft:light_blue_terracotta;VANILLA:assets/minecraft/textures/block/light_blue_terracotta.png + - minecraft:light_gray_terracotta;VANILLA:assets/minecraft/textures/block/light_gray_terracotta.png + - minecraft:lime_terracotta;VANILLA:assets/minecraft/textures/block/lime_terracotta.png + - minecraft:magenta_terracotta;VANILLA:assets/minecraft/textures/block/magenta_terracotta.png + - minecraft:orange_terracotta;VANILLA:assets/minecraft/textures/block/orange_terracotta.png + - minecraft:pink_terracotta;VANILLA:assets/minecraft/textures/block/pink_terracotta.png + - minecraft:purple_terracotta;VANILLA:assets/minecraft/textures/block/purple_terracotta.png + - minecraft:red_terracotta;VANILLA:assets/minecraft/textures/block/red_terracotta.png + - minecraft:white_terracotta;VANILLA:assets/minecraft/textures/block/white_terracotta.png + - minecraft:yellow_terracotta;VANILLA:assets/minecraft/textures/block/yellow_terracotta.png diff --git a/MCPainter/palette/wood.yml b/MCPainter/palette/wood.yml index 5a2845b..795cbf3 100644 --- a/MCPainter/palette/wood.yml +++ b/MCPainter/palette/wood.yml @@ -5,18 +5,25 @@ # Palette consisting only of wood ################################################################################ name: Wood -blocks: - - LOG:12-VANILLA:assets/minecraft/textures/blocks/log_oak.png - - LOG:13-VANILLA:assets/minecraft/textures/blocks/log_spruce.png - - LOG:14-VANILLA:assets/minecraft/textures/blocks/log_birch.png - - LOG:15-VANILLA:assets/minecraft/textures/blocks/log_jungle.png - - - LOG_2:12-VANILLA:assets/minecraft/textures/blocks/log_acacia.png - - LOG_2:13-VANILLA:assets/minecraft/textures/blocks/log_big_oak.png - - - WOOD:0-VANILLA:assets/minecraft/textures/blocks/planks_oak.png - - WOOD:1-VANILLA:assets/minecraft/textures/blocks/planks_spruce.png - - WOOD:2-VANILLA:assets/minecraft/textures/blocks/planks_birch.png - - WOOD:3-VANILLA:assets/minecraft/textures/blocks/planks_jungle.png - - WOOD:4-VANILLA:assets/minecraft/textures/blocks/planks_acacia.png - - WOOD:5-VANILLA:assets/minecraft/textures/blocks/planks_big_oak.png \ No newline at end of file +blocks: +# Wood + - minecraft:acacia_wood;VANILLA:assets/minecraft/textures/block/acacia_log.png + - minecraft:birch_wood;VANILLA:assets/minecraft/textures/block/birch_log.png + - minecraft:dark_oak_wood;VANILLA:assets/minecraft/textures/block/dark_oak_log.png + - minecraft:jungle_wood;VANILLA:assets/minecraft/textures/block/jungle_log.png + - minecraft:oak_wood;VANILLA:assets/minecraft/textures/block/oak_log.png + - minecraft:spruce_wood;VANILLA:assets/minecraft/textures/block/spruce_log.png + - minecraft:stripped_oak_wood;VANILLA:assets/minecraft/textures/block/stripped_oak_log.png + - minecraft:stripped_spruce_wood;VANILLA:assets/minecraft/textures/block/stripped_spruce_log.png + - minecraft:stripped_birch_wood;VANILLA:assets/minecraft/textures/block/stripped_birch_log.png + - minecraft:stripped_jungle_wood;VANILLA:assets/minecraft/textures/block/stripped_jungle_log.png + - minecraft:stripped_acacia_wood;VANILLA:assets/minecraft/textures/block/stripped_acacia_log.png + - minecraft:stripped_dark_oak_wood;VANILLA:assets/minecraft/textures/block/stripped_dark_oak_log.png + +# Planks + - minecraft:acacia_planks;VANILLA:assets/minecraft/textures/block/acacia_planks.png + - minecraft:birch_planks;VANILLA:assets/minecraft/textures/block/birch_planks.png + - minecraft:dark_oak_planks;VANILLA:assets/minecraft/textures/block/dark_oak_planks.png + - minecraft:jungle_planks;VANILLA:assets/minecraft/textures/block/jungle_planks.png + - minecraft:oak_planks;VANILLA:assets/minecraft/textures/block/oak_planks.png + - minecraft:spruce_planks;VANILLA:assets/minecraft/textures/block/spruce_planks.png diff --git a/MCPainter/palette/wool.yml b/MCPainter/palette/wool.yml index 58a0093..9480fa7 100644 --- a/MCPainter/palette/wool.yml +++ b/MCPainter/palette/wool.yml @@ -6,19 +6,19 @@ ################################################################################ name: Wool blocks: - - WOOL:0-VANILLA:assets/minecraft/textures/blocks/wool_colored_white.png - - WOOL:1-VANILLA:assets/minecraft/textures/blocks/wool_colored_orange.png - - WOOL:2-VANILLA:assets/minecraft/textures/blocks/wool_colored_magenta.png - - WOOL:3-VANILLA:assets/minecraft/textures/blocks/wool_colored_light_blue.png - - WOOL:4-VANILLA:assets/minecraft/textures/blocks/wool_colored_yellow.png - - WOOL:5-VANILLA:assets/minecraft/textures/blocks/wool_colored_lime.png - - WOOL:6-VANILLA:assets/minecraft/textures/blocks/wool_colored_pink.png - - WOOL:7-VANILLA:assets/minecraft/textures/blocks/wool_colored_gray.png - - WOOL:8-VANILLA:assets/minecraft/textures/blocks/wool_colored_silver.png - - WOOL:9-VANILLA:assets/minecraft/textures/blocks/wool_colored_cyan.png - - WOOL:10-VANILLA:assets/minecraft/textures/blocks/wool_colored_purple.png - - WOOL:11-VANILLA:assets/minecraft/textures/blocks/wool_colored_blue.png - - WOOL:12-VANILLA:assets/minecraft/textures/blocks/wool_colored_brown.png - - WOOL:13-VANILLA:assets/minecraft/textures/blocks/wool_colored_green.png - - WOOL:14-VANILLA:assets/minecraft/textures/blocks/wool_colored_red.png - - WOOL:15-VANILLA:assets/minecraft/textures/blocks/wool_colored_black.png \ No newline at end of file + - minecraft:black_wool;VANILLA:assets/minecraft/textures/block/black_wool.png + - minecraft:blue_wool;VANILLA:assets/minecraft/textures/block/blue_wool.png + - minecraft:brown_wool;VANILLA:assets/minecraft/textures/block/brown_wool.png + - minecraft:cyan_wool;VANILLA:assets/minecraft/textures/block/cyan_wool.png + - minecraft:gray_wool;VANILLA:assets/minecraft/textures/block/gray_wool.png + - minecraft:green_wool;VANILLA:assets/minecraft/textures/block/green_wool.png + - minecraft:light_blue_wool;VANILLA:assets/minecraft/textures/block/light_blue_wool.png + - minecraft:light_gray_wool;VANILLA:assets/minecraft/textures/block/light_gray_wool.png + - minecraft:lime_wool;VANILLA:assets/minecraft/textures/block/lime_wool.png + - minecraft:magenta_wool;VANILLA:assets/minecraft/textures/block/magenta_wool.png + - minecraft:orange_wool;VANILLA:assets/minecraft/textures/block/orange_wool.png + - minecraft:pink_wool;VANILLA:assets/minecraft/textures/block/pink_wool.png + - minecraft:purple_wool;VANILLA:assets/minecraft/textures/block/purple_wool.png + - minecraft:red_wool;VANILLA:assets/minecraft/textures/block/red_wool.png + - minecraft:white_wool;VANILLA:assets/minecraft/textures/block/white_wool.png + - minecraft:yellow_wool;VANILLA:assets/minecraft/textures/block/yellow_wool.png diff --git a/MCPainter/palette/woolAndClay.yml b/MCPainter/palette/woolAndClay.yml deleted file mode 100644 index db74879..0000000 --- a/MCPainter/palette/woolAndClay.yml +++ /dev/null @@ -1,43 +0,0 @@ -################################################################################ -# MCPainter palette definition file -# Author: SBPrime -# Description: -# Palette consisting of wool and clay -################################################################################ -name: Wool&Clay -blocks: - - WOOL:0-VANILLA:assets/minecraft/textures/blocks/wool_colored_white.png - - WOOL:1-VANILLA:assets/minecraft/textures/blocks/wool_colored_orange.png - - WOOL:2-VANILLA:assets/minecraft/textures/blocks/wool_colored_magenta.png - - WOOL:3-VANILLA:assets/minecraft/textures/blocks/wool_colored_light_blue.png - - WOOL:4-VANILLA:assets/minecraft/textures/blocks/wool_colored_yellow.png - - WOOL:5-VANILLA:assets/minecraft/textures/blocks/wool_colored_lime.png - - WOOL:6-VANILLA:assets/minecraft/textures/blocks/wool_colored_pink.png - - WOOL:7-VANILLA:assets/minecraft/textures/blocks/wool_colored_gray.png - - WOOL:8-VANILLA:assets/minecraft/textures/blocks/wool_colored_silver.png - - WOOL:9-VANILLA:assets/minecraft/textures/blocks/wool_colored_cyan.png - - WOOL:10-VANILLA:assets/minecraft/textures/blocks/wool_colored_purple.png - - WOOL:11-VANILLA:assets/minecraft/textures/blocks/wool_colored_blue.png - - WOOL:12-VANILLA:assets/minecraft/textures/blocks/wool_colored_brown.png - - WOOL:13-VANILLA:assets/minecraft/textures/blocks/wool_colored_green.png - - WOOL:14-VANILLA:assets/minecraft/textures/blocks/wool_colored_red.png - - WOOL:15-VANILLA:assets/minecraft/textures/blocks/wool_colored_black.png - - - STAINED_CLAY:0-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_white.png - - STAINED_CLAY:1-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_orange.png - - STAINED_CLAY:2-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_magenta.png - - STAINED_CLAY:3-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_light_blue.png - - STAINED_CLAY:4-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_yellow.png - - STAINED_CLAY:5-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_lime.png - - STAINED_CLAY:6-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_pink.png - - STAINED_CLAY:7-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_gray.png - - STAINED_CLAY:8-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_silver.png - - STAINED_CLAY:9-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_cyan.png - - STAINED_CLAY:10-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_purple.png - - STAINED_CLAY:11-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_blue.png - - STAINED_CLAY:12-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_brown.png - - STAINED_CLAY:13-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_green.png - - STAINED_CLAY:14-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_red.png - - STAINED_CLAY:15-VANILLA:assets/minecraft/textures/blocks/hardened_clay_stained_black.png - - HARD_CLAY-VANILLA:assets/minecraft/textures/blocks/hardened_clay.png - - CLAY-VANILLA:assets/minecraft/textures/blocks/clay.png \ No newline at end of file diff --git a/MCPainter/pom.xml b/MCPainter/pom.xml index b6c59cd..16bc386 100644 --- a/MCPainter/pom.xml +++ b/MCPainter/pom.xml @@ -20,40 +20,42 @@ github-blockshub https://raw.githubusercontent.com/SBPrime/BlocksHub/maven-artifact/ - sk89q http://maven.sk89q.com/artifactory/repo + + + herocraft + http://nexus.hc.to/content/repositories/pub_releases/ - - + + spigot + https://hub.spigotmc.org/nexus/content/groups/public/ + org.bukkit bukkit - [1.12, 1.13) - jar - - - - com.sk89q.worldedit - worldedit-core - 6.1 + [1.13, 1.14) jar + system + ${project.basedir}/libs/spigot-1.13-fe3ab0d-0611294.jar org.primesoft - BlocksHub - 2.1.1 + BlocksHubBukkitApi + [3.0.0, 4.0.0) jar - net.milkbowl.vault - Vault - 1.2.27 + com.sk89q.worldedit + worldedit-bukkit + 7.0.0-SNAPSHOT jar + system + ${project.basedir}/libs/worldedit-bukkit-7.0.0-SNAPSHOT-dist.jar commons-codec @@ -62,10 +64,10 @@ jar - com.sk89q.worldedit - worldedit-bukkit - 6.1.5 - jar + net.milkbowl.vault + VaultAPI + 1.6 + provided diff --git a/MCPainter/scrap/DrawingBlockRGB.java b/MCPainter/scrap/DrawingBlockRGB.java index cf2544c..4da8b7f 100644 --- a/MCPainter/scrap/DrawingBlockRGB.java +++ b/MCPainter/scrap/DrawingBlockRGB.java @@ -29,7 +29,7 @@ import java.util.ArrayList; import java.util.EnumSet; import java.util.List; -import org.primesoft.mcpainter.Configuration.OperationType; +import org.primesoft.mcpainter.configuration.OperationType; import org.primesoft.mcpainter.blocksplacer.BlockLoger; import org.primesoft.mcpainter.blocksplacer.ILoggerCommand; import org.bukkit.Chunk; diff --git a/MCPainter/scrap/MC3D/Buffer.java b/MCPainter/scrap/MC3D/Buffer.java index ad91d71..23a22dc 100644 --- a/MCPainter/scrap/MC3D/Buffer.java +++ b/MCPainter/scrap/MC3D/Buffer.java @@ -26,7 +26,7 @@ import com.sk89q.worldedit.LocalPlayer; import java.awt.image.BufferedImage; import org.primesoft.mcpainter.BlockLoger; -import org.primesoft.mcpainter.Configuration.OperationType; +import org.primesoft.mcpainter.configuration.OperationType; import org.primesoft.mcpainter.drawing.ColorMap; import org.primesoft.mcpainter.drawing.ImageHelper; diff --git a/MCPainter/scrap/MC3D/Utils3D.java b/MCPainter/scrap/MC3D/Utils3D.java index c5efaf9..50df5a8 100644 --- a/MCPainter/scrap/MC3D/Utils3D.java +++ b/MCPainter/scrap/MC3D/Utils3D.java @@ -30,7 +30,7 @@ import java.util.Comparator; import java.util.List; import org.primesoft.mcpainter.BlockLoger; -import org.primesoft.mcpainter.Configuration.OperationType; +import org.primesoft.mcpainter.configuration.OperationType; import org.primesoft.mcpainter.drawing.ColorMap; import org.primesoft.mcpainter.drawing.ImageHelper; diff --git a/MCPainter/scrap/assets/assets/AssetsCube.java b/MCPainter/scrap/assets/assets/AssetsCube.java index e65b7a1..5097fba 100644 --- a/MCPainter/scrap/assets/assets/AssetsCube.java +++ b/MCPainter/scrap/assets/assets/AssetsCube.java @@ -27,7 +27,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import org.primesoft.mcpainter.Configuration.ConfigProvider; +import org.primesoft.mcpainter.configuration.ConfigProvider; import org.primesoft.mcpainter.drawing.RawImage; import org.primesoft.mcpainter.texture.TextureEntry; import org.primesoft.mcpainter.utils.InOutParam; diff --git a/MCPainter/scrap/mods/assets/AssetsCube.java b/MCPainter/scrap/mods/assets/AssetsCube.java index e65b7a1..5097fba 100644 --- a/MCPainter/scrap/mods/assets/AssetsCube.java +++ b/MCPainter/scrap/mods/assets/AssetsCube.java @@ -27,7 +27,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import org.primesoft.mcpainter.Configuration.ConfigProvider; +import org.primesoft.mcpainter.configuration.ConfigProvider; import org.primesoft.mcpainter.drawing.RawImage; import org.primesoft.mcpainter.texture.TextureEntry; import org.primesoft.mcpainter.utils.InOutParam; diff --git a/MCPainter/scrap/rgb/ColorMapRGB.java b/MCPainter/scrap/rgb/ColorMapRGB.java index a9332a4..3b05f70 100644 --- a/MCPainter/scrap/rgb/ColorMapRGB.java +++ b/MCPainter/scrap/rgb/ColorMapRGB.java @@ -26,7 +26,7 @@ import java.awt.Color; import java.util.LinkedHashMap; import java.util.Map; -import org.primesoft.mcpainter.Configuration.OperationType; +import org.primesoft.mcpainter.configuration.OperationType; import org.primesoft.mcpainter.drawing.dilters.ColorPaletteRgb; import org.primesoft.mcpainter.drawing.dilters.IColorPalette; import org.primesoft.mcpainter.rgbblocks.RgbWrapper; diff --git a/MCPainter/scrap/rgb/DrawingBlock.java b/MCPainter/scrap/rgb/DrawingBlock.java index 2727f29..8619059 100644 --- a/MCPainter/scrap/rgb/DrawingBlock.java +++ b/MCPainter/scrap/rgb/DrawingBlock.java @@ -28,8 +28,8 @@ import com.sk89q.worldedit.blocks.BaseBlock; import java.awt.Color; import java.util.EnumSet; -import org.primesoft.mcpainter.Configuration.BlockEntry; -import org.primesoft.mcpainter.Configuration.OperationType; +import org.primesoft.mcpainter.configuration.BlockEntry; +import org.primesoft.mcpainter.configuration.OperationType; import org.primesoft.mcpainter.blocksplacer.BlockLoger; /** diff --git a/MCPainter/scrap/rgb/DrawingBlockRGB.java b/MCPainter/scrap/rgb/DrawingBlockRGB.java index cf2544c..4da8b7f 100644 --- a/MCPainter/scrap/rgb/DrawingBlockRGB.java +++ b/MCPainter/scrap/rgb/DrawingBlockRGB.java @@ -29,7 +29,7 @@ import java.util.ArrayList; import java.util.EnumSet; import java.util.List; -import org.primesoft.mcpainter.Configuration.OperationType; +import org.primesoft.mcpainter.configuration.OperationType; import org.primesoft.mcpainter.blocksplacer.BlockLoger; import org.primesoft.mcpainter.blocksplacer.ILoggerCommand; import org.bukkit.Chunk; diff --git a/MCPainter/scrap/rgb/IColorMap.java b/MCPainter/scrap/rgb/IColorMap.java index e71b823..00731a3 100644 --- a/MCPainter/scrap/rgb/IColorMap.java +++ b/MCPainter/scrap/rgb/IColorMap.java @@ -24,7 +24,7 @@ package org.primesoft.mcpainter.drawing; import java.awt.Color; -import org.primesoft.mcpainter.Configuration.OperationType; +import org.primesoft.mcpainter.configuration.OperationType; import org.primesoft.mcpainter.drawing.dilters.IColorPalette; /** diff --git a/MCPainter/scrap/rgb/IDrawingBlock.java b/MCPainter/scrap/rgb/IDrawingBlock.java index 2f7fcc5..a4bbd76 100644 --- a/MCPainter/scrap/rgb/IDrawingBlock.java +++ b/MCPainter/scrap/rgb/IDrawingBlock.java @@ -26,7 +26,7 @@ import com.sk89q.worldedit.MaxChangedBlocksException; import com.sk89q.worldedit.Vector; import java.util.EnumSet; -import org.primesoft.mcpainter.Configuration.OperationType; +import org.primesoft.mcpainter.configuration.OperationType; import org.primesoft.mcpainter.blocksplacer.BlockLoger; /** diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/BlocksHubIntegration.java b/MCPainter/src/main/java/org/primesoft/mcpainter/BlocksHubIntegration.java index 9f58a6c..abd26e4 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/BlocksHubIntegration.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/BlocksHubIntegration.java @@ -23,18 +23,17 @@ */ package org.primesoft.mcpainter; -import org.primesoft.mcpainter.Configuration.ConfigProvider; +import org.primesoft.mcpainter.configuration.ConfigProvider; import org.primesoft.mcpainter.utils.BaseBlock; import org.primesoft.mcpainter.utils.Vector; import org.bukkit.Location; -import org.bukkit.Material; import org.bukkit.World; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; import org.primesoft.blockshub.IBlocksHubApi; import org.primesoft.blockshub.IBlocksHubApiProvider; -import org.primesoft.blockshub.api.BlockData; +import org.primesoft.blockshub.api.platform.BukkitBlockData; /** * @@ -71,45 +70,36 @@ public BlocksHubIntegration(JavaPlugin plugin) { m_isInitialized = m_blocksApi != null && m_blocksApi.getVersion() >= 1.0; } - public boolean canPlace(Player player, World world, Location location) { - return canPlace(player, world, - new org.primesoft.blockshub.api.Vector(location.getX(), location.getY(), location.getZ())); - } - public boolean canPlace(Player player, World world, Vector location) { - return canPlace(player, world, - new org.primesoft.blockshub.api.Vector(location.getX(), location.getY(), location.getZ())); + return canPlace(player, world, location.getBlockX(), location.getBlockY(), location.getBlockZ()); } - public boolean canPlace(Player player, World world, - org.primesoft.blockshub.api.Vector location) { + public boolean canPlace(Player player, World world, Location location) { + return canPlace(player, world, location.getBlockX(), location.getBlockY(), location.getBlockZ()); + } + + public boolean canPlace(Player player, World world, double x, double y, double z) { if (!m_isInitialized || !ConfigProvider.getCheckAccess()) { return true; } - return m_blocksApi.hasAccess(player.getUniqueId(), world.getUID(), location); + return m_blocksApi.hasAccess(player.getUniqueId(), world.getUID(), + x, y, z); } public void logBlock(Player player, World world, Vector location, BaseBlock oldBlock, BaseBlock newBlock) { - if (location == null || !ConfigProvider.getLogBlocks()) - { + if (location == null || !ConfigProvider.getLogBlocks()) { return; } + + final BukkitBlockData oldBlockData = oldBlock != null && oldBlock.Data != null ? new BukkitBlockData(oldBlock.Data) : null; + final BukkitBlockData newBlockData = newBlock != null && newBlock.Data != null ? new BukkitBlockData(newBlock.Data) : null; - if (oldBlock == null) - { - oldBlock = new BaseBlock(Material.AIR); - } - if (newBlock == null) - { - newBlock = new BaseBlock(Material.AIR); - } - - - m_blocksApi.logBlock( - new org.primesoft.blockshub.api.Vector(location.getX(), location.getY(), location.getZ()), - player.getUniqueId(), world.getUID(), - new BlockData(oldBlock.getType(), oldBlock.getData()), - new BlockData(newBlock.getType(), newBlock.getData())); + m_blocksApi.logBlock( + player.getUniqueId(), world.getUID(), + location.getX(), location.getY(), location.getZ(), + oldBlockData, + newBlockData + ); } -} +} \ No newline at end of file diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/EventListener.java b/MCPainter/src/main/java/org/primesoft/mcpainter/EventListener.java index 1ce2b73..48abf19 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/EventListener.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/EventListener.java @@ -24,7 +24,7 @@ package org.primesoft.mcpainter; import org.primesoft.mcpainter.utils.VersionChecker; -import org.primesoft.mcpainter.Configuration.ConfigProvider; +import org.primesoft.mcpainter.configuration.ConfigProvider; import org.bukkit.ChatColor; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/MCPainterMain.java b/MCPainter/src/main/java/org/primesoft/mcpainter/MCPainterMain.java index 68fd8b6..367f630 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/MCPainterMain.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/MCPainterMain.java @@ -36,7 +36,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import org.primesoft.mcpainter.commands.*; -import org.primesoft.mcpainter.Configuration.ConfigProvider; +import org.primesoft.mcpainter.configuration.ConfigProvider; import org.primesoft.mcpainter.drawing.blocks.IBlockProvider; import org.primesoft.mcpainter.drawing.blocks.MultiBlockProvider; import org.primesoft.mcpainter.drawing.blocks.VanillaBlockProvider; @@ -44,7 +44,6 @@ import org.primesoft.mcpainter.drawing.IColorMap; import org.primesoft.mcpainter.drawing.statue.PlayerStatueDescription; import org.primesoft.mcpainter.drawing.statue.StatueDescription; -import org.primesoft.mcpainter.drawing.MetricsLite; import org.primesoft.mcpainter.mapdrawer.MapHelper; import org.primesoft.mcpainter.texture.TextureManager; import org.primesoft.mcpainter.texture.TexturePack; @@ -63,6 +62,7 @@ import org.bukkit.entity.Player; import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.java.JavaPlugin; +import org.primesoft.mcpainter.mcstats.MetricsLite; /** * @author SBPrime @@ -159,9 +159,8 @@ public void onEnable() { try { m_metrics = new MetricsLite(this); m_metrics.start(); - } catch (IOException e) { - ExceptionHelper.printException(e, "Error initializing MCStats"); - } + } catch (IOException ex) { + } if (!FoundManager.load(this)) { log("Error initializing eco."); @@ -171,6 +170,8 @@ public void onEnable() { m_blocksProvider = new MultiBlockProvider(); m_statueProvider = new ModStatueProvider(); + + m_blocksHub = new BlocksHubIntegration(this); m_worldEdit = WorldEditFactory.getWorldEditWrapper(this); if (m_worldEdit == null) { log("World edit not found."); @@ -240,7 +241,11 @@ public boolean onCommand(CommandSender sender, Command command, String label, St args = Commands.insertArgs(args, Commands.COMMAND_BLOCK); } else if (commandName.equalsIgnoreCase(Commands.ALT_RENDER)) { args = Commands.insertArgs(args, Commands.COMMAND_RENDER); - } else if (!commandName.equalsIgnoreCase(Commands.COMMAND_MAIN)) { + } else if (!m_worldEdit.isRealWorldEdit() && commandName.equalsIgnoreCase(Commands.ALT_UNDO)) { + m_worldEdit.undo(player); + return true; + } + else if (!commandName.equalsIgnoreCase(Commands.COMMAND_MAIN)) { return false; } @@ -291,6 +296,9 @@ public boolean onCommand(CommandSender sender, Command command, String label, St } else if (name.equalsIgnoreCase(Commands.COMMAND_RENDER)) { doRender(player, args); return true; + } else if (!m_worldEdit.isRealWorldEdit() && name.equalsIgnoreCase(Commands.COMMAND_UNDO)) { + m_worldEdit.undo(player); + return true; } return Help.ShowHelp(player, null); @@ -345,12 +353,11 @@ private void doReloadConfig(Player player) { private String initializeConfig() { m_textureManager.dispose(); m_paletteManager.clear(); - m_blocksHub = new BlocksHubIntegration(this); if (m_blockPlacer != null) { m_blockPlacer.queueStop(); } - m_blockPlacer = new BlockPlacer(this, m_blocksHub); + m_blockPlacer = new BlockPlacer(this); m_modProvider = new ModsProvider(ConfigProvider.getModFolder()); DataFile[] dataFiles = DataFile.processFiles(ConfigProvider.getDataFolder()); @@ -417,7 +424,7 @@ private void initializeBlocks(ModConfig[] mods) { log("* " + modConfig.getName() + "..."); - final List bProviders = new ArrayList(); + final List bProviders = new ArrayList<>(); if (blocks != null) { final IBlockProvider bProvider = ModBlockProvider.load(m_textureManager, blocks); diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/PermissionManager.java b/MCPainter/src/main/java/org/primesoft/mcpainter/PermissionManager.java index 4ed6175..231e646 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/PermissionManager.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/PermissionManager.java @@ -23,8 +23,8 @@ */ package org.primesoft.mcpainter; -import org.primesoft.mcpainter.Configuration.ConfigProvider; -import org.primesoft.mcpainter.Configuration.SizeNode; +import org.primesoft.mcpainter.configuration.ConfigProvider; +import org.primesoft.mcpainter.configuration.SizeNode; import org.bukkit.ChatColor; import org.bukkit.entity.Player; diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/BlockEntry.java b/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/BlockEntry.java index f925d39..c5cb5eb 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/BlockEntry.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/BlockEntry.java @@ -47,13 +47,11 @@ public BlockEntry(BlockLoger loger, Vector location, BaseBlock newBlock) { } @Override - public void execute(BlockPlacer blockPlacer) { + public void execute() { Player p = getPlayer(); IEditSession eSession = m_loger.getEditSession(); - try { - BaseBlock oldBlock = eSession.getBlock(m_location); - eSession.setBlock(m_location, m_newBlock); - blockPlacer.logBlock(m_location, oldBlock, m_newBlock, p, m_loger.getWorld()); + try { + eSession.setBlock(m_location, m_newBlock); } catch (MaxChangedBlocksException ex) { MCPainterMain.say(p, "Max block change reached"); MCPainterMain.log(ex.getMessage()); diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/BlockLoger.java b/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/BlockLoger.java index 7416e6d..a00d94f 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/BlockLoger.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/BlockLoger.java @@ -25,7 +25,7 @@ import java.util.ArrayList; import java.util.List; -import org.primesoft.mcpainter.Configuration.ConfigProvider; +import org.primesoft.mcpainter.configuration.ConfigProvider; import org.primesoft.mcpainter.MCPainterMain; import org.primesoft.mcpainter.utils.BaseBlock; import org.primesoft.mcpainter.utils.Vector; @@ -40,11 +40,12 @@ * @author SBPrime */ public class BlockLoger { + /** * The MTA mutex */ private final Object m_mutex = new Object(); - + private final Player m_player; private final List m_blocks; private final ILocalSession m_session; @@ -77,7 +78,7 @@ public ILocalSession getLocalSession() { public BlockLoger(Player player, ILocalSession session, IEditSession eSession, MCPainterMain main) { - m_blocks = new ArrayList(); + m_blocks = new ArrayList<>(); m_player = player; m_session = session; m_editSession = eSession; @@ -86,25 +87,28 @@ public BlockLoger(Player player, ILocalSession session, IEditSession eSession, m_blocksPlacer = main.getBlockPlacer(); } - public void logCommand(ILoggerCommand command) { + public void logChange(IChange command) { Location location = command.getLocation(); - if (m_mainPlugin.getBlocksHub().canPlace(m_player, m_world, location)) { - synchronized (m_mutex) { - m_blocks.add(new CommandEntry(this, command)); - } - checkFlush(); + if (location != null && !m_mainPlugin.getBlocksHub().canPlace(m_player, m_world, location)) { + return; } + + synchronized (m_mutex) { + m_blocks.add(new ChangeEntry(this, command)); + } + checkFlush(); + } - + public void logBlock(Vector location, BaseBlock block) { - if (m_mainPlugin.getBlocksHub().canPlace(m_player, m_world, location)) { - synchronized (m_mutex) { - m_blocks.add(new BlockEntry(this, location, block)); - } - checkFlush(); + if (!m_mainPlugin.getBlocksHub().canPlace(m_player, m_world, location)) { + return; + } + synchronized (m_mutex) { + m_blocks.add(new BlockEntry(this, location, block)); } + checkFlush(); } - public void logEndSession() { synchronized (m_mutex) { m_blocks.add(new FlushEntry(this)); @@ -124,7 +128,7 @@ private void checkFlush() { synchronized (m_mutex) { shuldFlush = m_blocks.size() > ConfigProvider.getQueueHardLimit(); } - + if (shuldFlush) { flush(); } @@ -137,5 +141,5 @@ public void flush() { m_blocks.clear(); } m_blocksPlacer.addTasks(events, getPlayer()); - } -} \ No newline at end of file + } +} diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/BlockLogerEntry.java b/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/BlockLogerEntry.java index dfd3f51..6d3a17a 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/BlockLogerEntry.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/BlockLogerEntry.java @@ -23,8 +23,6 @@ */ package org.primesoft.mcpainter.blocksplacer; -import org.primesoft.mcpainter.utils.BaseBlock; -import org.primesoft.mcpainter.utils.Vector; import org.bukkit.entity.Player; @@ -51,7 +49,6 @@ public BlockLogerEntry(BlockLoger loger) { /** * Execute the command - * @param blockPlacer */ - public abstract void execute(BlockPlacer blockPlacer); + public abstract void execute(); } diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/BlockPlacer.java b/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/BlockPlacer.java index 3ec6f9b..7beaa1b 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/BlockPlacer.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/BlockPlacer.java @@ -28,12 +28,8 @@ import java.util.HashMap; import java.util.List; import java.util.Queue; -import org.primesoft.mcpainter.BlocksHubIntegration; -import org.primesoft.mcpainter.Configuration.ConfigProvider; +import org.primesoft.mcpainter.configuration.ConfigProvider; import org.primesoft.mcpainter.MCPainterMain; -import org.primesoft.mcpainter.utils.BaseBlock; -import org.primesoft.mcpainter.utils.Vector; -import org.bukkit.World; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitScheduler; import org.bukkit.scheduler.BukkitTask; @@ -48,10 +44,6 @@ public class BlockPlacer implements Runnable { */ private final Object m_mutex = new Object(); - /** - * The block hub - */ - private final BlocksHubIntegration m_blocksHub; /** * Bukkit scheduler */ @@ -81,11 +73,9 @@ public class BlockPlacer implements Runnable { * Initialize new instance of the block placer * * @param plugin parent - * @param blocksHub */ - public BlockPlacer(MCPainterMain plugin, BlocksHubIntegration blocksHub) { - m_blocksHub = blocksHub; - m_blocks = new HashMap>(); + public BlockPlacer(MCPainterMain plugin) { + m_blocks = new HashMap<>(); m_scheduler = plugin.getServer().getScheduler(); m_queueHard = ConfigProvider.getQueueHardLimit(); m_queueSoft = ConfigProvider.getQueueSoftLimit(); @@ -251,20 +241,6 @@ private void process(BlockLogerEntry entry) { if (entry == null) { return; } - entry.execute(this); - } - - /** - * Log block operation for core protection - * - * @param v block possition - * @param oldBlock old block - * @param newBlock new block - * @param p player - * @param world world - */ - public void logBlock(Vector v, BaseBlock oldBlock, BaseBlock newBlock, - Player p, World world) { - m_blocksHub.logBlock(p, world, v, oldBlock, newBlock); + entry.execute(); } } diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/CommandEntry.java b/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/ChangeEntry.java similarity index 69% rename from MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/CommandEntry.java rename to MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/ChangeEntry.java index 0677d58..e660f6f 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/CommandEntry.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/ChangeEntry.java @@ -23,28 +23,36 @@ */ package org.primesoft.mcpainter.blocksplacer; +import org.primesoft.mcpainter.MCPainterMain; +import org.primesoft.mcpainter.worldEdit.MaxChangedBlocksException; + /** * * @author SBPrime */ -public class CommandEntry extends BlockLogerEntry { - private final ILoggerCommand m_command; - - public CommandEntry(BlockLoger loger, ILoggerCommand command) { +public class ChangeEntry extends BlockLogerEntry { + + private final IChange m_change; + + public ChangeEntry(BlockLoger loger, IChange change) { super(loger); - - m_command = command; + + m_change = change; } @Override public boolean canRemove() { return true; - } - - + } + @Override - public void execute(BlockPlacer blockPlacer) { - m_command.execute(blockPlacer, m_loger); + public void execute() { + try { + m_loger.getEditSession().doCustom(m_change); + } catch (MaxChangedBlocksException ex) { + MCPainterMain.say(getPlayer(), "Max block change reached"); + MCPainterMain.log(ex.getMessage()); + } } - + } diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/FlushEntry.java b/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/FlushEntry.java index bcb931a..67f1257 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/FlushEntry.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/FlushEntry.java @@ -23,8 +23,6 @@ */ package org.primesoft.mcpainter.blocksplacer; -import org.primesoft.mcpainter.worldEdit.IEditSession; - /** * * @author SBPrime @@ -39,11 +37,8 @@ public boolean canRemove() { return false; } - - @Override - public void execute(BlockPlacer blockPlacer) { - IEditSession eSession = m_loger.getEditSession(); - m_loger.getLocalSession().remember(eSession); + public void execute() { + m_loger.getLocalSession().remember(m_loger.getEditSession()); } } diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/ILoggerCommand.java b/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/IChange.java similarity index 88% rename from MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/ILoggerCommand.java rename to MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/IChange.java index a8f5196..9382b64 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/ILoggerCommand.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/IChange.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright 2014 SBPrime. + * Copyright 2018 SBPrime. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -21,16 +21,18 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ - package org.primesoft.mcpainter.blocksplacer; import org.bukkit.Location; +import org.primesoft.mcpainter.worldEdit.MaxChangedBlocksException; /** - * Block logger commadn + * * @author SBPrime */ -public interface ILoggerCommand { - void execute(BlockPlacer blockPlacer, BlockLoger loger); +public interface IChange { Location getLocation(); + + void redo(); + void undo(); } diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/MessageEntry.java b/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/MessageEntry.java index 3f31d2b..b619211 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/MessageEntry.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/MessageEntry.java @@ -31,22 +31,22 @@ */ public class MessageEntry extends BlockLogerEntry { private final String m_message; - + public MessageEntry(BlockLoger loger, String msg) { super(loger); - + m_message = msg; } @Override public boolean canRemove() { return true; - } - - + } + + @Override - public void execute(BlockPlacer blockPlacer) { + public void execute() { MCPainterMain.say(getPlayer(), m_message); } - + } diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/commands/BlockCommand.java b/MCPainter/src/main/java/org/primesoft/mcpainter/commands/BlockCommand.java index 9273f1b..0cbe63c 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/commands/BlockCommand.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/commands/BlockCommand.java @@ -24,7 +24,7 @@ package org.primesoft.mcpainter.commands; import org.primesoft.mcpainter.blocksplacer.BlockLoger; -import org.primesoft.mcpainter.Configuration.ConfigProvider; +import org.primesoft.mcpainter.configuration.ConfigProvider; import org.primesoft.mcpainter.drawing.blocks.IBlockProvider; import org.primesoft.mcpainter.drawing.blocks.IDrawableElement; import org.primesoft.mcpainter.drawing.IColorMap; @@ -63,7 +63,6 @@ public void Execte(MCPainterMain sender, final Player player, IWorldEdit worldEd Material blockMaterial = null; short blockData; - int matId = -1; String blockName = null; if (args.length == 1) { @@ -94,17 +93,7 @@ public void Execte(MCPainterMain sender, final Player player, IWorldEdit worldEd blockData = tmp.getData(); } } else { - try { - matId = Integer.parseInt(materialParts[0]); - } catch (NumberFormatException e) { - matId = -1; - } - - if (matId == -1) { - blockName = materialParts[0].toUpperCase(); - } else { - blockMaterial = Material.getMaterial(matId); - } + blockName = materialParts[0].toUpperCase(); if (materialParts.length > 1) { int value = 0; @@ -119,7 +108,7 @@ public void Execte(MCPainterMain sender, final Player player, IWorldEdit worldEd } } - if (blockMaterial == null && matId == -1 && blockName == null) { + if (blockMaterial == null && blockName == null) { MCPainterMain.say(player, ChatColor.RED + "Unknown material"); return; } @@ -128,10 +117,10 @@ public void Execte(MCPainterMain sender, final Player player, IWorldEdit worldEd if (blockMaterial != null) { blockName = blockMaterial.toString(); } - String name = (blockName != null ? blockName : matId).toString(); + String name = blockName; MCPainterMain.say(player, "Drawing block " + name + "..."); - final IDrawableElement element = (blockName != null) ? m_blockProvider.getBlock(blockName) : m_blockProvider.getBlock(matId); + final IDrawableElement element = m_blockProvider.getBlock(blockName); if (element == null) { MCPainterMain.say(player, ChatColor.RED + "Block " + name + " not supported"); diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/commands/Commands.java b/MCPainter/src/main/java/org/primesoft/mcpainter/commands/Commands.java index f1661d3..d27e5c7 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/commands/Commands.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/commands/Commands.java @@ -46,6 +46,7 @@ public final class Commands { public final static String COMMAND_MOB = "Mob"; public final static String COMMAND_PALETTE = "Palette"; public final static String COMMAND_RENDER = "Render"; + public final static String COMMAND_UNDO = "Undo"; public final static String ALT_STATUE = "/Statue"; public final static String ALT_STATUE_URL = "/Statue_File"; public final static String ALT_IMAGE = "/Image"; @@ -53,6 +54,7 @@ public final class Commands { public final static String ALT_MOB = "/Mob"; public final static String ALT_BLOCK = "/Block"; public final static String ALT_RENDER = "/Render"; + public final static String ALT_UNDO = "//"; public static String[] insertArgs(String[] args, String toInsert) { List nArgs = new ArrayList(); diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/commands/FilterCommand.java b/MCPainter/src/main/java/org/primesoft/mcpainter/commands/FilterCommand.java index 6de9ea1..4911214 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/commands/FilterCommand.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/commands/FilterCommand.java @@ -25,7 +25,7 @@ import java.text.DecimalFormat; import java.util.Arrays; -import org.primesoft.mcpainter.Configuration.ConfigProvider; +import org.primesoft.mcpainter.configuration.ConfigProvider; import org.primesoft.mcpainter.drawing.dilters.FilterEntry; import org.primesoft.mcpainter.drawing.dilters.FilterManager; import org.primesoft.mcpainter.drawing.dilters.IImageFilter; diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/commands/HdImageCommand.java b/MCPainter/src/main/java/org/primesoft/mcpainter/commands/HdImageCommand.java index 037f7a9..2371a92 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/commands/HdImageCommand.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/commands/HdImageCommand.java @@ -24,19 +24,18 @@ package org.primesoft.mcpainter.commands; import java.awt.image.BufferedImage; +import java.util.stream.Stream; import org.primesoft.mcpainter.blocksplacer.BlockLoger; -import org.primesoft.mcpainter.blocksplacer.BlockPlacer; -import org.primesoft.mcpainter.Configuration.ConfigProvider; +import org.primesoft.mcpainter.configuration.ConfigProvider; import org.primesoft.mcpainter.drawing.dilters.CropFilter; import org.primesoft.mcpainter.drawing.dilters.FilterManager; import org.primesoft.mcpainter.drawing.ImageHelper; import org.primesoft.mcpainter.FoundManager; import org.primesoft.mcpainter.Help; -import org.primesoft.mcpainter.blocksplacer.ILoggerCommand; import org.primesoft.mcpainter.mapdrawer.MapHelper; import org.primesoft.mcpainter.PermissionManager; import org.primesoft.mcpainter.MCPainterMain; -import org.primesoft.mcpainter.worldEdit.ICuboidSelection; +import org.primesoft.mcpainter.worldEdit.CuboidSelection; import org.primesoft.mcpainter.worldEdit.IEditSession; import org.primesoft.mcpainter.worldEdit.ILocalPlayer; import org.primesoft.mcpainter.worldEdit.ILocalSession; @@ -50,10 +49,14 @@ import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; +import org.bukkit.entity.EntityType; import org.bukkit.entity.ItemFrame; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.MapMeta; import org.bukkit.map.MapView; +import org.primesoft.mcpainter.blocksplacer.IChange; +import org.primesoft.mcpainter.utils.Vector; /** * @author SBPrime @@ -67,13 +70,34 @@ public HdImageCommand(MapHelper mapHelper) { } public void Execute(MCPainterMain sender, Player player, IWorldEdit worldEdit, String[] args) { - if (args.length != 2) { + if (args.length != 2 && args.length != 4) { Help.ShowHelp(player, Commands.COMMAND_IMAGEHD); return; } String url = args[1]; - final ICuboidSelection selection = worldEdit.getSelection(player); + final CuboidSelection selection; + if (args.length == 2) { + selection = worldEdit.getSelection(player); + } else { + final World w = player.getWorld(); + Vector v1 = Vector.parse(args[2]); + Vector v2 = Vector.parse(args[3]); + + if (v1 == null || v2 == null) { + selection = null; + } else { + selection = new CuboidSelection(w, new Vector( + Math.min(v1.getX(), v2.getX()), + Math.min(v1.getY(), v2.getY()), + Math.min(v1.getZ(), v2.getZ())), + new Vector( + Math.max(v1.getX(), v2.getX()), + Math.max(v1.getY(), v2.getY()), + Math.max(v1.getZ(), v2.getZ()))); + } + } + if (selection == null) { MCPainterMain.say(player, ChatColor.RED + "No selection."); return; @@ -90,36 +114,29 @@ private static boolean isSolid(Material m) { if (m == Material.LAVA) { return false; } - if (m == Material.STATIONARY_LAVA) { - return false; - } if (m == Material.WATER) { return false; } - if (m == Material.STATIONARY_WATER) { + if (m == Material.END_PORTAL) { return false; } - if (m == Material.ENDER_PORTAL) { - return false; - } - if (m == Material.PORTAL) { + if (m == Material.NETHER_PORTAL) { return false; } return m.isSolid() && m.isBlock(); } - private class DrawMapCommand implements ILoggerCommand { + private class DrawMapCommand implements IChange { private final Location m_location; private final BufferedImage m_img; private final MapHelper m_mapHelper; private final BlockFace m_rotation; - + private Material m_oldMaterial; private ItemFrame m_frame; private MapView m_mapView; - private DrawMapCommand(Location location, BlockFace face, int offsetX, int offsetY, BufferedImage img, @@ -133,9 +150,9 @@ private DrawMapCommand(Location location, BlockFace face, m_mapHelper = mapHelper; m_rotation = face; } - + @Override - public void execute(BlockPlacer blockPlacer, BlockLoger loger) { + public void redo() { Chunk chunk = m_location.getChunk(); if (!chunk.isLoaded()) { if (!chunk.load()) { @@ -146,6 +163,7 @@ public void execute(BlockPlacer blockPlacer, BlockLoger loger) { World w = m_location.getWorld(); Block block = w.getBlockAt(m_location); Material material = block.getType(); + if (!isSolid(material)) { m_oldMaterial = material; block.setType(Material.BARRIER); @@ -153,14 +171,51 @@ public void execute(BlockPlacer blockPlacer, BlockLoger loger) { m_oldMaterial = null; } - m_frame = (ItemFrame) w.spawn(block.getRelative(m_rotation).getLocation(), ItemFrame.class); - m_frame.setFacingDirection(m_rotation, true); - m_frame.setRotation(Rotation.NONE); + Location ifLocation = block.getRelative(m_rotation).getLocation(); + ItemFrame tFrame = Stream.of(chunk.getEntities()) + .filter(e -> EntityType.ITEM_FRAME.equals(e.getType())) + .map(e -> new Object() { + final ItemFrame frame = (ItemFrame) e; + final BlockFace facing = ((ItemFrame) e).getFacing(); + final Location location = e.getLocation(); + }) + .filter(e -> m_rotation.equals(e.facing) + && ifLocation.getBlockX() == e.location.getBlockX() + && ifLocation.getBlockY() == e.location.getBlockY() + && ifLocation.getBlockZ() == e.location.getBlockZ()) + .map(e -> e.frame) + .findAny() + .orElse((ItemFrame) null); + + if (tFrame == null) { + tFrame = (ItemFrame) w.spawn(ifLocation, ItemFrame.class); + tFrame.setFacingDirection(m_rotation, true); + tFrame.setRotation(Rotation.NONE); + } + + m_frame = tFrame; + ItemStack frameContent = m_frame.getItem(); + MapView mapView = null; + + if (Material.FILLED_MAP.equals(frameContent.getType())) { + mapView = Bukkit.getMap((short) ((MapMeta) frameContent.getItemMeta()).getMapId()); + } else { + mapView = Bukkit.createMap(w); + frameContent = new ItemStack(Material.FILLED_MAP, 1); + MapMeta mm = ((MapMeta)frameContent.getItemMeta()); + mm .setMapId(mapView.getId()); + frameContent.setItemMeta(mm); + + m_frame.setItem(frameContent); + } - m_mapView = Bukkit.createMap(w); + m_mapView = mapView; m_mapHelper.storeMap(m_mapView, m_img); m_mapHelper.drawImage(m_mapView, m_img); - m_frame.setItem(new ItemStack(Material.MAP, 1, m_mapView.getId())); + } + + @Override + public void undo() { } @Override @@ -171,7 +226,7 @@ public Location getLocation() { private class CommandThread implements Runnable { - private final ICuboidSelection m_selection; + private final CuboidSelection m_selection; private final String m_url; private final Player m_player; private final MCPainterMain m_sender; @@ -181,7 +236,7 @@ private class CommandThread implements Runnable { private final BlockFace m_rotation; private CommandThread(HdImageCommand command, MCPainterMain sender, Player player, - String url, IWorldEdit worldEdit, ICuboidSelection selection) { + String url, IWorldEdit worldEdit, CuboidSelection selection) { m_this = command; m_sender = sender; m_player = player; @@ -219,17 +274,19 @@ public void run() { return; } - Location minPoint = m_selection.getMinimumPoint(); - Location maxPoint = m_selection.getMaximumPoint(); - int l = m_selection.getLength(); - int w = m_selection.getWidth(); - int h = m_selection.getHeight(); + Vector minPoint = m_selection.getMinimumPoint(); + Vector maxPoint = m_selection.getMaximumPoint(); + + int dx = (int) (maxPoint.getX() - minPoint.getX()); + int dz = (int) (maxPoint.getZ() - minPoint.getZ()); + int dy = (int) (maxPoint.getY() - minPoint.getY()); + int kx, kz; - if (w > 1 && l > 1) { + if (dx > 1 && dz > 1) { MCPainterMain.say(m_player, ChatColor.RED + "Invalid selection area."); return; - } else if (w > l) { + } else if (dx > dz) { kx = 1; kz = 0; } else { @@ -239,12 +296,12 @@ public void run() { int bHeight = imgH / 128 + (imgH % 128 != 0 ? 1 : 0); int bWidth = imgW / 128 + (imgW % 128 != 0 ? 1 : 0); - if (h < bHeight || (w < bWidth && l < bWidth)) { + if (dy < bHeight || (dx < bWidth && dz < bWidth)) { MCPainterMain.say(m_player, ChatColor.RED + "The selection is to smal, required: " + bWidth + "x" + bHeight); return; } - Location pos = new Location(minPoint.getWorld(), minPoint.getBlockX(), maxPoint.getBlockY(), minPoint.getBlockZ()); + Location pos = new Location(m_selection.getWorld(), minPoint.getBlockX(), maxPoint.getBlockY(), minPoint.getBlockZ()); if (m_rotation == BlockFace.NORTH || m_rotation == BlockFace.EAST) { pos = pos.add(kx * (bWidth - 1), 0, kz * (bWidth - 1)); @@ -257,7 +314,7 @@ public void run() { for (int py = 0; py < bHeight; py++) { Location tmp = pos.clone(); for (int px = 0; px < bWidth; px++) { - loger.logCommand(new DrawMapCommand(tmp.clone(), m_rotation, + loger.logChange(new DrawMapCommand(tmp.clone(), m_rotation, px * 128, py * 128, fImg, m_mapHelper)); tmp = tmp.add(kx, 0, kz); } diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/commands/ImageCommand.java b/MCPainter/src/main/java/org/primesoft/mcpainter/commands/ImageCommand.java index f1a9845..c4f526a 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/commands/ImageCommand.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/commands/ImageCommand.java @@ -27,7 +27,7 @@ import org.primesoft.mcpainter.utils.Orientation; import org.primesoft.mcpainter.utils.Utils; import java.awt.image.BufferedImage; -import org.primesoft.mcpainter.Configuration.ConfigProvider; +import org.primesoft.mcpainter.configuration.ConfigProvider; import org.primesoft.mcpainter.drawing.IColorMap; import org.primesoft.mcpainter.drawing.dilters.FilterManager; import org.primesoft.mcpainter.drawing.ImageHelper; diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/commands/MapCommand.java b/MCPainter/src/main/java/org/primesoft/mcpainter/commands/MapCommand.java index 3efe829..41c62b4 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/commands/MapCommand.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/commands/MapCommand.java @@ -24,7 +24,7 @@ package org.primesoft.mcpainter.commands; import java.awt.image.BufferedImage; -import org.primesoft.mcpainter.Configuration.ConfigProvider; +import org.primesoft.mcpainter.configuration.ConfigProvider; import org.primesoft.mcpainter.drawing.dilters.FilterManager; import org.primesoft.mcpainter.drawing.ImageHelper; import org.primesoft.mcpainter.FoundManager; @@ -37,6 +37,7 @@ import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.MapMeta; import org.bukkit.map.MapView; /** @@ -70,8 +71,8 @@ public void Execte(MCPainterMain sender, Player player, String[] args) { ItemStack inHand = player.getItemInHand(); - if (inHand != null && inHand.getType() == Material.MAP) { - mapId = inHand.getDurability(); + if (inHand != null && Material.FILLED_MAP.equals(inHand.getType())) { + mapId = (short) ((MapMeta)inHand.getItemMeta()).getMapId(); } } @@ -82,7 +83,13 @@ public void Execte(MCPainterMain sender, Player player, String[] args) { if (mapId == -1 && !reset) { mapView = Bukkit.createMap(player.getWorld()); mapId = mapView.getId(); - player.setItemInHand(new ItemStack(Material.MAP, 1, mapId)); + + ItemStack is = new ItemStack(Material.FILLED_MAP, 1); + MapMeta mm = (MapMeta) is.getItemMeta(); + mm.setMapId(mapId); + is.setItemMeta(mm); + + player.setItemInHand(is); } if (mapView == null) { try { diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/commands/MobCommand.java b/MCPainter/src/main/java/org/primesoft/mcpainter/commands/MobCommand.java index 52c43d3..65cf656 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/commands/MobCommand.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/commands/MobCommand.java @@ -26,7 +26,7 @@ import org.primesoft.mcpainter.blocksplacer.BlockLoger; import org.primesoft.mcpainter.utils.Orientation; import org.primesoft.mcpainter.utils.Utils; -import org.primesoft.mcpainter.Configuration.ConfigProvider; +import org.primesoft.mcpainter.configuration.ConfigProvider; import org.primesoft.mcpainter.drawing.IColorMap; import org.primesoft.mcpainter.drawing.RawImage; import org.primesoft.mcpainter.drawing.statue.BaseStatue; diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/commands/RenderCommand.java b/MCPainter/src/main/java/org/primesoft/mcpainter/commands/RenderCommand.java index 6db97df..900f5f3 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/commands/RenderCommand.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/commands/RenderCommand.java @@ -25,7 +25,7 @@ import java.io.File; import org.primesoft.mcpainter.blocksplacer.BlockLoger; -import org.primesoft.mcpainter.Configuration.ConfigProvider; +import org.primesoft.mcpainter.configuration.ConfigProvider; import org.primesoft.mcpainter.drawing.IColorMap; import org.primesoft.mcpainter.Help; import org.primesoft.mcpainter.MCPainterMain; @@ -81,7 +81,7 @@ public static void Execute(MCPainterMain sender, Player player, IWorldEdit world Vector size = parseSize(sizeArg); Vector[] clip = parseClip(clipArg); - Vector offset = parseOffset(offsetArg); + Vector offset = Vector.parse(offsetArg); if (size == null || clip == null || offset == null) { Help.ShowHelp(player, Commands.COMMAND_RENDER); return; @@ -152,25 +152,6 @@ private static Vector[] parseClip(String clipArg) { } } - private static Vector parseOffset(String offsetArg) { - if (offsetArg == null) { - return null; - } - - String[] parts = offsetArg.split(","); - if (parts.length != 3) { - return null; - } - - try { - return new Vector(Double.parseDouble(parts[0]), - Double.parseDouble(parts[1]), - Double.parseDouble(parts[2])); - } catch (NumberFormatException ex) { - return null; - } - } - private final Player m_player; private final double m_yaw; private final double m_pitch; diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/commands/StatueCommand.java b/MCPainter/src/main/java/org/primesoft/mcpainter/commands/StatueCommand.java index 671b1cf..9281b60 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/commands/StatueCommand.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/commands/StatueCommand.java @@ -27,7 +27,7 @@ import org.primesoft.mcpainter.utils.Orientation; import org.primesoft.mcpainter.utils.Utils; import java.awt.image.BufferedImage; -import org.primesoft.mcpainter.Configuration.ConfigProvider; +import org.primesoft.mcpainter.configuration.ConfigProvider; import org.primesoft.mcpainter.drawing.IColorMap; import org.primesoft.mcpainter.drawing.ImageHelper; import org.primesoft.mcpainter.drawing.RawImage; diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/configuration/BlockEntry.java b/MCPainter/src/main/java/org/primesoft/mcpainter/configuration/BlockEntry.java index b049100..5b35b71 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/configuration/BlockEntry.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/configuration/BlockEntry.java @@ -1,29 +1,38 @@ -package org.primesoft.mcpainter.Configuration; +package org.primesoft.mcpainter.configuration; import java.awt.Color; import java.util.ArrayList; import java.util.EnumSet; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.bukkit.Bukkit; import org.primesoft.mcpainter.texture.TextureDescription; import org.primesoft.mcpainter.utils.BaseBlock; import org.bukkit.Material; +import org.bukkit.Server; +import org.bukkit.block.data.BlockData; /** * @author SBPrime */ public class BlockEntry { + private static final Pattern PATTERN_ENTRY = Pattern.compile("^([^\\[;]+)"+ //Material + "(\\[([^\\]]+)\\])?;" + //Data + "([^;]+)"+ //Texture + "(;([0-9]+),([0-9]+))?" + //HSI + "(;([bsiBSI]+))?$"); //Block usage + /** * Block of air */ - public final static BlockEntry AIR = new BlockEntry(Material.AIR, 0, null, - EnumSet.of(OperationType.Block, OperationType.Image, OperationType.Statue)); + public final static BlockEntry AIR = new BlockEntry(); + public final static Color AIR_COLOR = new Color(0, 0, 0, 0); - + private final TextureDescription m_textureFile; private boolean m_isGrayscale; - private int[] m_grayscaleColor; + private int[] m_grayscaleColor; private final BaseBlock m_block; private final EnumSet m_type; @@ -43,19 +52,24 @@ public EnumSet getType() { return m_type; } - private BlockEntry(Material m, int data, TextureDescription textureFile, + private BlockEntry() { + this(Bukkit.getServer().createBlockData(Material.AIR), null, + EnumSet.of(OperationType.Block, OperationType.Image, OperationType.Statue), null); + } + + private BlockEntry(BlockData data, TextureDescription textureFile, EnumSet type) { - this(m, data, textureFile, type, null); + this(data, textureFile, type, null); } - private BlockEntry(Material m, int data, TextureDescription textureFile, + private BlockEntry(BlockData data, TextureDescription textureFile, EnumSet type, int[] color) { m_isGrayscale = true; m_grayscaleColor = color; m_textureFile = textureFile; m_type = type; - m_block = new BaseBlock(m, data); + m_block = new BaseBlock(data); } @Override @@ -68,49 +82,21 @@ public String toString() { return sb.toString(); } - - /** + + /** * Parse string to material * - * @param s strng + * @param name the material name * @return Material value */ - private static Material getMaterial(String s) { - Material material; - int matId; - try { - matId = Integer.parseInt(s); - } - catch (NumberFormatException e) { - matId = -1; - } - if (matId == -1) { - material = Material.getMaterial(s); - } else { - material = Material.getMaterial(matId); - } - return material; - } - - /** - * Parse string to int data - * - * @param s string - * @return int data - */ - private static int getData(String s) { - if (s != null) { - try { - return Integer.parseInt(s); - } - catch (NumberFormatException e) { - return 0; - } - } else { - return 0; + private static Material getMaterial(String name) { + if (name == null || name.isEmpty()) { + return null; } + + return Material.getMaterial(name.toUpperCase()); } - + /** * Parse block description * @@ -118,10 +104,7 @@ private static int getData(String s) { * @return Block entry */ public static BlockEntry parse(String s) { - final Pattern pattern = Pattern.compile("^([^:-]+)(\\:([^-]+))?-" - + "([^-]+)(-([0-9]+),([0-9]+))?(-([bsiBSI]+))?$"); - - Matcher m = pattern.matcher(s); + Matcher m = PATTERN_ENTRY.matcher(s); if (!m.matches()) { throw new NullPointerException("Invalid material entry " + s); } @@ -138,32 +121,35 @@ public static BlockEntry parse(String s) { throw new NullPointerException("Invalid material entry " + s); } - Material material = getMaterial(sMaterial); - - if (material == null) { - throw new NullPointerException("Invalid material " + sMaterial); + Server server = Bukkit.getServer(); + BlockData blockData; + try { + if (sData != null && !sData.isEmpty()) { + blockData = server.createBlockData(sMaterial + "[" + sData + "]"); + } else { + Material material = getMaterial(sMaterial); + blockData = material != null ? server.createBlockData(material) : server.createBlockData(sMaterial); + } + } catch (Exception ex) { + throw new IllegalArgumentException(String.format("Invalid block data %1$s[%2$s]", sMaterial, sData), ex); } - int data = getData(sData); - EnumSet type = null; int[] gray = null; - if (sS != null && sH != null) { try { gray = new int[]{ Integer.parseInt(sH), Integer.parseInt(sS) }; - } - catch (NumberFormatException ex) { + } catch (NumberFormatException ex) { gray = null; } } if (sBlocks != null) { sBlocks = sBlocks.toLowerCase(); - ArrayList blocks = new ArrayList(); + ArrayList blocks = new ArrayList<>(); if (sBlocks.contains("b")) { blocks.add(OperationType.Block); } @@ -181,9 +167,9 @@ public static BlockEntry parse(String s) { type = EnumSet.allOf(OperationType.class); } if (gray != null) { - return new BlockEntry(material, data, tex, type, gray); + return new BlockEntry(blockData, tex, type, gray); } else { - return new BlockEntry(material, data, tex, type); + return new BlockEntry(blockData, tex, type); } } -} \ No newline at end of file +} diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/configuration/ConfigProvider.java b/MCPainter/src/main/java/org/primesoft/mcpainter/configuration/ConfigProvider.java index 33a59e6..232d56b 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/configuration/ConfigProvider.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/configuration/ConfigProvider.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.primesoft.mcpainter.Configuration; +package org.primesoft.mcpainter.configuration; import java.io.File; import java.util.ArrayList; diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/configuration/OperationType.java b/MCPainter/src/main/java/org/primesoft/mcpainter/configuration/OperationType.java index a7f90b8..5360242 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/configuration/OperationType.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/configuration/OperationType.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.primesoft.mcpainter.Configuration; +package org.primesoft.mcpainter.configuration; /** *This enum is used to define block entry usage diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/configuration/SizeNode.java b/MCPainter/src/main/java/org/primesoft/mcpainter/configuration/SizeNode.java index 9c8c402..457c098 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/configuration/SizeNode.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/configuration/SizeNode.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.primesoft.mcpainter.Configuration; +package org.primesoft.mcpainter.configuration; /** * diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/ColorMap.java b/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/ColorMap.java index eedd99f..a0d99bb 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/ColorMap.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/ColorMap.java @@ -3,8 +3,8 @@ import java.awt.Color; import java.util.ArrayList; import java.util.List; -import org.primesoft.mcpainter.Configuration.BlockEntry; -import org.primesoft.mcpainter.Configuration.OperationType; +import org.primesoft.mcpainter.configuration.BlockEntry; +import org.primesoft.mcpainter.configuration.OperationType; import org.primesoft.mcpainter.drawing.dilters.ColorPalette; import org.primesoft.mcpainter.drawing.dilters.IColorPalette; import org.primesoft.mcpainter.MCPainterMain; diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/DrawingBlock.java b/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/DrawingBlock.java index 6ce5204..c6c6119 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/DrawingBlock.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/DrawingBlock.java @@ -25,8 +25,8 @@ import java.awt.Color; import java.util.EnumSet; -import org.primesoft.mcpainter.Configuration.BlockEntry; -import org.primesoft.mcpainter.Configuration.OperationType; +import org.primesoft.mcpainter.configuration.BlockEntry; +import org.primesoft.mcpainter.configuration.OperationType; import org.primesoft.mcpainter.blocksplacer.BlockLoger; import org.primesoft.mcpainter.utils.BaseBlock; import org.primesoft.mcpainter.utils.Vector; diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/IColorMap.java b/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/IColorMap.java index e71b823..00731a3 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/IColorMap.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/IColorMap.java @@ -24,7 +24,7 @@ package org.primesoft.mcpainter.drawing; import java.awt.Color; -import org.primesoft.mcpainter.Configuration.OperationType; +import org.primesoft.mcpainter.configuration.OperationType; import org.primesoft.mcpainter.drawing.dilters.IColorPalette; /** diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/IDrawingBlock.java b/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/IDrawingBlock.java index 1370685..c18514a 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/IDrawingBlock.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/IDrawingBlock.java @@ -24,7 +24,7 @@ package org.primesoft.mcpainter.drawing; import java.util.EnumSet; -import org.primesoft.mcpainter.Configuration.OperationType; +import org.primesoft.mcpainter.configuration.OperationType; import org.primesoft.mcpainter.blocksplacer.BlockLoger; import org.primesoft.mcpainter.utils.Vector; diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/ImageHelper.java b/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/ImageHelper.java index ae134c8..0c6edda 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/ImageHelper.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/ImageHelper.java @@ -34,8 +34,8 @@ import java.net.URL; import javax.imageio.ImageIO; import org.primesoft.mcpainter.blocksplacer.BlockLoger; -import org.primesoft.mcpainter.Configuration.ConfigProvider; -import org.primesoft.mcpainter.Configuration.OperationType; +import org.primesoft.mcpainter.configuration.ConfigProvider; +import org.primesoft.mcpainter.configuration.OperationType; import org.primesoft.mcpainter.utils.Orientation; import org.primesoft.mcpainter.MCPainterMain; import org.primesoft.mcpainter.utils.ExceptionHelper; diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/blocks/BaseBlock.java b/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/blocks/BaseBlock.java index 149efd8..c363c71 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/blocks/BaseBlock.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/blocks/BaseBlock.java @@ -25,8 +25,8 @@ import java.util.List; import org.primesoft.mcpainter.blocksplacer.BlockLoger; -import org.primesoft.mcpainter.Configuration.ConfigProvider; -import org.primesoft.mcpainter.Configuration.OperationType; +import org.primesoft.mcpainter.configuration.ConfigProvider; +import org.primesoft.mcpainter.configuration.OperationType; import org.primesoft.mcpainter.drawing.Face; import org.primesoft.mcpainter.drawing.IColorMap; import org.primesoft.mcpainter.drawing.ImageHelper; diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/blocks/BlockHelper.java b/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/blocks/BlockHelper.java index 8958e5d..143d484 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/blocks/BlockHelper.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/blocks/BlockHelper.java @@ -28,7 +28,7 @@ import java.util.Iterator; import java.util.List; import java.util.Set; -import org.primesoft.mcpainter.Configuration.ConfigProvider; +import org.primesoft.mcpainter.configuration.ConfigProvider; import org.primesoft.mcpainter.drawing.RawImage; import org.primesoft.mcpainter.drawing.statue.StatueBlock; import org.primesoft.mcpainter.drawing.statue.StatueFace; @@ -76,17 +76,20 @@ public static RawImage[] parseTextures(TextureManager textureManager, List it = textureList.iterator(); it.hasNext();) { - String data = it.next(); + String data = it.next(); TextureDescription td = TextureDescription.parse(data); - if (td != null) { - textures[idx] = textureManager.get(td); - } else { - textures[idx] = null; + if (td == null) { + continue; + } + + textures[idx] = textureManager.get(td); + if (textures[idx] == null) { + throw new IllegalArgumentException("Unable to get texture " + td.toString()); + //textures[idx] = null; } idx++; } - int texturesCnt = textures.length; RawImage[] result = new RawImage[texturesCnt]; @@ -111,7 +114,7 @@ public static RawImage[] parseTextures(TextureManager textureManager, List m_blockFaces; + private final Map m_blockFaces; @Override public int getBlocksCount() { @@ -51,12 +51,12 @@ public VanillaBlockProvider(TextureManager textureManager) { } m_tex = textureManager.getVanilla(); - m_blockFaces = new HashMap(); - m_blockFaces.put(0x1d, new Piston(m_tex, true)); //1d - Sticky piston - m_blockFaces.put(0x21, new Piston(m_tex, false)); //21 - Piston - m_blockFaces.put(0x22, new PistonExtension(m_tex)); //22 - Piston extended - m_blockFaces.put(0x63, new Shroom(m_tex, 3)); //63 - Huge brow mushroom - m_blockFaces.put(0x64, new Shroom(m_tex, 2)); //64 - Huge red mushroom + m_blockFaces = new HashMap<>(); + m_blockFaces.put(Material.STICKY_PISTON, new Piston(m_tex, true)); //1d - Sticky piston + m_blockFaces.put(Material.PISTON, new Piston(m_tex, false)); //21 - Piston + m_blockFaces.put(Material.PISTON_HEAD, new PistonExtension(m_tex)); //22 - Piston extended + m_blockFaces.put(Material.BROWN_MUSHROOM_BLOCK, new Shroom(m_tex, 3)); //63 - Huge brow mushroom + m_blockFaces.put(Material.RED_MUSHROOM_BLOCK, new Shroom(m_tex, 2)); //64 - Huge red mushroom } @Override @@ -67,16 +67,6 @@ public IDrawableElement getBlock(String name) { } int materialId = blockMaterial.getId(); - return getBlock(materialId); - } - - @Override - public IDrawableElement getBlock(int materialId) { - if (m_blockFaces.containsKey(materialId)) - { - return m_blockFaces.get(materialId); - } - - return null; + return m_blockFaces.get(blockMaterial); } } diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/filters/FilterManager.java b/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/filters/FilterManager.java index afd8b54..51e13f9 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/filters/FilterManager.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/filters/FilterManager.java @@ -28,8 +28,8 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import org.primesoft.mcpainter.Configuration.ConfigProvider; -import org.primesoft.mcpainter.Configuration.OperationType; +import org.primesoft.mcpainter.configuration.ConfigProvider; +import org.primesoft.mcpainter.configuration.OperationType; import org.primesoft.mcpainter.drawing.IColorMap; import org.primesoft.mcpainter.MCPainterMain; import org.bukkit.ChatColor; diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/statue/BaseStatue.java b/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/statue/BaseStatue.java index a35b3e6..b64ca0a 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/statue/BaseStatue.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/drawing/statue/BaseStatue.java @@ -24,7 +24,7 @@ package org.primesoft.mcpainter.drawing.statue; import org.primesoft.mcpainter.blocksplacer.BlockLoger; -import org.primesoft.mcpainter.Configuration.OperationType; +import org.primesoft.mcpainter.configuration.OperationType; import org.primesoft.mcpainter.drawing.Face; import org.primesoft.mcpainter.drawing.IColorMap; import org.primesoft.mcpainter.drawing.ImageHelper; diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/mapdrawer/MapHelper.java b/MCPainter/src/main/java/org/primesoft/mcpainter/mapdrawer/MapHelper.java index 6de0ebf..4787d90 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/mapdrawer/MapHelper.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/mapdrawer/MapHelper.java @@ -30,7 +30,7 @@ import java.util.HashMap; import java.util.List; import javax.imageio.ImageIO; -import org.primesoft.mcpainter.Configuration.ConfigProvider; +import org.primesoft.mcpainter.configuration.ConfigProvider; import org.primesoft.mcpainter.MCPainterMain; import org.primesoft.mcpainter.utils.ExceptionHelper; import org.bukkit.Bukkit; diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/mcstats/Metrics.java b/MCPainter/src/main/java/org/primesoft/mcpainter/mcstats/Metrics.java deleted file mode 100644 index 7e9feec..0000000 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/mcstats/Metrics.java +++ /dev/null @@ -1,625 +0,0 @@ -/* - * Copyright 2011 Tyler Blair. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are - * permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those of the - * authors and contributors and should not be interpreted as representing official policies, - * either expressed or implied, of anybody else. - */ -package org.primesoft.mcpainter.drawing; - -import org.bukkit.Bukkit; -import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.configuration.InvalidConfigurationException; -import org.bukkit.plugin.Plugin; -import org.bukkit.plugin.PluginDescriptionFile; - -import java.io.BufferedReader; -import java.io.File; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; -import java.io.UnsupportedEncodingException; -import java.net.Proxy; -import java.net.URL; -import java.net.URLConnection; -import java.net.URLEncoder; -import java.util.Collections; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedHashSet; -import java.util.Set; -import java.util.UUID; -import java.util.logging.Level; - -/** - *

The metrics class obtains data about a plugin and submits statistics - * about it to the metrics backend.

Public methods provided by this - * class:

- * - * Graph createGraph(String name);
- * void addCustomData(Metrics.Plotter plotter);
- * void start();
- *
- */ -public class Metrics { - - /** - * The current revision number - */ - private final static int REVISION = 5; - /** - * The base url of the metrics domain - */ - private static final String BASE_URL = "http://mcstats.org"; - /** - * The url used to report a server's status - */ - private static final String REPORT_URL = "/report/%s"; - /** - * The separator to use for custom data. This MUST NOT change unless you are - * hosting your own version of metrics and want to change it. - */ - private static final String CUSTOM_DATA_SEPARATOR = "~~"; - /** - * Interval of time to ping (in minutes) - */ - private static final int PING_INTERVAL = 10; - /** - * The plugin this metrics submits for - */ - private final Plugin plugin; - /** - * All of the custom graphs to submit to metrics - */ - private final Set graphs = Collections.synchronizedSet(new HashSet()); - /** - * The default graph, used for addCustomData when you don't want a specific - * graph - */ - private final Graph defaultGraph = new Graph("Default"); - /** - * The plugin configuration file - */ - private final YamlConfiguration configuration; - /** - * The plugin configuration file - */ - private final File configurationFile; - /** - * Unique server id - */ - private final String guid; - /** - * Lock for synchronization - */ - private final Object optOutLock = new Object(); - /** - * Id of the scheduled task - */ - private volatile int taskId = -1; - - public Metrics(final Plugin plugin) throws IOException { - if (plugin == null) { - throw new IllegalArgumentException("Plugin cannot be null"); - } - - this.plugin = plugin; - - // load the config - configurationFile = getConfigFile(); - configuration = YamlConfiguration.loadConfiguration(configurationFile); - - // add some defaults - configuration.addDefault("opt-out", false); - configuration.addDefault("guid", UUID.randomUUID().toString()); - - // Do we need to create the file? - if (configuration.get("guid", null) == null) { - configuration.options().header("http://mcstats.org").copyDefaults(true); - configuration.save(configurationFile); - } - - // Load the guid then - guid = configuration.getString("guid"); - } - - /** - * Construct and create a Graph that can be used to separate specific - * plotters to their own graphs on the metrics website. Plotters can be - * added to the graph object returned. - * - * @param name The name of the graph - * @return Graph object created. Will never return NULL under normal - * circumstances unless bad parameters are given - */ - public Graph createGraph(final String name) { - if (name == null) { - throw new IllegalArgumentException("Graph name cannot be null"); - } - - // Construct the graph object - final Graph graph = new Graph(name); - - // Now we can add our graph - graphs.add(graph); - - // and return back - return graph; - } - - /** - * Add a Graph object to Metrics that represents data for the plugin that - * should be sent to the backend - * - * @param graph The name of the graph - */ - public void addGraph(final Graph graph) { - if (graph == null) { - throw new IllegalArgumentException("Graph cannot be null"); - } - - graphs.add(graph); - } - - /** - * Adds a custom data plotter to the default graph - * - * @param plotter The plotter to use to plot custom data - */ - public void addCustomData(final Plotter plotter) { - if (plotter == null) { - throw new IllegalArgumentException("Plotter cannot be null"); - } - - // Add the plotter to the graph o/ - defaultGraph.addPlotter(plotter); - - // Ensure the default graph is included in the submitted graphs - graphs.add(defaultGraph); - } - - /** - * Start measuring statistics. This will immediately create an async - * repeating task as the plugin and send the initial data to the metrics - * backend, and then after that it will post in increments of PING_INTERVAL - * * 1200 ticks. - * - * @return True if statistics measuring is running, otherwise false. - */ - public boolean start() { - synchronized (optOutLock) { - // Did we opt out? - if (isOptOut()) { - return false; - } - - // Is metrics already running? - if (taskId >= 0) { - return true; - } - - // Begin hitting the server with glorious data - taskId = plugin.getServer().getScheduler().scheduleAsyncRepeatingTask(plugin, new Runnable() { - - private boolean firstPost = true; - - public void run() { - try { - // This has to be synchronized or it can collide with the disable method. - synchronized (optOutLock) { - // Disable Task, if it is running and the server owner decided to opt-out - if (isOptOut() && taskId > 0) { - plugin.getServer().getScheduler().cancelTask(taskId); - taskId = -1; - // Tell all plotters to stop gathering information. - for (Graph graph : graphs) { - graph.onOptOut(); - } - } - } - - // We use the inverse of firstPost because if it is the first time we are posting, - // it is not a interval ping, so it evaluates to FALSE - // Each time thereafter it will evaluate to TRUE, i.e PING! - postPlugin(!firstPost); - - // After the first post we set firstPost to false - // Each post thereafter will be a ping - firstPost = false; - } catch (IOException e) { - Bukkit.getLogger().log(Level.INFO, "[Metrics] " + e.getMessage()); - } - } - }, 0, PING_INTERVAL * 1200); - - return true; - } - } - - /** - * Has the server owner denied plugin metrics? - * - * @return true if metrics should be opted out of it - */ - public boolean isOptOut() { - synchronized (optOutLock) { - try { - // Reload the metrics file - configuration.load(getConfigFile()); - } catch (IOException ex) { - Bukkit.getLogger().log(Level.INFO, "[Metrics] " + ex.getMessage()); - return true; - } catch (InvalidConfigurationException ex) { - Bukkit.getLogger().log(Level.INFO, "[Metrics] " + ex.getMessage()); - return true; - } - return configuration.getBoolean("opt-out", false); - } - } - - /** - * Enables metrics for the server by setting "opt-out" to false in the - * config file and starting the metrics task. - * - * @throws IOException - */ - public void enable() throws IOException { - // This has to be synchronized or it can collide with the check in the task. - synchronized (optOutLock) { - // Check if the server owner has already set opt-out, if not, set it. - if (isOptOut()) { - configuration.set("opt-out", false); - configuration.save(configurationFile); - } - - // Enable Task, if it is not running - if (taskId < 0) { - start(); - } - } - } - - /** - * Disables metrics for the server by setting "opt-out" to true in the - * config file and canceling the metrics task. - * - * @throws IOException - */ - public void disable() throws IOException { - // This has to be synchronized or it can collide with the check in the task. - synchronized (optOutLock) { - // Check if the server owner has already set opt-out, if not, set it. - if (!isOptOut()) { - configuration.set("opt-out", true); - configuration.save(configurationFile); - } - - // Disable Task, if it is running - if (taskId > 0) { - this.plugin.getServer().getScheduler().cancelTask(taskId); - taskId = -1; - } - } - } - - /** - * Gets the File object of the config file that should be used to store data - * such as the GUID and opt-out status - * - * @return the File object for the config file - */ - public File getConfigFile() { - // I believe the easiest way to get the base folder (e.g craftbukkit set via -P) for plugins to use - // is to abuse the plugin object we already have - // plugin.getDataFolder() => base/plugins/PluginA/ - // pluginsFolder => base/plugins/ - // The base is not necessarily relative to the startup directory. - File pluginsFolder = plugin.getDataFolder().getParentFile(); - - // return => base/plugins/PluginMetrics/config.yml - return new File(new File(pluginsFolder, "PluginMetrics"), "config.yml"); - } - - /** - * Generic method that posts a plugin to the metrics website - */ - private void postPlugin(final boolean isPing) throws IOException { - // The plugin's description file containg all of the plugin data such as name, version, author, etc - final PluginDescriptionFile description = plugin.getDescription(); - - // Construct the post data - final StringBuilder data = new StringBuilder(); - data.append(encode("guid")).append('=').append(encode(guid)); - encodeDataPair(data, "version", description.getVersion()); - encodeDataPair(data, "server", Bukkit.getVersion()); - encodeDataPair(data, "players", Integer.toString(Bukkit.getServer().getOnlinePlayers().size())); - encodeDataPair(data, "revision", String.valueOf(REVISION)); - - // If we're pinging, append it - if (isPing) { - encodeDataPair(data, "ping", "true"); - } - - // Acquire a lock on the graphs, which lets us make the assumption we also lock everything - // inside of the graph (e.g plotters) - synchronized (graphs) { - final Iterator iter = graphs.iterator(); - - while (iter.hasNext()) { - final Graph graph = iter.next(); - - for (Plotter plotter : graph.getPlotters()) { - // The key name to send to the metrics server - // The format is C-GRAPHNAME-PLOTTERNAME where separator - is defined at the top - // Legacy (R4) submitters use the format Custom%s, or CustomPLOTTERNAME - final String key = String.format("C%s%s%s%s", CUSTOM_DATA_SEPARATOR, graph.getName(), CUSTOM_DATA_SEPARATOR, plotter.getColumnName()); - - // The value to send, which for the foreseeable future is just the string - // value of plotter.getValue() - final String value = Integer.toString(plotter.getValue()); - - // Add it to the http post data :) - encodeDataPair(data, key, value); - } - } - } - - // Create the url - URL url = new URL(BASE_URL + String.format(REPORT_URL, encode(plugin.getDescription().getName()))); - - // Connect to the website - URLConnection connection; - - // Mineshafter creates a socks proxy, so we can safely bypass it - // It does not reroute POST requests so we need to go around it - if (isMineshafterPresent()) { - connection = url.openConnection(Proxy.NO_PROXY); - } else { - connection = url.openConnection(); - } - - connection.setDoOutput(true); - - // Write the data - final OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream()); - writer.write(data.toString()); - writer.flush(); - - // Now read the response - final BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); - final String response = reader.readLine(); - - // close resources - writer.close(); - reader.close(); - - if (response == null || response.startsWith("ERR")) { - throw new IOException(response); //Throw the exception - } else { - // Is this the first update this hour? - if (response.contains("OK This is your first update this hour")) { - synchronized (graphs) { - final Iterator iter = graphs.iterator(); - - while (iter.hasNext()) { - final Graph graph = iter.next(); - - for (Plotter plotter : graph.getPlotters()) { - plotter.reset(); - } - } - } - } - } - } - - /** - * Check if mineshafter is present. If it is, we need to bypass it to send - * POST requests - * - * @return true if mineshafter is installed on the server - */ - private boolean isMineshafterPresent() { - try { - Class.forName("mineshafter.MineServer"); - return true; - } catch (Exception e) { - return false; - } - } - - /** - *

Encode a key/value data pair to be used in a HTTP post request. This - * INCLUDES a & so the first key/value pair MUST be included manually, - * e.g:

- * - * StringBuffer data = new StringBuffer(); - * data.append(encode("guid")).append('=').append(encode(guid)); - * encodeDataPair(data, "version", description.getVersion()); - * - * - * @param buffer the stringbuilder to append the data pair onto - * @param key the key value - * @param value the value - */ - private static void encodeDataPair(final StringBuilder buffer, final String key, final String value) throws UnsupportedEncodingException { - buffer.append('&').append(encode(key)).append('=').append(encode(value)); - } - - /** - * Encode text as UTF-8 - * - * @param text the text to encode - * @return the encoded text, as UTF-8 - */ - private static String encode(final String text) throws UnsupportedEncodingException { - return URLEncoder.encode(text, "UTF-8"); - } - - /** - * Represents a custom graph on the website - */ - public static class Graph { - - /** - * The graph's name, alphanumeric and spaces only :) If it does not - * comply to the above when submitted, it is rejected - */ - private final String name; - /** - * The set of plotters that are contained within this graph - */ - private final Set plotters = new LinkedHashSet(); - - private Graph(final String name) { - this.name = name; - } - - /** - * Gets the graph's name - * - * @return the Graph's name - */ - public String getName() { - return name; - } - - /** - * Add a plotter to the graph, which will be used to plot entries - * - * @param plotter the plotter to add to the graph - */ - public void addPlotter(final Plotter plotter) { - plotters.add(plotter); - } - - /** - * Remove a plotter from the graph - * - * @param plotter the plotter to remove from the graph - */ - public void removePlotter(final Plotter plotter) { - plotters.remove(plotter); - } - - /** - * Gets an unmodifiable set of the plotter objects in the graph - * - * @return an unmodifiable {@link Set} of the plotter objects - */ - public Set getPlotters() { - return Collections.unmodifiableSet(plotters); - } - - @Override - public int hashCode() { - return name.hashCode(); - } - - @Override - public boolean equals(final Object object) { - if (!(object instanceof Graph)) { - return false; - } - - final Graph graph = (Graph) object; - return graph.name.equals(name); - } - - /** - * Called when the server owner decides to opt-out of Metrics while the - * server is running. - */ - protected void onOptOut() { - } - } - - /** - * Interface used to collect custom data for a plugin - */ - public static abstract class Plotter { - - /** - * The plot's name - */ - private final String name; - - /** - * Construct a plotter with the default plot name - */ - public Plotter() { - this("Default"); - } - - /** - * Construct a plotter with a specific plot name - * - * @param name the name of the plotter to use, which will show up on the - * website - */ - public Plotter(final String name) { - this.name = name; - } - - /** - * Get the current value for the plotted point. Since this function - * defers to an external function it may or may not return immediately - * thus cannot be guaranteed to be thread friendly or safe. This - * function can be called from any thread so care should be taken when - * accessing resources that need to be synchronized. - * - * @return the current value for the point to be plotted. - */ - public abstract int getValue(); - - /** - * Get the column name for the plotted point - * - * @return the plotted point's column name - */ - public String getColumnName() { - return name; - } - - /** - * Called after the website graphs have been updated - */ - public void reset() { - } - - @Override - public int hashCode() { - return getColumnName().hashCode(); - } - - @Override - public boolean equals(final Object object) { - if (!(object instanceof Plotter)) { - return false; - } - - final Plotter plotter = (Plotter) object; - return plotter.name.equals(name) && plotter.getValue() == getValue(); - } - } -} \ No newline at end of file diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/mcstats/MetricsLite.java b/MCPainter/src/main/java/org/primesoft/mcpainter/mcstats/MetricsLite.java index dc8ca5e..d5b400f 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/mcstats/MetricsLite.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/mcstats/MetricsLite.java @@ -1,15 +1,15 @@ /* - * Copyright 2011 Tyler Blair. All rights reserved. + * Copyright 2011-2013 Tyler Blair. All rights reserved. * - * Redistribution and use in source and binary forms, with or without modification, are + * Redistribution in source, use in source and binary forms, with or without modification, are * permitted provided that the following conditions are met: * - * 1. Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. * - * 2. Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND @@ -25,69 +25,91 @@ * authors and contributors and should not be interpreted as representing official policies, * either expressed or implied, of anybody else. */ -package org.primesoft.mcpainter.drawing; +package org.primesoft.mcpainter.mcstats; import org.bukkit.Bukkit; +import org.bukkit.Server; import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginDescriptionFile; +import org.bukkit.scheduler.BukkitTask; import java.io.BufferedReader; +import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; -import java.io.OutputStreamWriter; +import java.io.OutputStream; import java.io.UnsupportedEncodingException; +import java.lang.reflect.Method; +import java.net.MalformedURLException; import java.net.Proxy; import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; +import java.util.Collection; import java.util.UUID; import java.util.logging.Level; +import java.util.zip.GZIPOutputStream; public class MetricsLite { /** * The current revision number */ - private final static int REVISION = 5; + private final static int REVISION = 7; + /** * The base url of the metrics domain */ - private static final String BASE_URL = "http://mcstats.org"; + private static final String BASE_URL = "http://report.mcstats.org"; + /** * The url used to report a server's status */ - private static final String REPORT_URL = "/report/%s"; + private static final String REPORT_URL = "/plugin/%s"; + /** * Interval of time to ping (in minutes) */ - private final static int PING_INTERVAL = 10; + private final static int PING_INTERVAL = 15; + /** * The plugin this metrics submits for */ private final Plugin plugin; + /** * The plugin configuration file */ private final YamlConfiguration configuration; + /** * The plugin configuration file */ private final File configurationFile; + /** * Unique server id */ private final String guid; + + /** + * Debug mode + */ + private final boolean debug; + /** * Lock for synchronization */ private final Object optOutLock = new Object(); + /** * Id of the scheduled task */ - private volatile int taskId = -1; + private volatile BukkitTask task = null; public MetricsLite(Plugin plugin) throws IOException { if (plugin == null) { @@ -103,6 +125,7 @@ public MetricsLite(Plugin plugin) throws IOException { // add some defaults configuration.addDefault("opt-out", false); configuration.addDefault("guid", UUID.randomUUID().toString()); + configuration.addDefault("debug", false); // Do we need to create the file? if (configuration.get("guid", null) == null) { @@ -112,6 +135,7 @@ public MetricsLite(Plugin plugin) throws IOException { // Load the guid then guid = configuration.getString("guid"); + debug = configuration.getBoolean("debug", false); } /** @@ -119,7 +143,7 @@ public MetricsLite(Plugin plugin) throws IOException { * repeating task as the plugin and send the initial data to the metrics * backend, and then after that it will post in increments of PING_INTERVAL * * 1200 ticks. - * + * * @return True if statistics measuring is running, otherwise false. */ public boolean start() { @@ -130,12 +154,12 @@ public boolean start() { } // Is metrics already running? - if (taskId >= 0) { + if (task != null) { return true; } // Begin hitting the server with glorious data - taskId = plugin.getServer().getScheduler().scheduleAsyncRepeatingTask(plugin, new Runnable() { + task = plugin.getServer().getScheduler().runTaskTimerAsynchronously(plugin, new Runnable() { private boolean firstPost = true; @@ -144,9 +168,9 @@ public void run() { // This has to be synchronized or it can collide with the disable method. synchronized (optOutLock) { // Disable Task, if it is running and the server owner decided to opt-out - if (isOptOut() && taskId > 0) { - plugin.getServer().getScheduler().cancelTask(taskId); - taskId = -1; + if (isOptOut() && task != null) { + task.cancel(); + task = null; } } @@ -159,7 +183,9 @@ public void run() { // Each post thereafter will be a ping firstPost = false; } catch (IOException e) { - Bukkit.getLogger().log(Level.INFO, "[Metrics] " + e.getMessage()); + if (debug) { + Bukkit.getLogger().log(Level.INFO, "[Metrics] " + e.getMessage()); + } } } }, 0, PING_INTERVAL * 1200); @@ -170,7 +196,7 @@ public void run() { /** * Has the server owner denied plugin metrics? - * + * * @return true if metrics should be opted out of it */ public boolean isOptOut() { @@ -179,10 +205,14 @@ public boolean isOptOut() { // Reload the metrics file configuration.load(getConfigFile()); } catch (IOException ex) { - Bukkit.getLogger().log(Level.INFO, "[Metrics] " + ex.getMessage()); + if (debug) { + Bukkit.getLogger().log(Level.INFO, "[Metrics] " + ex.getMessage()); + } return true; } catch (InvalidConfigurationException ex) { - Bukkit.getLogger().log(Level.INFO, "[Metrics] " + ex.getMessage()); + if (debug) { + Bukkit.getLogger().log(Level.INFO, "[Metrics] " + ex.getMessage()); + } return true; } return configuration.getBoolean("opt-out", false); @@ -192,8 +222,8 @@ public boolean isOptOut() { /** * Enables metrics for the server by setting "opt-out" to false in the * config file and starting the metrics task. - * - * @throws IOException + * + * @throws java.io.IOException */ public void enable() throws IOException { // This has to be synchronized or it can collide with the check in the task. @@ -205,7 +235,7 @@ public void enable() throws IOException { } // Enable Task, if it is not running - if (taskId < 0) { + if (task == null) { start(); } } @@ -214,8 +244,8 @@ public void enable() throws IOException { /** * Disables metrics for the server by setting "opt-out" to true in the * config file and canceling the metrics task. - * - * @throws IOException + * + * @throws java.io.IOException */ public void disable() throws IOException { // This has to be synchronized or it can collide with the check in the task. @@ -227,9 +257,9 @@ public void disable() throws IOException { } // Disable Task, if it is running - if (taskId > 0) { - this.plugin.getServer().getScheduler().cancelTask(taskId); - taskId = -1; + if (task != null) { + task.cancel(); + task = null; } } } @@ -237,7 +267,7 @@ public void disable() throws IOException { /** * Gets the File object of the config file that should be used to store data * such as the GUID and opt-out status - * + * * @return the File object for the config file */ public File getConfigFile() { @@ -252,28 +282,84 @@ public File getConfigFile() { return new File(new File(pluginsFolder, "PluginMetrics"), "config.yml"); } + /** + * Gets the online player (backwards compatibility) + * + * @return online player amount + */ + private int getOnlinePlayers() { + try { + Method onlinePlayerMethod = Server.class.getMethod("getOnlinePlayers"); + if (onlinePlayerMethod.getReturnType().equals(Collection.class)) { + return ((Collection) onlinePlayerMethod.invoke(Bukkit.getServer())).size(); + } else { + return ((Player[]) onlinePlayerMethod.invoke(Bukkit.getServer())).length; + } + } catch (Exception ex) { + if (debug) { + Bukkit.getLogger().log(Level.INFO, "[Metrics] " + ex.getMessage()); + } + } + + return 0; + } + /** * Generic method that posts a plugin to the metrics website */ private void postPlugin(boolean isPing) throws IOException { + // Server software specific section + PluginDescriptionFile description = plugin.getDescription(); + String pluginName = description.getName(); + boolean onlineMode = Bukkit.getServer().getOnlineMode(); // TRUE if online mode is enabled + String pluginVersion = description.getVersion(); + String serverVersion = Bukkit.getVersion(); + int playersOnline = this.getOnlinePlayers(); + + // END server software specific section -- all code below does not use any code outside of this class / Java + // Construct the post data + StringBuilder json = new StringBuilder(1024); + json.append('{'); + // The plugin's description file containg all of the plugin data such as name, version, author, etc - final PluginDescriptionFile description = plugin.getDescription(); + appendJSONPair(json, "guid", guid); + appendJSONPair(json, "plugin_version", pluginVersion); + appendJSONPair(json, "server_version", serverVersion); + appendJSONPair(json, "players_online", Integer.toString(playersOnline)); + + // New data as of R6 + String osname = System.getProperty("os.name"); + String osarch = System.getProperty("os.arch"); + String osversion = System.getProperty("os.version"); + String java_version = System.getProperty("java.version"); + int coreCount = Runtime.getRuntime().availableProcessors(); + + // normalize os arch .. amd64 -> x86_64 + if (osarch.equals("amd64")) { + osarch = "x86_64"; + } - // Construct the post data - final StringBuilder data = new StringBuilder(); - data.append(encode("guid")).append('=').append(encode(guid)); - encodeDataPair(data, "version", description.getVersion()); - encodeDataPair(data, "server", Bukkit.getVersion()); - encodeDataPair(data, "players", Integer.toString(Bukkit.getServer().getOnlinePlayers().size())); - encodeDataPair(data, "revision", String.valueOf(REVISION)); + appendJSONPair(json, "osname", osname); + appendJSONPair(json, "osarch", osarch); + appendJSONPair(json, "osversion", osversion); + appendJSONPair(json, "cores", Integer.toString(coreCount)); + appendJSONPair(json, "auth_mode", onlineMode ? "1" : "0"); + appendJSONPair(json, "java_version", java_version); // If we're pinging, append it if (isPing) { - encodeDataPair(data, "ping", "true"); + appendJSONPair(json, "ping", "1"); } + // close json + json.append('}'); + + sendMetrics(pluginName, json); + } + + private void sendMetrics(String pluginName, StringBuilder json) throws IOException, UnsupportedEncodingException, MalformedURLException { // Create the url - URL url = new URL(BASE_URL + String.format(REPORT_URL, encode(plugin.getDescription().getName()))); + URL url = new URL(BASE_URL + String.format(REPORT_URL, urlEncode(pluginName))); // Connect to the website URLConnection connection; @@ -286,31 +372,78 @@ private void postPlugin(boolean isPing) throws IOException { connection = url.openConnection(); } + byte[] uncompressed = json.toString().getBytes(); + byte[] compressed = gzip(json.toString()); + + // Headers + connection.addRequestProperty("User-Agent", "MCStats/" + REVISION); + connection.addRequestProperty("Content-Type", "application/json"); + connection.addRequestProperty("Content-Encoding", "gzip"); + connection.addRequestProperty("Content-Length", Integer.toString(compressed.length)); + connection.addRequestProperty("Accept", "application/json"); + connection.addRequestProperty("Connection", "close"); + connection.setDoOutput(true); + if (debug) { + System.out.println("[Metrics] Prepared request for " + pluginName + " uncompressed=" + uncompressed.length + " compressed=" + compressed.length); + } + // Write the data - final OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream()); - writer.write(data.toString()); - writer.flush(); + OutputStream os = connection.getOutputStream(); + os.write(compressed); + os.flush(); // Now read the response final BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); - final String response = reader.readLine(); + String response = reader.readLine(); // close resources - writer.close(); + os.close(); reader.close(); - if (response == null || response.startsWith("ERR")) { - throw new IOException(response); //Throw the exception + if (response == null || response.startsWith("ERR") || response.startsWith("7")) { + if (response == null) { + response = "null"; + } else if (response.startsWith("7")) { + response = response.substring(response.startsWith("7,") ? 2 : 1); + } + + throw new IOException(response); } - //if (response.startsWith("OK")) - We should get "OK" followed by an optional description if everything goes right + } + + /** + * GZip compress a string of bytes + * + * @param input + * @return + */ + public static byte[] gzip(String input) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + GZIPOutputStream gzos = null; + + try { + gzos = new GZIPOutputStream(baos); + gzos.write(input.getBytes("UTF-8")); + } catch (IOException e) { + e.printStackTrace(); + } finally { + if (gzos != null) { + try { + gzos.close(); + } catch (IOException ignore) { + } + } + } + + return baos.toByteArray(); } /** * Check if mineshafter is present. If it is, we need to bypass it to send * POST requests - * + * * @return true if mineshafter is installed on the server */ private boolean isMineshafterPresent() { @@ -323,30 +456,93 @@ private boolean isMineshafterPresent() { } /** - *

Encode a key/value data pair to be used in a HTTP post request. This - * INCLUDES a & so the first key/value pair MUST be included manually, - * e.g:

- * - * StringBuffer data = new StringBuffer(); - * data.append(encode("guid")).append('=').append(encode(guid)); - * encodeDataPair(data, "version", description.getVersion()); - * - * - * @param buffer the stringbuilder to append the data pair onto - * @param key the key value - * @param value the value + * Appends a json encoded key/value pair to the given string builder. + * + * @param json + * @param key + * @param value + * @throws UnsupportedEncodingException + */ + private static void appendJSONPair(StringBuilder json, String key, String value) throws UnsupportedEncodingException { + boolean isValueNumeric = false; + + try { + if (value.equals("0") || !value.endsWith("0")) { + Double.parseDouble(value); + isValueNumeric = true; + } + } catch (NumberFormatException e) { + isValueNumeric = false; + } + + if (json.charAt(json.length() - 1) != '{') { + json.append(','); + } + + json.append(escapeJSON(key)); + json.append(':'); + + if (isValueNumeric) { + json.append(value); + } else { + json.append(escapeJSON(value)); + } + } + + /** + * Escape a string to create a valid JSON string + * + * @param text + * @return */ - private static void encodeDataPair(final StringBuilder buffer, final String key, final String value) throws UnsupportedEncodingException { - buffer.append('&').append(encode(key)).append('=').append(encode(value)); + private static String escapeJSON(String text) { + StringBuilder builder = new StringBuilder(); + + builder.append('"'); + for (int index = 0; index < text.length(); index++) { + char chr = text.charAt(index); + + switch (chr) { + case '"': + case '\\': + builder.append('\\'); + builder.append(chr); + break; + case '\b': + builder.append("\\b"); + break; + case '\t': + builder.append("\\t"); + break; + case '\n': + builder.append("\\n"); + break; + case '\r': + builder.append("\\r"); + break; + default: + if (chr < ' ') { + String t = "000" + Integer.toHexString(chr); + builder.append("\\u" + t.substring(t.length() - 4)); + } else { + builder.append(chr); + } + break; + } + } + builder.append('"'); + + return builder.toString(); } /** * Encode text as UTF-8 - * + * * @param text the text to encode * @return the encoded text, as UTF-8 */ - private static String encode(final String text) throws UnsupportedEncodingException { + private static String urlEncode(final String text) throws UnsupportedEncodingException { return URLEncoder.encode(text, "UTF-8"); } -} \ No newline at end of file + +} diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/mods/ModBlockProvider.java b/MCPainter/src/main/java/org/primesoft/mcpainter/mods/ModBlockProvider.java index 3e423f9..d964b86 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/mods/ModBlockProvider.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/mods/ModBlockProvider.java @@ -40,7 +40,6 @@ */ public class ModBlockProvider implements IBlockProvider { - private final HashMap m_idBlocks; private final HashMap m_nameBlocks; private final int m_cnt; @@ -52,12 +51,10 @@ public static ModBlockProvider load(TextureManager texture, private ModBlockProvider(TextureManager texture, ConfigurationSection blocksSection) { - HashMap> definedBlocks = new HashMap>(); - HashMap> definedBlocksId = new HashMap>(); - m_cnt = loadBlocks(blocksSection, texture, definedBlocks, definedBlocksId); + HashMap> definedBlocks = new HashMap<>(); + m_cnt = loadBlocks(blocksSection, texture, definedBlocks); m_nameBlocks = aggregateBlocksName(definedBlocks); - m_idBlocks = aggregateBlocksId(definedBlocksId); } /** @@ -66,12 +63,10 @@ private ModBlockProvider(TextureManager texture, * @param blocksSection * @param texture * @param definedBlocks - * @param definedBlocksId * @return */ private int loadBlocks(ConfigurationSection blocksSection, TextureManager texture, - HashMap> definedBlocks, - HashMap> definedBlocksId) { + HashMap> definedBlocks) { Set sections = blocksSection.getKeys(false); int cnt = 0; for (String sName : sections) { @@ -82,7 +77,6 @@ private int loadBlocks(ConfigurationSection blocksSection, TextureManager textur String name = blockDefinition.getString("Name", "").toUpperCase(); String type = blockDefinition.getString("Type", "").toUpperCase(); - int id = blockDefinition.getInt("Id", -1); int[] data = getData(blockDefinition); int[] flags = BlockHelper.parseIntListEntry(blockDefinition.getIntegerList("Flags")); if (flags != null && flags.length > 0) { @@ -91,8 +85,8 @@ private int loadBlocks(ConfigurationSection blocksSection, TextureManager textur ConfigurationSection instruction = blockDefinition.getConfigurationSection("Instruction"); - if (name.length() == 0 && id == -1) { - MCPainterMain.log(sName + ": block Id or name is required."); + if (name.length() == 0) { + MCPainterMain.log(sName + ": block name is required."); continue; } if (instruction == null) { @@ -143,7 +137,7 @@ private int loadBlocks(ConfigurationSection blocksSection, TextureManager textur MCPainterMain.log(sName + ": Warning multi block detected, ignoring data value"); data = null; } - boolean added = addBlock(name, definedBlocks, id, definedBlocksId, data, sName, block); + boolean added = addBlock(name, definedBlocks, data, sName, block); if (added) { cnt++; } @@ -152,7 +146,6 @@ private int loadBlocks(ConfigurationSection blocksSection, TextureManager textur } private boolean addBlock(String name, HashMap> definedBlocks, - int id, HashMap> definedBlocksId, int[] data, String sectionName, IDrawableElement block) { if (data == null) { data = new int[]{0}; @@ -160,7 +153,7 @@ private boolean addBlock(String name, HashMap()); + definedBlocks.put(name, new HashMap<>()); } HashMap blockEntries = definedBlocks.get(name); @@ -176,32 +169,6 @@ private boolean addBlock(String name, HashMap()); - } - - HashMap blockEntries = definedBlocksId.get(id); - for (int i : data) { - if (i > Short.MAX_VALUE || i < 0) { - MCPainterMain.log(sectionName + ": invalid block data " + i + "."); - continue; - } - if (blockEntries.containsKey((short) i)) { - MCPainterMain.log(sectionName + ": duplicate block data value " + i + "."); - } else { - blockEntries.put((short) i, block); - added = true; - } - } - } } return added; } @@ -222,35 +189,6 @@ public IDrawableElement getBlock(String name) { return m_nameBlocks.get(name); } - Material mat = Material.getMaterial(name); - if (mat == null) { - return null; - } - - int id = mat.getId(); - if (m_idBlocks.containsKey(id)) { - return m_idBlocks.get(id); - } - - return null; - } - - @Override - public IDrawableElement getBlock(int materialId) { - if (m_idBlocks.containsKey(materialId)) { - return m_idBlocks.get(materialId); - } - - Material mat = Material.getMaterial(materialId); - if (mat == null) { - return null; - } - - String name = mat.toString(); - if (m_nameBlocks.containsKey(name)) { - return m_nameBlocks.get(name); - } - return null; } diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/palettes/Palette.java b/MCPainter/src/main/java/org/primesoft/mcpainter/palettes/Palette.java index daffad6..210c1be 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/palettes/Palette.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/palettes/Palette.java @@ -26,7 +26,7 @@ import java.io.File; import java.util.ArrayList; import java.util.List; -import org.primesoft.mcpainter.Configuration.BlockEntry; +import org.primesoft.mcpainter.configuration.BlockEntry; import org.primesoft.mcpainter.drawing.ColorMap; import org.primesoft.mcpainter.drawing.IColorMap; import org.primesoft.mcpainter.MCPainterMain; diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/texture/TextureDescription.java b/MCPainter/src/main/java/org/primesoft/mcpainter/texture/TextureDescription.java index 907668b..8a57781 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/texture/TextureDescription.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/texture/TextureDescription.java @@ -34,40 +34,35 @@ public class TextureDescription { private int m_column; private int m_row; - public static TextureDescription parse(String s) { + public static TextureDescription parse(String s) { if (s == null) { return null; } String[] parts = s.split(":"); - if (parts.length < 2) - { + if (parts.length < 2) { return null; } - + String tPack = parts[0]; String file = parts[1]; int column = -1; int row = -1; - - if (parts.length >= 3 && parts[2] != null) - { + + if (parts.length >= 3 && parts[2] != null) { try { column = Integer.parseInt(parts[2]); - } catch (NumberFormatException ex) - { - + } catch (NumberFormatException ex) { + } } - if (parts.length >= 4 && parts[3] != null) - { + if (parts.length >= 4 && parts[3] != null) { try { row = Integer.parseInt(parts[3]); - } catch (NumberFormatException ex) - { - + } catch (NumberFormatException ex) { + } } - + return new TextureDescription(tPack, file, column, row); } @@ -104,11 +99,13 @@ public String toString() { sb.append(m_texturePack); sb.append(":"); sb.append(m_file); - sb.append(":"); - sb.append(m_column); - sb.append("x"); - sb.append(m_row); + if (m_column >= 0 || m_row >= 0) { + sb.append(":"); + sb.append(m_column); + sb.append("x"); + sb.append(m_row); + } return sb.toString(); - } + } } diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/texture/TextureManager.java b/MCPainter/src/main/java/org/primesoft/mcpainter/texture/TextureManager.java index ec8594e..dbe3c3b 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/texture/TextureManager.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/texture/TextureManager.java @@ -27,7 +27,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.primesoft.mcpainter.Configuration.ConfigProvider; +import org.primesoft.mcpainter.configuration.ConfigProvider; import org.primesoft.mcpainter.drawing.RawImage; /** diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/texture/TexturePack.java b/MCPainter/src/main/java/org/primesoft/mcpainter/texture/TexturePack.java index 56c6ddd..dd20df8 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/texture/TexturePack.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/texture/TexturePack.java @@ -32,7 +32,7 @@ import java.util.zip.ZipException; import java.util.zip.ZipFile; import javax.imageio.ImageIO; -import org.primesoft.mcpainter.Configuration.ConfigProvider; +import org.primesoft.mcpainter.configuration.ConfigProvider; import org.primesoft.mcpainter.drawing.RawImage; /** diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/texture/TextureProvider.java b/MCPainter/src/main/java/org/primesoft/mcpainter/texture/TextureProvider.java index 83c1962..e39c15d 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/texture/TextureProvider.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/texture/TextureProvider.java @@ -25,7 +25,6 @@ import java.io.File; import org.primesoft.mcpainter.drawing.RawImage; -import org.primesoft.mcpainter.MCPainterMain; /** * @@ -118,7 +117,7 @@ protected TextureEntry getTexture(String[] files, String name, int[] columns, in if (img == null) { img = m_specified.getFile(files[i]); } - if (img == null) { + if (img == null) { return null; } diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/texture/VanillaTextureProvider.java b/MCPainter/src/main/java/org/primesoft/mcpainter/texture/VanillaTextureProvider.java index 85a685a..fcc63a6 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/texture/VanillaTextureProvider.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/texture/VanillaTextureProvider.java @@ -84,26 +84,26 @@ public TextureEntry getTexture(String fileName, String name) { } public TextureEntry getAnvil() { - final String[] files = new String[]{"blocks/anvil_base.png", "blocks/anvil_top_damaged_0.png", "blocks/anvil_top_damaged_1.png", "blocks/anvil_top_damaged_2.png"}; + final String[] files = new String[]{"block/anvil.png", "block/anvil_top.png", "block/chipped_anvil_top.png", "block/damaged_anvil_top.png"}; return getTexture(files, "Anvil"); } public TextureEntry getBeacon() { - return getTexture("blocks/beacon.png", "Beacon"); + return getTexture("block/beacon.png", "Beacon"); } public TextureEntry getBrewingStand() { - final String[] files = new String[]{"blocks/brewing_stand.png", "blocks/brewing_stand_base.png"}; + final String[] files = new String[]{"block/brewing_stand.png", "block/brewing_stand_base.png"}; return getTexture(files, "BrewingStand"); } public TextureEntry getMushroomBlock() { - final String[] files = new String[]{"blocks/mushroom_block_skin_stem.png", "blocks/mushroom_block_inside.png", "blocks/mushroom_block_skin_red.png", "blocks/mushroom_block_skin_brown.png"}; + final String[] files = new String[]{"block/mushroom_stem.png", "block/mushroom_block_inside.png", "block/red_mushroom_block.png", "block/brown_mushroom_block.png"}; return getTexture(files, "MushroomBlock"); } public TextureEntry getPiston() { - final String[] files = new String[]{"blocks/piston_side.png", "blocks/piston_bottom.png", "blocks/piston_top_normal.png", "blocks/piston_top_sticky.png", "blocks/piston_inner.png"}; + final String[] files = new String[]{"block/piston_side.png", "block/piston_bottom.png", "block/piston_top.png", "block/piston_top_sticky.png", "block/piston_inner.png"}; return getTexture(files, "Piston"); } } \ No newline at end of file diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/utils/BaseBlock.java b/MCPainter/src/main/java/org/primesoft/mcpainter/utils/BaseBlock.java index da31409..ac0c28f 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/utils/BaseBlock.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/utils/BaseBlock.java @@ -23,36 +23,32 @@ */ package org.primesoft.mcpainter.utils; +import org.bukkit.Bukkit; import org.bukkit.Material; +import org.bukkit.block.data.BlockData; /** * * @author SBPrime */ public class BaseBlock { - - private final Material m_material; - private final int m_data; + public static final BaseBlock AIR = new BaseBlock(Material.AIR); - public int getData(){ - return m_data; - } + public final BlockData Data; - public int getType() { - return m_material.getId(); + public BaseBlock(Material material, String data) { + Data = Bukkit.getServer().createBlockData(material, data); } - public Material getMaterial() { - return m_material; + public BaseBlock(Material material) { + Data = Bukkit.getServer().createBlockData(material); } - public BaseBlock(Material material, int data) { - m_material = material; - m_data = data; + public BaseBlock(String data) { + Data = Bukkit.getServer().createBlockData(data); } - - public BaseBlock(Material material) { - m_material = material; - m_data = 0; + + public BaseBlock(BlockData data) { + Data = data.clone(); } } diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/utils/Orientation.java b/MCPainter/src/main/java/org/primesoft/mcpainter/utils/Orientation.java index 4a873e5..a92512c 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/utils/Orientation.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/utils/Orientation.java @@ -23,7 +23,7 @@ */ package org.primesoft.mcpainter.utils; -import org.primesoft.mcpainter.Configuration.ConfigProvider; +import org.primesoft.mcpainter.configuration.ConfigProvider; /** * diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/utils/Vector.java b/MCPainter/src/main/java/org/primesoft/mcpainter/utils/Vector.java index 0a6cc07..2e79a9c 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/utils/Vector.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/utils/Vector.java @@ -94,4 +94,23 @@ public int getBlockZ() { public Vector subtract(Vector v) { return new Vector(m_x - v.m_x, m_y - v.m_y, m_z - v.m_z); } + + public static Vector parse(String s) { + if (s == null) { + return null; + } + + String[] parts = s.split(","); + if (parts.length != 3) { + return null; + } + + try { + return new Vector(Double.parseDouble(parts[0]), + Double.parseDouble(parts[1]), + Double.parseDouble(parts[2])); + } catch (NumberFormatException ex) { + return null; + } + } } diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/voxelyzer/VoxelCanvas.java b/MCPainter/src/main/java/org/primesoft/mcpainter/voxelyzer/VoxelCanvas.java index 6012a1d..fa213be 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/voxelyzer/VoxelCanvas.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/voxelyzer/VoxelCanvas.java @@ -25,7 +25,7 @@ import java.awt.Color; import org.primesoft.mcpainter.blocksplacer.BlockLoger; -import org.primesoft.mcpainter.Configuration.OperationType; +import org.primesoft.mcpainter.configuration.OperationType; import org.primesoft.mcpainter.drawing.IColorMap; import org.primesoft.mcpainter.drawing.ImageHelper; import org.primesoft.mcpainter.drawing.RawImage; diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/ChangeMessage.java b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/BaseEditSession.java similarity index 63% rename from MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/ChangeMessage.java rename to MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/BaseEditSession.java index 6c89d67..1a3a9e1 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/blocksplacer/ChangeMessage.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/BaseEditSession.java @@ -1,7 +1,7 @@ /* * The MIT License * - * Copyright 2015 SBPrime. + * Copyright 2018 SBPrime. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -21,34 +21,30 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -package org.primesoft.mcpainter.blocksplacer; +package org.primesoft.mcpainter.worldEdit; -import com.sk89q.worldedit.WorldEditException; -import com.sk89q.worldedit.history.UndoContext; -import com.sk89q.worldedit.history.change.Change; -import org.primesoft.mcpainter.MCPainterMain; +import org.bukkit.World; import org.bukkit.entity.Player; +import org.primesoft.mcpainter.BlocksHubIntegration; +import org.primesoft.mcpainter.utils.BaseBlock; +import org.primesoft.mcpainter.utils.Vector; /** * * @author SBPrime */ -public class ChangeMessage implements Change { +abstract class BaseEditSession implements IEditSession { private final Player m_player; - private final String m_msg; + private final BlocksHubIntegration m_bh; + protected final World m_world; - public ChangeMessage(Player player, String msg) { - m_player = player; - m_msg = msg; + protected BaseEditSession(ILocalPlayer p, BlocksHubIntegration bh) { + m_bh = bh; + m_world = p.getWorld(); + m_player = p.getPlayer(); } - - @Override - public void undo(UndoContext uc) throws WorldEditException { - } - - @Override - public void redo(UndoContext uc) throws WorldEditException { - MCPainterMain.say(m_player, m_msg); + protected void logBlock(Vector location, BaseBlock oldBlock, BaseBlock newBlock) { + m_bh.logBlock(m_player, m_world, location, oldBlock, newBlock); } } diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/WorldEditCuboidSelection.java b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/CuboidSelection.java similarity index 63% rename from MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/WorldEditCuboidSelection.java rename to MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/CuboidSelection.java index 86e5471..82c6ad1 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/WorldEditCuboidSelection.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/CuboidSelection.java @@ -21,45 +21,45 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + package org.primesoft.mcpainter.worldEdit; -import com.sk89q.worldedit.bukkit.selections.CuboidSelection; import org.bukkit.Location; +import org.bukkit.World; +import org.primesoft.mcpainter.utils.Vector; /** * * @author SBPrime */ -public class WorldEditCuboidSelection implements ICuboidSelection { - - private final CuboidSelection m_selection; +public final class CuboidSelection { - public WorldEditCuboidSelection(CuboidSelection cSelection) { - m_selection = cSelection; + private final Vector m_pointMin; + private final Vector m_pointMax; + private final World m_world; + + public CuboidSelection(Location from, Location to) { + m_pointMin = new Vector(from); + m_pointMax = new Vector(to); + m_world = from.getWorld(); } - - @Override - public Location getMinimumPoint() { - return m_selection.getMinimumPoint(); - } - - @Override - public Location getMaximumPoint() { - return m_selection.getMaximumPoint(); + + public CuboidSelection(World w, Vector from, Vector to) { + m_pointMin = from; + m_pointMax = to; + m_world = w; } - @Override - public int getLength() { - return m_selection.getLength(); + public Vector getMinimumPoint() { + return m_pointMin; } - @Override - public int getWidth() { - return m_selection.getWidth(); + public Vector getMaximumPoint() { + return m_pointMax; } - @Override - public int getHeight() { - return m_selection.getHeight(); + public World getWorld() { + return m_world; } + } diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/ICuboidSelection.java b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/ICuboidSelection.java deleted file mode 100644 index 93b93f1..0000000 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/ICuboidSelection.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * The MIT License - * - * Copyright 2014 SBPrime. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package org.primesoft.mcpainter.worldEdit; - -import org.bukkit.Location; - -/** - * - * @author SBPrime - */ -public interface ICuboidSelection { - - public Location getMinimumPoint(); - - public Location getMaximumPoint(); - - public int getLength(); - - public int getWidth(); - - public int getHeight(); - -} diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/IEditSession.java b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/IEditSession.java index 632baf1..40ad9e1 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/IEditSession.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/IEditSession.java @@ -24,8 +24,10 @@ package org.primesoft.mcpainter.worldEdit; +import java.util.List; import org.primesoft.mcpainter.utils.BaseBlock; import org.primesoft.mcpainter.utils.Vector; +import org.primesoft.mcpainter.blocksplacer.IChange; /** * @@ -36,5 +38,8 @@ public interface IEditSession { public BaseBlock getBlock(Vector location); public void setBlock(Vector location, BaseBlock block) throws MaxChangedBlocksException; + + public void doCustom(IChange command) throws MaxChangedBlocksException; + public List getChangeSet(); } diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/ILocalPlayer.java b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/ILocalPlayer.java index d5afb23..e1a45a4 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/ILocalPlayer.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/ILocalPlayer.java @@ -24,6 +24,8 @@ package org.primesoft.mcpainter.worldEdit; +import org.bukkit.World; +import org.bukkit.entity.Player; import org.primesoft.mcpainter.utils.Vector; /** @@ -37,5 +39,8 @@ public interface ILocalPlayer { public double getYaw(); public double getPitch(); - + + public World getWorld(); + + public Player getPlayer(); } diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/IWorldEdit.java b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/IWorldEdit.java index 74ef626..a7223bc 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/IWorldEdit.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/IWorldEdit.java @@ -37,6 +37,7 @@ public interface IWorldEdit { public ILocalPlayer wrapPlayer(Player player); - public ICuboidSelection getSelection(Player player); - + public CuboidSelection getSelection(Player player); + + public void undo(Player player); } diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/StubEditEditSession.java b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/StubEditEditSession.java index cd000b3..359dd59 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/StubEditEditSession.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/StubEditEditSession.java @@ -23,23 +23,25 @@ */ package org.primesoft.mcpainter.worldEdit; +import java.util.ArrayList; +import java.util.List; import org.primesoft.mcpainter.utils.BaseBlock; import org.primesoft.mcpainter.utils.Vector; import org.bukkit.Chunk; import org.bukkit.Location; -import org.bukkit.World; import org.bukkit.block.Block; +import org.primesoft.mcpainter.BlocksHubIntegration; +import org.primesoft.mcpainter.blocksplacer.IChange; /** * * @author SBPrime */ -class StubEditEditSession implements IEditSession { - - private World m_world; - - public StubEditEditSession(StubLocalPlayer stubLocalPlayer) { - m_world = stubLocalPlayer.getWorld(); +class StubEditEditSession extends BaseEditSession { + private final List m_changeSet= new ArrayList<>(); + + public StubEditEditSession(ILocalPlayer localPlayer, BlocksHubIntegration bh) { + super(localPlayer, bh); } @Override @@ -50,8 +52,8 @@ public BaseBlock getBlock(Vector location) { chunk.load(); } Block b = l.getBlock(); - - return new BaseBlock(b.getType(), b.getData()); + + return new BaseBlock(b.getBlockData().clone()); } @Override @@ -61,9 +63,57 @@ public void setBlock(Vector location, BaseBlock block) throws MaxChangedBlocksEx if (!chunk.isLoaded()) { chunk.load(); } + Block b = l.getBlock(); - b.setType(block.getMaterial()); - b.setData((byte)block.getData()); + BaseBlock oldBlock = new BaseBlock(b.getBlockData().clone()); + b.setBlockData(block.Data); + + IChange setBlockUndo = new UndoSetBlock(l, oldBlock); + logBlock(location, oldBlock, block); + m_changeSet.add(setBlockUndo); + } + + @Override + public void doCustom(IChange command) throws MaxChangedBlocksException { + command.redo(); + + m_changeSet.add(command); + } + + @Override + public List getChangeSet() { + return m_changeSet; } + private static class UndoSetBlock implements IChange { + + private final Location m_location; + private final BaseBlock m_block; + + public UndoSetBlock(Location l, BaseBlock oldBlock) { + m_location = l; + m_block = oldBlock; + } + + @Override + public Location getLocation() { + return m_location; + } + + @Override + public void redo() { + throw new UnsupportedOperationException("Not supported, this is only for undo."); + } + + @Override + public void undo() { + Chunk chunk = m_location.getChunk(); + if (!chunk.isLoaded()) { + chunk.load(); + } + + Block b = m_location.getBlock(); + b.setBlockData(m_block.Data); + } + } } diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/StubLocalPlayer.java b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/StubLocalPlayer.java index ae7df72..88c40f4 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/StubLocalPlayer.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/StubLocalPlayer.java @@ -39,6 +39,11 @@ public StubLocalPlayer(Player player) { m_player = player; } + @Override + public Player getPlayer() { + return m_player; + } + @Override public Vector getPosition() { return new Vector(m_player.getLocation()); @@ -54,6 +59,7 @@ public double getPitch() { return m_player.getLocation().getPitch(); } + @Override public World getWorld() { return m_player.getWorld(); } diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/StubLocalSession.java b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/StubLocalSession.java index 1872fef..fa9909a 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/StubLocalSession.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/StubLocalSession.java @@ -24,27 +24,37 @@ package org.primesoft.mcpainter.worldEdit; -import org.bukkit.World; import org.bukkit.entity.Player; +import org.primesoft.mcpainter.BlocksHubIntegration; /** * * @author SBPrime */ class StubLocalSession implements ILocalSession { - public StubLocalSession(Player player) { + + private final BlocksHubIntegration m_bh; + private final StubWrapper m_wrapper; + private final Player m_player; + + public StubLocalSession(Player player, BlocksHubIntegration bh, StubWrapper wrapper) { + m_bh = bh; + m_wrapper = wrapper; + m_player = player; } @Override - public void remember(IEditSession eSession) { + public void remember(IEditSession eSession) { + m_wrapper.setChangeset(m_player, eSession.getChangeSet()); } @Override public IEditSession createEditSession(ILocalPlayer localPlayer) { if (!(localPlayer instanceof StubLocalPlayer)) { throw new UnsupportedOperationException("Invalid argument."); - } - return new StubEditEditSession((StubLocalPlayer)localPlayer); + } + + return new StubEditEditSession((StubLocalPlayer)localPlayer, m_bh); } } diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/StubWrapper.java b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/StubWrapper.java index d0569a8..2f8f5ee 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/StubWrapper.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/StubWrapper.java @@ -21,16 +21,42 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ - package org.primesoft.mcpainter.worldEdit; +import java.util.List; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerQuitEvent; +import org.primesoft.mcpainter.BlocksHubIntegration; +import org.primesoft.mcpainter.blocksplacer.BlockLoger; +import org.primesoft.mcpainter.blocksplacer.BlockLogerEntry; +import org.primesoft.mcpainter.blocksplacer.BlockPlacer; +import org.primesoft.mcpainter.blocksplacer.IChange; /** * * @author SBPrime */ -public class StubWrapper implements IWorldEdit { +class StubWrapper implements IWorldEdit, Listener { + + private static class Entry { + + public List ChangeSet; + } + + private final BlocksHubIntegration m_bh; + private final BlockPlacer m_bp; + private final ConcurrentMap m_changeSets = new ConcurrentHashMap<>(); + + public StubWrapper(BlocksHubIntegration bh, BlockPlacer bp) { + m_bh = bh; + m_bp = bp; + } @Override public boolean isRealWorldEdit() { @@ -39,7 +65,7 @@ public boolean isRealWorldEdit() { @Override public ILocalSession getSession(Player player) { - return new StubLocalSession(player); + return new StubLocalSession(player, m_bh, this); } @Override @@ -48,7 +74,65 @@ public ILocalPlayer wrapPlayer(Player player) { } @Override - public ICuboidSelection getSelection(Player player) { + public CuboidSelection getSelection(Player player) { return null; } + + void setChangeset(Player player, final List changeSet) { + m_changeSets.computeIfPresent(player.getUniqueId(), (uuid, entry) -> { + entry.ChangeSet = changeSet; + return entry; + }); + } + + @EventHandler + public void onPlayerQuit(PlayerQuitEvent e) { + m_changeSets.remove(e.getPlayer().getUniqueId()); + } + + @EventHandler + public void onPlayerJoin(PlayerJoinEvent e) { + m_changeSets.put(e.getPlayer().getUniqueId(), new Entry()); + } + + @Override + public void undo(Player player) { + m_changeSets.computeIfPresent(player.getUniqueId(), (uuid, entry) -> { + List changes = entry.ChangeSet; + entry.ChangeSet = null; + + if (changes == null) { + return entry; + } + + BlockLogerEntry[] entries = new BlockLogerEntry[changes.size()]; + int idx = 0; + for (IChange ch : changes) { + entries[idx] = new UndoEntry(ch); + idx++; + } + m_bp.addTasks(entries, player); + return entry; + }); + } + + private static class UndoEntry extends BlockLogerEntry { + + private final IChange m_change; + + public UndoEntry(IChange ch) { + super(null); + m_change = ch; + } + + @Override + public boolean canRemove() { + return true; + } + + @Override + public void execute() { + m_change.undo(); + } + } } diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/WorldEditEditSession.java b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/WorldEditEditSession.java index 6fa1bf9..4ff4878 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/WorldEditEditSession.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/WorldEditEditSession.java @@ -24,6 +24,13 @@ package org.primesoft.mcpainter.worldEdit; import com.sk89q.worldedit.EditSession; +import com.sk89q.worldedit.WorldEditException; +import com.sk89q.worldedit.history.UndoContext; +import com.sk89q.worldedit.history.change.Change; +import com.sk89q.worldedit.history.changeset.ChangeSet; +import java.util.List; +import org.primesoft.mcpainter.BlocksHubIntegration; +import org.primesoft.mcpainter.blocksplacer.IChange; import org.primesoft.mcpainter.utils.BaseBlock; import org.primesoft.mcpainter.utils.Vector; @@ -31,11 +38,30 @@ * * @author SBPrime */ -public class WorldEditEditSession implements IEditSession { +class WorldEditEditSession extends BaseEditSession { + private static class ChangeWrapper implements Change { + + private final IChange m_change; + + public ChangeWrapper(IChange c) { + m_change = c; + } + + @Override + public void undo(UndoContext uc) throws WorldEditException { + m_change.redo(); + } + + @Override + public void redo(UndoContext uc) throws WorldEditException { + m_change.undo(); + } + } private final EditSession m_editSession; - public WorldEditEditSession(EditSession editSession) { + public WorldEditEditSession(ILocalPlayer p, EditSession editSession, BlocksHubIntegration bh) { + super(p, bh); m_editSession = editSession; } @@ -45,20 +71,33 @@ public EditSession getEditSession() { @Override public BaseBlock getBlock(Vector location) { - com.sk89q.worldedit.Vector v = WorldEditWrapper.convert(location); - com.sk89q.worldedit.blocks.BaseBlock block = m_editSession.getBlock(v); - - return WorldEditWrapper.convert(block); + return WorldEditWrapper.convert(m_editSession.getBlock(WorldEditWrapper.convert(location))); } @Override public void setBlock(Vector location, BaseBlock block) throws MaxChangedBlocksException { - com.sk89q.worldedit.blocks.BaseBlock weBlock = WorldEditWrapper.convert(block); com.sk89q.worldedit.Vector weLocaton = WorldEditWrapper.convert(location); + BaseBlock oldBlock = WorldEditWrapper.convert(m_editSession.getBlock(weLocaton)); + com.sk89q.worldedit.world.block.BlockState weBlock = WorldEditWrapper.convert(block); try { m_editSession.setBlock(weLocaton, weBlock); } catch (com.sk89q.worldedit.MaxChangedBlocksException ex) { throw new MaxChangedBlocksException(); } + + logBlock(location, oldBlock, block); + } + + @Override + public void doCustom(IChange command) throws MaxChangedBlocksException { + ChangeSet cs = m_editSession.getChangeSet(); + command.redo(); + cs.add(new ChangeWrapper(command)); + } + + @Override + public List getChangeSet() { + return null; } -} \ No newline at end of file + +} diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/WorldEditFactory.java b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/WorldEditFactory.java index 76f78ba..26b939a 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/WorldEditFactory.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/WorldEditFactory.java @@ -48,15 +48,18 @@ private static Plugin getWorldEdit(JavaPlugin plugin) { } } - public static IWorldEdit getWorldEditWrapper(JavaPlugin plugin) { + public static IWorldEdit getWorldEditWrapper(MCPainterMain plugin) { Plugin wePlugin = getWorldEdit(plugin); if (wePlugin != null) { MCPainterMain.log("WorldEdit found - using the \"real thing\"."); - return new WorldEditWrapper(wePlugin); + return new WorldEditWrapper(wePlugin, plugin.getBlocksHub()); } MCPainterMain.log("WorldEdit not found - using stub wrapper classes."); - return new StubWrapper(); + + StubWrapper result = new StubWrapper(plugin.getBlocksHub(), plugin.getBlockPlacer()); + plugin.getServer().getPluginManager().registerEvents(result, plugin); + return result; } } diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/WorldEditLocalPlayer.java b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/WorldEditLocalPlayer.java index b5e1945..c05aca3 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/WorldEditLocalPlayer.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/WorldEditLocalPlayer.java @@ -24,7 +24,8 @@ package org.primesoft.mcpainter.worldEdit; -import com.sk89q.worldedit.LocalPlayer; +import org.bukkit.World; +import org.bukkit.entity.Player; import org.primesoft.mcpainter.utils.Vector; /** @@ -32,28 +33,40 @@ * @author SBPrime */ public class WorldEditLocalPlayer implements ILocalPlayer { - private final LocalPlayer m_localPlayer; + private final com.sk89q.worldedit.entity.Player m_localPlayer; + private final Player m_player; - public WorldEditLocalPlayer(LocalPlayer localPlayer) { + public WorldEditLocalPlayer(com.sk89q.worldedit.entity.Player localPlayer, Player player) { m_localPlayer = localPlayer; + m_player = player; } - public LocalPlayer getLocalPlayer(){ + public com.sk89q.worldedit.entity.Player getLocalPlayer(){ return m_localPlayer; } @Override public Vector getPosition() { - return WorldEditWrapper.convert(m_localPlayer.getPosition()); + return WorldEditWrapper.convert(m_localPlayer.getLocation().toVector()); } @Override public double getYaw() { - return m_localPlayer.getYaw(); + return m_localPlayer.getLocation().getYaw(); } @Override public double getPitch() { - return m_localPlayer.getPitch(); + return m_localPlayer.getLocation().getPitch(); + } + + @Override + public World getWorld() { + return m_player.getWorld(); + } + + @Override + public Player getPlayer() { + return m_player; } } diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/WorldEditLocalSession.java b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/WorldEditLocalSession.java index 0c72952..9e15e61 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/WorldEditLocalSession.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/WorldEditLocalSession.java @@ -25,6 +25,7 @@ import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.LocalSession; +import org.primesoft.mcpainter.BlocksHubIntegration; /** * @@ -32,9 +33,12 @@ */ public class WorldEditLocalSession implements ILocalSession { private final LocalSession m_localSession; + + private final BlocksHubIntegration m_bh; - public WorldEditLocalSession(LocalSession localSession) { + public WorldEditLocalSession(LocalSession localSession, BlocksHubIntegration bh) { m_localSession = localSession; + m_bh = bh; } public LocalSession getLocalSession() { @@ -57,6 +61,6 @@ public IEditSession createEditSession(ILocalPlayer localPlayer) { } EditSession session = m_localSession.createEditSession(((WorldEditLocalPlayer)localPlayer).getLocalPlayer()); - return new WorldEditEditSession(session); + return new WorldEditEditSession(localPlayer, session, m_bh); } } diff --git a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/WorldEditWrapper.java b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/WorldEditWrapper.java index e8a6507..3a50080 100644 --- a/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/WorldEditWrapper.java +++ b/MCPainter/src/main/java/org/primesoft/mcpainter/worldEdit/WorldEditWrapper.java @@ -21,32 +21,37 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ - package org.primesoft.mcpainter.worldEdit; -import com.sk89q.worldedit.LocalPlayer; +import com.sk89q.worldedit.IncompleteRegionException; import com.sk89q.worldedit.LocalSession; +import com.sk89q.worldedit.bukkit.BukkitAdapter; import com.sk89q.worldedit.bukkit.WorldEditPlugin; -import com.sk89q.worldedit.bukkit.selections.CuboidSelection; -import com.sk89q.worldedit.bukkit.selections.Selection; +import com.sk89q.worldedit.regions.Region; +import com.sk89q.worldedit.world.block.BlockState; +import org.bukkit.Bukkit; +import org.bukkit.Server; +import org.bukkit.World; import org.primesoft.mcpainter.utils.BaseBlock; import org.primesoft.mcpainter.utils.Vector; -import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; +import org.primesoft.mcpainter.BlocksHubIntegration; /** * * @author SBPrime */ -public class WorldEditWrapper implements IWorldEdit { +class WorldEditWrapper implements IWorldEdit { + private final WorldEditPlugin m_worldEdit; - - public WorldEditWrapper(Plugin wePlugin) { - m_worldEdit = (WorldEditPlugin)wePlugin; + private final BlocksHubIntegration m_bh; + + WorldEditWrapper(Plugin wePlugin, BlocksHubIntegration bh) { + m_bh = bh; + m_worldEdit = (WorldEditPlugin) wePlugin; } - - + @Override public boolean isRealWorldEdit() { return true; @@ -55,39 +60,66 @@ public boolean isRealWorldEdit() { @Override public ILocalSession getSession(Player player) { LocalSession lSession = m_worldEdit.getSession(player); - return new WorldEditLocalSession(lSession); + return new WorldEditLocalSession(lSession, m_bh); } @Override public ILocalPlayer wrapPlayer(Player player) { - LocalPlayer lPlayer = m_worldEdit.wrapPlayer(player); - return new WorldEditLocalPlayer(lPlayer); + com.sk89q.worldedit.entity.Player lPlayer = m_worldEdit.wrapPlayer(player); + return new WorldEditLocalPlayer(lPlayer, player); } @Override - public ICuboidSelection getSelection(Player player) { - Selection selection = m_worldEdit.getSelection(player); - if (!(selection instanceof CuboidSelection)) { + public CuboidSelection getSelection(Player player) { + LocalSession session = m_worldEdit.getSession(player); + final com.sk89q.worldedit.world.World sWorld = session.getSelectionWorld(); + if (sWorld == null) { + return null; + } + + Region selection = null; + try { + selection = session.getSelection(sWorld); + } catch (IncompleteRegionException ex) { + //Simply ignore me + } + + if (selection == null) { return null; } - - return new WorldEditCuboidSelection((CuboidSelection)selection); + + com.sk89q.worldedit.Vector pMin = selection.getMinimumPoint(); + com.sk89q.worldedit.Vector pMax = selection.getMaximumPoint(); + + Server s = Bukkit.getServer(); + World w = s.getWorld(sWorld.getName()); + + return new CuboidSelection(w, + new Vector(pMin.getX(), pMin.getY(), pMin.getZ()), + new Vector(pMax.getX(), pMax.getY(), pMax.getZ()) + ); } - - - public static com.sk89q.worldedit.Vector convert(Vector v) { + + static com.sk89q.worldedit.Vector convert(Vector v) { return new com.sk89q.worldedit.Vector(v.getX(), v.getY(), v.getZ()); } - public static Vector convert(com.sk89q.worldedit.Vector v) { + static Vector convert(com.sk89q.worldedit.Vector v) { return new Vector(v.getX(), v.getY(), v.getZ()); } - - public static com.sk89q.worldedit.blocks.BaseBlock convert(BaseBlock v) { - return new com.sk89q.worldedit.blocks.BaseBlock(v.getType(), v.getData()); + + static com.sk89q.worldedit.world.block.BlockState convert(BaseBlock v) { + return BukkitAdapter.adapt(v.Data); } - - public static BaseBlock convert(com.sk89q.worldedit.blocks.BaseBlock v) { - return new BaseBlock(Material.getMaterial(v.getType()), v.getData()); + + static BaseBlock convert(com.sk89q.worldedit.world.block.BlockState v) { + return new BaseBlock(BukkitAdapter.adapt(v)); + } + + @Override + public void undo(Player player) { + com.sk89q.worldedit.entity.Player lPlayer = m_worldEdit.wrapPlayer(player); + m_worldEdit.getSession(player).undo(null, lPlayer); + } } diff --git a/MCPainter/src/main/resources/plugin.yml b/MCPainter/src/main/resources/plugin.yml index ca3e341..c24819a 100644 --- a/MCPainter/src/main/resources/plugin.yml +++ b/MCPainter/src/main/resources/plugin.yml @@ -1,6 +1,7 @@ name: MCPainter main: org.primesoft.mcpainter.MCPainterMain version: 1.0.1 +api-version: 1.13 website: https://github.com/SBPrime/MCPainter/wiki dev-url: https://github.com/SBPrime/MCPainter/wiki description: Provides some basic features to draw using blocks.