mc root source folder cleanup

This commit is contained in:
adman
2026-06-27 13:54:54 +02:00
parent b2784574bd
commit 666f250b3e
480 changed files with 325 additions and 325 deletions
File diff suppressed because one or more lines are too long
+109
View File
@@ -0,0 +1,109 @@
package anvil
import (
"strings"
"unsafe"
data2 "github.com/admin-else/strom/mc/data"
level2 "github.com/admin-else/strom/mc/level"
"github.com/admin-else/strom/mc/util"
)
type Chunk struct {
DataVersion int32
Heightmaps map[string][]int64
InhabitedTime int64
XPos, YPos, ZPos int32
Sections []Section
}
const McPrefix = "minecraft:"
func (c Chunk) ToStorage(version string) (toChunk *level2.Chunk, err error) {
f := level2.MakeBlockFormat(version)
toChunk = new(level2.Chunk)
toChunk.Version = version
toChunk.Sections = make([]level2.Section, len(c.Sections))
for i, s := range c.Sections {
pallete := make([]int32, len(s.BlockStates.Palette))
for j, p := range s.BlockStates.Palette {
pallete[j], err = data2.StateIdFromBlocKAndStateMap(version, strings.TrimPrefix(p.Name, McPrefix), p.Properties)
if err != nil {
return
}
}
// this is probably fine
if s.BlockStates.Data != nil {
uintSlice := unsafe.Slice((*uint64)(unsafe.Pointer(unsafe.SliceData(s.BlockStates.Data))), len(s.BlockStates.Data))
bpe := util.BpeByNum(float64(len(s.BlockStates.Palette)))
toChunk.Sections[i].Blocks, err = f.Import(uintSlice, bpe, pallete)
if err != nil {
return
}
toChunk.Sections[i].BlockCount = int16(level2.BlocksPerChunkSection - level2.CountStorage(toChunk.Sections[i].Blocks, 0))
} else {
var fillerId = int32(0)
if len(pallete) == 1 {
fillerId = pallete[0]
if fillerId != 0 {
toChunk.Sections[i].BlockCount = level2.BlocksPerChunkSection
}
}
toChunk.Sections[i].Blocks, err = f.FullWith(fillerId)
if err != nil {
return
}
}
}
f = level2.MakeBiomeFormat(version)
for i, s := range c.Sections {
pallete := make([]int32, len(s.Biomes.Palette))
for j, p := range s.Biomes.Palette {
var b *data2.Biome
b, ok := data2.LookupBiomeByName(version, strings.TrimPrefix(p, McPrefix))
if !ok {
err = data2.UnknownBiomeNameErr
return
}
pallete[j] = b.Id
}
if s.Biomes.Data != nil {
// this is probably fine
uintSlice := unsafe.Slice((*uint64)(unsafe.Pointer(unsafe.SliceData(s.Biomes.Data))), len(s.Biomes.Data))
bpe := util.BpeByNum(float64(len(pallete)))
toChunk.Sections[i].Biomes, err = f.Import(uintSlice, bpe, pallete)
if err != nil {
return
}
} else {
var fillerId = int32(0)
if len(pallete) == 1 {
fillerId = pallete[0]
}
toChunk.Sections[i].Biomes, err = f.FullWith(fillerId)
if err != nil {
return
}
}
}
return
}
type Section struct {
Y int8
BlockStates struct {
Data []int64 `nbt:"data,omitempty"`
Palette []struct {
Name string
Properties map[string]string `nbt:"Properties,omitempty"`
}
} `nbt:"block_states,omitempty"`
Biomes struct {
Data []int64 `nbt:"data,omitempty"`
Palette []string
} `nbt:"biomes,omitempty"`
}
+185
View File
@@ -0,0 +1,185 @@
package anvil
import (
"io"
"github.com/admin-else/strom/mc/nbt"
)
type Level struct {
ClearWeatherTime int32 `nbt:"clearWeatherTime"`
DataPacks DataPacks
DayTime int64
WanderingTraderSpawnChance int32
GameType int32
WorldGenSettings WorldGenSettings
ScheduledEvents []interface{}
WasModded bool
ThunderTime int32 `nbt:"thunderTime"`
Difficulty int8
DragonFight DragonFight
Initialized bool
AllowCommands bool `nbt:"allowCommands"`
Thundering bool
LastPlayed int64
GameRules map[string]interface{}
RainTime int32 `nbt:"rainTime"`
DataVersion int32
Version Version
WanderingTraderSpawnDelay int32
Hardcore bool
Spawn Spawn
Raining bool
Player Player
DifficultyLocked bool
LevelName string
Time int64
ServerBrands []string
CustomBossEvents map[string]interface{}
}
type DataPacks struct {
Enabled []string
Disabled []string
}
type WorldGenSettings struct {
BonusChest bool
Seed int64
GenerateFeatures bool
Dimensions map[string]Dimension
}
type Dimensions struct {
Overworld Dimension
Nether Dimension
End Dimension
}
type Dimension struct {
Generator Generator
Type string
}
type Generator struct {
Type string
Settings string
BiomeSource BiomeSource
}
type BiomeSource struct {
Preset string `nbt:"preset,omitempty"`
Type string
}
type DragonFight struct {
NeedsStateScanning bool
Gateways []int32
DragonKilled bool
PreviouslyKilled bool
}
type Version struct {
Snapshot bool
Series string
Id int32
Name string
}
type Spawn struct {
Dimension string
Yaw float32
Pos [3]int32
Pitch float32
}
type Player struct {
XpLevel int32
HurtTime int16
DeathTime int16
XpTotal int32
FoodExhaustionLevel float32
RecipeBook RecipeBook
Fire int16
Brain Brain
XpSeed int32
XpP float32
EnderItems []interface{}
Invulnerable bool
Pos [3]float64
Inventory []InventoryItem
SleepTimer int16
Abilities Abilities
PlayerGameType int32
SeenCredits bool
FoodSaturationLevel float32
FallDistance float64
OnGround bool
Dimension string
PortalCooldown int32
Motion [3]float64
IgnoreFallDamageFromCurrentExplosion bool
Rotation [2]float32
CurrentImpulseContextResetGraceTime int32
WardenSpawnTracker WardenSpawnTracker
PreviousPlayerGameType int32
Attributes []Attribute
HurtByTimestamp int32
UUID [4]int32
Score int32
DataVersion int32
FoodLevel int32
SpawnExtraParticlesOnFall bool
SelectedItemSlot int32
FoodTickTimer int32
FallFlying bool
AbsorptionAmount float32
Health float32
Air int16
}
type RecipeBook struct {
Recipes []string
ToBeDisplayed []string
}
type Brain struct {
Memories map[string]interface{}
}
type InventoryItem struct {
Count int32
Slot int8
Id string
}
type Abilities struct {
Invulnerable bool
Mayfly bool
Instabuild bool
WalkSpeed float32
MayBuild bool
Flying bool
FlySpeed float32
}
type WardenSpawnTracker struct {
WarningLevel int32
TicksSinceLastWarning int32
CooldownTicks int32
}
type Attribute struct {
Id string
Base float64
}
func ReadLevelData(r io.Reader) (l Level, err error) {
var lDataWrapped struct{ Data Level }
err = nbt.ReadFile(r, &lDataWrapped)
if err != nil {
return
}
l = lDataWrapped.Data
return
}
+53
View File
@@ -0,0 +1,53 @@
package anvil_test
import (
"bytes"
"encoding/json"
"fmt"
"os"
"testing"
"github.com/admin-else/strom/mc/level"
anvil2 "github.com/admin-else/strom/mc/level/anvil"
"github.com/admin-else/strom/mc/util"
)
func TestLevel(t *testing.T) {
f, err := os.Open("./testdata/testworld/level.dat")
if err != nil {
t.Fatal(err)
}
defer f.Close()
l, err := anvil2.ReadLevelData(f)
if err != nil {
t.Fatal(err)
}
t.Log(l)
}
func TestRegionFile(t *testing.T) {
f, err := os.Open("./testdata/testworld/region/r.0.0.mca")
if err != nil {
t.Fatal(err)
}
defer f.Close()
ch, err := anvil2.ReadChunkHeader(f)
if err != nil {
t.Fatal(err)
}
n, err := ch.ChunkAt(f, 0, 0)
if err != nil {
return
}
fmt.Println(string(util.MustT(json.MarshalIndent(n, "", " "))))
fmt.Println("Chunk loaded successfully")
}
func loadPacketToChunk(b []byte) (chunk *level.Chunk, err error) {
buffer := bytes.NewBuffer(b)
chunk, err = level.ReadChunkFromChunkPacketData(buffer, "1.21.11", 384)
return
}
+121
View File
@@ -0,0 +1,121 @@
package anvil
import (
"compress/gzip"
"compress/zlib"
"encoding/binary"
"fmt"
"io"
"os"
"github.com/admin-else/strom/mc/nbt"
)
type CompressionStrategy uint8
const (
ChunksWidthRegionFile = 32
ChunksRegionFile = ChunksWidthRegionFile * ChunksWidthRegionFile
)
const (
_ CompressionStrategy = iota
CompressionStrategyGZIP
CompressionStrategyZLIB
CompressionStrategyNONE
CompressionStrategyLZ4
)
func (c CompressionStrategy) Wrap(r io.ReadCloser) (rNew io.ReadCloser, shouldClose bool, err error) {
switch c {
case CompressionStrategyGZIP:
shouldClose = true
rNew, err = gzip.NewReader(r)
return
case CompressionStrategyZLIB:
shouldClose = true
rNew, err = zlib.NewReader(r)
return
case CompressionStrategyNONE:
rNew = r
return
case CompressionStrategyLZ4:
err = fmt.Errorf("lz4 compression not supported")
return
default:
err = fmt.Errorf("unknown compression strategy %d", c)
return
}
}
type ChunkHeader struct {
Chunk, Time [ChunksRegionFile]int32
}
func ReadChunkHeader(r *os.File) (ch *ChunkHeader, err error) {
var h ChunkHeader
err = binary.Read(r, binary.BigEndian, &h)
if err != nil {
return
}
ch = &h
return
}
// ChunkAt returns the chunk at the given position, or nil if it is empty.
func (c *ChunkHeader) ChunkAt(f *os.File, x, z int32) (n *nbt.Tag, err error) {
if x < 0 || z < 0 || x >= ChunksWidthRegionFile || z >= ChunksWidthRegionFile {
err = fmt.Errorf("chunk out of bounds")
return
}
off, size := chunkLocation(c.Chunk[chunkXZtoIndex(x, z)])
if off == 0 {
return nil, nil
}
_, err = f.Seek(int64(off), 0)
if err != nil {
return
}
_ = size // i dont really know why mc has this maybe to point out how much space is wasted?
var realSize int32
err = binary.Read(f, binary.BigEndian, &realSize)
if err != nil {
return
}
var compressionStrategy CompressionStrategy
err = binary.Read(f, binary.BigEndian, &compressionStrategy)
if err != nil {
return
}
r, shouldClose, err := compressionStrategy.Wrap(f)
if err != nil {
return
}
if shouldClose {
defer r.Close()
}
n = &nbt.Tag{}
err = n.Decode(r)
if err != nil {
return
}
return
}
func (c *ChunkHeader) TimeAt(f *os.File, x, z int32) (t int32, err error) {
if x < 0 || z < 0 || x >= ChunksWidthRegionFile || z >= ChunksWidthRegionFile {
err = fmt.Errorf("chunk out of bounds")
return
}
t = c.Time[chunkXZtoIndex(x, z)]
return
}
func chunkXZtoIndex(x, z int32) int32 {
return (x % ChunksWidthRegionFile) + (z%ChunksWidthRegionFile)*ChunksWidthRegionFile
}
func chunkLocation(v int32) (offset, l int32) {
return ((v >> 8) & 0xFFFFFF) * 4096, (v & 0xFF) * 4096
}
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
File diff suppressed because it is too large Load Diff
+3
View File
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:14cd0df55488907baf26a6e8da9548d614d044a15259a526bb1f0be44a712764
size 10113024
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,215 @@
{
"minecraft:recipes/building_blocks/polished_deepslate": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_tile_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_brick_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/combat/stone_sword": {
"criteria": {
"has_cobblestone": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_axe": {
"criteria": {
"has_cobblestone": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:story/mine_stone": {
"criteria": {
"get_stone": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/decorations/furnace": {
"criteria": {
"has_cobblestone": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/chiseled_deepslate_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/decorations/crafting_table": {
"criteria": {
"unlock_right_away": "2026-01-18 19:40:40 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_slab": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/decorations/cobbled_deepslate_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop_from_campfire_cooking": {
"criteria": {
"has_porkchop": "2026-01-18 19:40:40 +0100"
},
"done": true
},
"minecraft:recipes/decorations/cobbled_deepslate_wall": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/decorations/polished_deepslate_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/polished_deepslate_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/decorations/deepslate_brick_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/polished_deepslate_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/polished_deepslate_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop": {
"criteria": {
"has_porkchop": "2026-01-18 19:40:40 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_pickaxe": {
"criteria": {
"has_cobblestone": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_brick_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_tile_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/misc/charcoal": {
"criteria": {
"has_log": "2026-01-18 19:41:43 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_stairs": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/decorations/deepslate_tile_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/oak_planks": {
"criteria": {
"has_logs": "2026-01-18 19:41:43 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop_from_smoking": {
"criteria": {
"has_porkchop": "2026-01-18 19:40:40 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_bricks_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:adventure/adventuring_time": {
"criteria": {
"minecraft:forest": "2026-01-18 19:40:40 +0100",
"minecraft:deep_dark": "2026-01-18 19:41:56 +0100",
"minecraft:stony_shore": "2026-01-18 19:40:46 +0100"
},
"done": false
},
"minecraft:recipes/building_blocks/deepslate_tiles_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_hoe": {
"criteria": {
"has_cobblestone": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_shovel": {
"criteria": {
"has_cobblestone": "2026-01-18 19:41:36 +0100"
},
"done": true
},
"DataVersion": 4556
}
@@ -0,0 +1,17 @@
{
"minecraft:recipes/decorations/crafting_table": {
"criteria": {
"unlock_right_away": "2026-04-23 22:08:36 +0200"
},
"done": true
},
"minecraft:adventure/adventuring_time": {
"criteria": {
"minecraft:taiga": "2026-04-23 22:10:55 +0200",
"minecraft:grove": "2026-04-23 22:09:03 +0200",
"minecraft:stony_shore": "2026-04-23 22:08:37 +0200"
},
"done": false
},
"DataVersion": 4671
}
@@ -0,0 +1,17 @@
{
"minecraft:recipes/decorations/crafting_table": {
"criteria": {
"unlock_right_away": "2026-05-08 20:07:02 +0200"
},
"done": true
},
"minecraft:adventure/adventuring_time": {
"criteria": {
"minecraft:forest": "2026-05-08 20:07:06 +0200",
"minecraft:taiga": "2026-05-08 20:07:05 +0200",
"minecraft:grove": "2026-05-08 20:07:03 +0200"
},
"done": false
},
"DataVersion": 4671
}
@@ -0,0 +1,220 @@
{
"minecraft:recipes/building_blocks/polished_deepslate": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_tile_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_brick_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/combat/stone_sword": {
"criteria": {
"has_cobblestone": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_axe": {
"criteria": {
"has_cobblestone": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:story/mine_stone": {
"criteria": {
"get_stone": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/decorations/furnace": {
"criteria": {
"has_cobblestone": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/chiseled_deepslate_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/decorations/crafting_table": {
"criteria": {
"unlock_right_away": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_slab": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/decorations/cobbled_deepslate_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop_from_campfire_cooking": {
"criteria": {
"has_porkchop": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/decorations/cobbled_deepslate_wall": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/decorations/polished_deepslate_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/polished_deepslate_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/decorations/deepslate_brick_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/polished_deepslate_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/polished_deepslate_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop": {
"criteria": {
"has_porkchop": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_pickaxe": {
"criteria": {
"has_cobblestone": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_brick_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_tile_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/misc/charcoal": {
"criteria": {
"has_log": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_stairs": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/combat/stone_spear": {
"criteria": {
"has_cobblestone": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/decorations/deepslate_tile_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/oak_planks": {
"criteria": {
"has_logs": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop_from_smoking": {
"criteria": {
"has_porkchop": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_bricks_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:adventure/adventuring_time": {
"criteria": {
"minecraft:stony_shore": "2026-03-11 19:22:59 +0100",
"minecraft:plains": "2026-03-11 19:22:38 +0100"
},
"done": false
},
"minecraft:recipes/building_blocks/deepslate_tiles_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_hoe": {
"criteria": {
"has_cobblestone": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_shovel": {
"criteria": {
"has_cobblestone": "2026-03-11 19:22:37 +0100"
},
"done": true
},
"DataVersion": 4671
}
@@ -0,0 +1,222 @@
{
"minecraft:recipes/building_blocks/polished_deepslate": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_tile_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_brick_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/combat/stone_sword": {
"criteria": {
"has_cobblestone": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_axe": {
"criteria": {
"has_cobblestone": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:story/mine_stone": {
"criteria": {
"get_stone": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/decorations/furnace": {
"criteria": {
"has_cobblestone": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/chiseled_deepslate_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/decorations/crafting_table": {
"criteria": {
"unlock_right_away": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_slab": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/decorations/cobbled_deepslate_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop_from_campfire_cooking": {
"criteria": {
"has_porkchop": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/decorations/cobbled_deepslate_wall": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/decorations/polished_deepslate_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/polished_deepslate_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/decorations/deepslate_brick_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/polished_deepslate_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/polished_deepslate_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop": {
"criteria": {
"has_porkchop": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_pickaxe": {
"criteria": {
"has_cobblestone": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_brick_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_tile_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/misc/charcoal": {
"criteria": {
"has_log": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_stairs": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/combat/stone_spear": {
"criteria": {
"has_cobblestone": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/decorations/deepslate_tile_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/oak_planks": {
"criteria": {
"has_logs": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop_from_smoking": {
"criteria": {
"has_porkchop": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_bricks_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:adventure/adventuring_time": {
"criteria": {
"minecraft:forest": "2026-02-07 19:19:04 +0100",
"minecraft:river": "2026-02-07 19:20:26 +0100",
"minecraft:stony_shore": "2026-02-07 19:20:11 +0100",
"minecraft:plains": "2026-02-07 19:20:12 +0100"
},
"done": false
},
"minecraft:recipes/building_blocks/deepslate_tiles_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_hoe": {
"criteria": {
"has_cobblestone": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_shovel": {
"criteria": {
"has_cobblestone": "2026-02-07 19:19:03 +0100"
},
"done": true
},
"DataVersion": 4671
}
@@ -0,0 +1,119 @@
{
"minecraft:recipes/decorations/crafting_table": {
"criteria": {
"unlock_right_away": "2025-11-30 09:32:28 +0100"
},
"done": true
},
"minecraft:recipes/transportation/cherry_boat": {
"criteria": {
"in_water": "2025-11-30 10:05:13 +0100"
},
"done": true
},
"minecraft:adventure/kill_all_mobs": {
"criteria": {
"minecraft:zombie": "2025-11-30 10:06:33 +0100"
},
"done": false
},
"minecraft:recipes/food/cooked_porkchop_from_campfire_cooking": {
"criteria": {
"has_porkchop": "2025-11-30 10:06:57 +0100"
},
"done": true
},
"minecraft:recipes/transportation/bamboo_raft": {
"criteria": {
"in_water": "2025-11-30 10:05:13 +0100"
},
"done": true
},
"minecraft:recipes/transportation/spruce_boat": {
"criteria": {
"in_water": "2025-11-30 10:05:13 +0100"
},
"done": true
},
"minecraft:recipes/transportation/birch_boat": {
"criteria": {
"in_water": "2025-11-30 10:05:13 +0100"
},
"done": true
},
"minecraft:recipes/transportation/oak_boat": {
"criteria": {
"in_water": "2025-11-30 10:05:13 +0100"
},
"done": true
},
"minecraft:recipes/transportation/mangrove_boat": {
"criteria": {
"in_water": "2025-11-30 10:05:13 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop": {
"criteria": {
"has_porkchop": "2025-11-30 10:06:57 +0100"
},
"done": true
},
"minecraft:recipes/transportation/acacia_boat": {
"criteria": {
"in_water": "2025-11-30 10:05:13 +0100"
},
"done": true
},
"minecraft:adventure/root": {
"criteria": {
"killed_something": "2025-11-30 10:06:33 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop_from_smoking": {
"criteria": {
"has_porkchop": "2025-11-30 10:06:57 +0100"
},
"done": true
},
"minecraft:adventure/kill_a_mob": {
"criteria": {
"minecraft:zombie": "2025-11-30 10:06:33 +0100"
},
"done": true
},
"minecraft:recipes/transportation/pale_oak_boat": {
"criteria": {
"in_water": "2025-11-30 10:05:13 +0100"
},
"done": true
},
"minecraft:adventure/adventuring_time": {
"criteria": {
"minecraft:old_growth_birch_forest": "2025-11-30 10:03:58 +0100",
"minecraft:forest": "2025-11-30 10:04:40 +0100",
"minecraft:taiga": "2025-11-30 09:32:29 +0100",
"minecraft:deep_dark": "2025-11-30 10:05:12 +0100",
"minecraft:river": "2025-11-30 10:09:03 +0100",
"minecraft:grove": "2025-11-30 09:32:32 +0100",
"minecraft:meadow": "2025-11-30 09:32:44 +0100",
"minecraft:birch_forest": "2025-11-30 10:05:33 +0100",
"minecraft:frozen_peaks": "2025-11-30 09:32:55 +0100"
},
"done": false
},
"minecraft:recipes/transportation/jungle_boat": {
"criteria": {
"in_water": "2025-11-30 10:05:13 +0100"
},
"done": true
},
"minecraft:recipes/transportation/dark_oak_boat": {
"criteria": {
"in_water": "2025-11-30 10:05:13 +0100"
},
"done": true
},
"DataVersion": 4556
}
@@ -0,0 +1,220 @@
{
"minecraft:recipes/building_blocks/polished_deepslate": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_tile_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_brick_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/combat/stone_sword": {
"criteria": {
"has_cobblestone": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_axe": {
"criteria": {
"has_cobblestone": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:story/mine_stone": {
"criteria": {
"get_stone": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/decorations/furnace": {
"criteria": {
"has_cobblestone": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/chiseled_deepslate_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/decorations/crafting_table": {
"criteria": {
"unlock_right_away": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_slab": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/decorations/cobbled_deepslate_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop_from_campfire_cooking": {
"criteria": {
"has_porkchop": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/decorations/cobbled_deepslate_wall": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/decorations/polished_deepslate_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/polished_deepslate_stairs_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/decorations/deepslate_brick_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/polished_deepslate_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/polished_deepslate_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop": {
"criteria": {
"has_porkchop": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_pickaxe": {
"criteria": {
"has_cobblestone": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_brick_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_tile_slab_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/misc/charcoal": {
"criteria": {
"has_log": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/cobbled_deepslate_stairs": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/combat/stone_spear": {
"criteria": {
"has_cobblestone": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/decorations/deepslate_tile_wall_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/oak_planks": {
"criteria": {
"has_logs": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/food/cooked_porkchop_from_smoking": {
"criteria": {
"has_porkchop": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/building_blocks/deepslate_bricks_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:adventure/adventuring_time": {
"criteria": {
"minecraft:stony_shore": "2026-03-12 21:17:48 +0100",
"minecraft:plains": "2026-03-12 21:17:31 +0100"
},
"done": false
},
"minecraft:recipes/building_blocks/deepslate_tiles_from_cobbled_deepslate_stonecutting": {
"criteria": {
"has_cobbled_deepslate": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_hoe": {
"criteria": {
"has_cobblestone": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"minecraft:recipes/tools/stone_shovel": {
"criteria": {
"has_cobblestone": "2026-03-12 21:17:28 +0100"
},
"done": true
},
"DataVersion": 4671
}
@@ -0,0 +1 @@
https://github.com/cabaletta/baritone
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fc0958e0912637fd74710a15fe7f1272f3cd2af3bcce3c23fed19736388c00ad
size 753664
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:26d5f8cd8bd1c860416914bc4c02d0b70607656beba85dba2263e0e79a06e7b8
size 348160
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:28c10367fb1e46056999833e17d07551e5bf76dd913551e09f8d43595a2b3fb2
size 12288
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:19a35fe09fba69dfe85874a548d28b77c4c70664e338530b9f3f08f24ad4abba
size 598016
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:30adf5f8dec1ff527794b72ec7f6e647b5501c851dc988210daf354b6d56f03b
size 143360
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:65c4290f6e9cc93cf73a91a47437484b94d014a0b9ad648d896c12674faf1f10
size 405504
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c68c40572cb6667a818d6982a1c2cd40f95c3ab25551b7d70fbc35cb0146ee12
size 290816
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2c6387f0f76c625bf167373094a7628efad713158de30bb2bdfc06ad4f44acab
size 192512
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:34a1d263910364f6bd0173e0ec96e8f45a0a5c2c74e4c5a3e771612685376d34
size 77824
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:490e215ae40f8928646cfd09e2ccbed852e9a0b43a48234a5e8d5a8e01b56a1a
size 32768
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:870c2d34a6e041f46786167f5c077ce515d0daa616242d4a8065861e376aaf54
size 24576
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7473ac38f9943d9e1ed907faa2997d2833c29f326bd9829f7d0dc49b77797486
size 724992
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:adba24770ab0983249c2b327fa9ae675107a34549651d870c5d0011ea8cbcabc
size 294912
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:29fb706bffac7f1fb93f0fc62c201fdb1a0ca939fb53807362337f1ea2609737
size 16384
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a870e120e4932cbfe231c85e1ca04b7e0dc455b3e4da331b8f3e0baf6c17946f
size 344064
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c73b7ec1f3e7699e430da25bf72f570aa9c84d88dc8c21908ea6b2293c8c213a
size 98304
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4fffbd92fa6e7e271a8643b8ee0711d3fc2ebafe4b2de0b642277474778d0122
size 225280
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:048a09900055de40df61eee3fda1e65e68e438c32548c1e4bbcc1ef58568a176
size 184320
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e6e9f552d4732adc2c255b1f2cdb1d6f45f8cfceacda8bfdda613dda822f2fe3
size 16384
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a63b81662448a67d649465a56862a5ffd9af86499d7807653f865ff6606cf504
size 163840
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.
Binary file not shown.
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:937c6376f219ef071b29d0579134554bf41caeef7cce9e1f124ec55feeae6024
size 102400
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9dc61a33ba5c7136b12828208a4c095c07d8678e121143e77785ab66e703a6eb
size 122880
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:384deabb9fa4fad920607238b63a9f336a6819e95dd2fa4d5e3b809dff43c037
size 61440
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f9b406f332db22b53b3b943e26b1833263b7ffbdce8e1516681208eeefff54b4
size 49152
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:89246001e53747ba9ee22a32761df8e8eec25fe575df8619820dac8fe7d2af8d
size 114688
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1900d9b85f2c5016c9aa9dce8ad3ea0af6ad29ade24144bb6bd2c2a715997aff
size 45056

Some files were not shown because too many files have changed in this diff Show More