Skip to content

Commit

Permalink
cookie jar shenanigans
Browse files Browse the repository at this point in the history
  • Loading branch information
IchHabeHunger54 committed Mar 5, 2024
1 parent 578295a commit 554613d
Show file tree
Hide file tree
Showing 28 changed files with 338 additions and 9 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// 1.20.4 2024-02-29T22:46:48.1169256 Loot Tables
// 1.20.4 2024-03-06T00:41:06.6775135 Loot Tables
de27c2af93e5cab5a9d4b946062ded6257a7e5d7 data/bibliocraft/loot_tables/blocks/acacia_bookcase.json
76ad281e44358ad5de5d4b8120b7b1de0742103a data/bibliocraft/loot_tables/blocks/acacia_fancy_armor_stand.json
318a3b2f6a21fbd5812a8d9262c53207f8fc71e0 data/bibliocraft/loot_tables/blocks/acacia_label.json
Expand Down Expand Up @@ -159,6 +159,7 @@ d67932e824a769ac05262918442c9bd421f88a5a data/bibliocraft/loot_tables/blocks/che
433f8bb0efb18e175b49770c8b59e7c2d86b403d data/bibliocraft/loot_tables/blocks/cherry_shelf.json
e027b902b5f1a0a001d3568b30f8cf23d51b9363 data/bibliocraft/loot_tables/blocks/cherry_table.json
f7f1e67057d25de50e13df8054ece2b2e3a1b1c9 data/bibliocraft/loot_tables/blocks/cherry_tool_rack.json
956f1a72b951e152cc1359066cc26d6c7f25a77d data/bibliocraft/loot_tables/blocks/cookie_jar.json
2e9dffe65bf36260f0132ce67dbaa6981803fc75 data/bibliocraft/loot_tables/blocks/crimson_bookcase.json
fc0caa87ab48b9c7b6857336cb208e89ee043e90 data/bibliocraft/loot_tables/blocks/crimson_fancy_armor_stand.json
99fea180eb693c7c7707e4bee31356c14a097f23 data/bibliocraft/loot_tables/blocks/crimson_label.json
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// 1.20.4 2024-02-29T22:46:48.131033 Recipes
// 1.20.4 2024-03-06T00:41:06.7985133 Recipes
4b0d99f7f8ad3b6d25efd913add7ad2c43782562 data/bibliocraft/advancements/recipes/building_blocks/acacia_bookcase.json
bcab4008a31a765a736701f9350bc541c42c3e11 data/bibliocraft/advancements/recipes/building_blocks/acacia_fancy_armor_stand.json
793b249d2c89d24fc3149266e599d48eddf6b258 data/bibliocraft/advancements/recipes/building_blocks/acacia_label.json
Expand Down Expand Up @@ -503,6 +503,7 @@ b16bafc9b27335cdb855ac6324033a1412e9a623 data/bibliocraft/advancements/recipes/b
464eefce8dfeb9464a5d925fff7be71b380e8076 data/bibliocraft/advancements/recipes/building_blocks/green_warped_seat.json
20b3b99da0d7c0981fe627ec073f483ccea8e3c5 data/bibliocraft/advancements/recipes/building_blocks/green_warped_small_seat_back.json
e0e722c3fc7fd7cfdf6d9db002175d57c13f556e data/bibliocraft/advancements/recipes/building_blocks/green_warped_tall_seat_back.json
dbebdd5ffbfa1925f9c70528ff46deebf2572e4c data/bibliocraft/advancements/recipes/building_blocks/iron_fancy_armor_stand.json
a50eeeaa5487a43296fdcb69a8aee6d4ae8b3a4e data/bibliocraft/advancements/recipes/building_blocks/jungle_bookcase.json
c8a5d2bd61e3c3d200133ef88460a7dd21ee9d71 data/bibliocraft/advancements/recipes/building_blocks/jungle_fancy_armor_stand.json
f754e32327e51d7452b1a506371b4b83b2125e06 data/bibliocraft/advancements/recipes/building_blocks/jungle_label.json
Expand Down Expand Up @@ -1324,6 +1325,7 @@ b8f1e739c665208e6ca84e07a6f7403760bb3ec6 data/bibliocraft/advancements/recipes/b
d9d63cae79d895e741f5a7f29c05483994245c84 data/bibliocraft/advancements/recipes/building_blocks/yellow_warped_seat.json
cac5cf356e5c2ffcb5d2d619bdb96c8b67081d68 data/bibliocraft/advancements/recipes/building_blocks/yellow_warped_small_seat_back.json
47778c307fac204d24b824229f2b6528d8424468 data/bibliocraft/advancements/recipes/building_blocks/yellow_warped_tall_seat_back.json
f8fc40806586e76190152f0c70ab3fd2c635872c data/bibliocraft/advancements/recipes/decorations/cookie_jar.json
6c0d34e3be551f780ed81f1ad2d4730908cc655f data/bibliocraft/advancements/recipes/redstone/redstone_book.json
2ff19c78d83abf77878ba97461d9b326db8597a1 data/bibliocraft/recipes/acacia_bookcase.json
e3c48e6258684e929fb86964fb7667bfbedb8ce6 data/bibliocraft/recipes/acacia_fancy_armor_stand.json
Expand Down Expand Up @@ -1584,6 +1586,7 @@ eb95cf60fed0b0e41bb1532d3230b7e154db2a7d data/bibliocraft/recipes/cherry_potion_
9e56986c16eaac11dfec437b84a05649af645bc9 data/bibliocraft/recipes/cherry_shelf.json
17156e495559a0d4a2b32da8a07ae37b086b3905 data/bibliocraft/recipes/cherry_table.json
b3b41bf9ded6094102fa4f665228971134a61246 data/bibliocraft/recipes/cherry_tool_rack.json
7fabf961ca7aa7cb7943c006e887551c0c6ddad1 data/bibliocraft/recipes/cookie_jar.json
29d169317d7b247b29d6a1858a44c0eed1fefac5 data/bibliocraft/recipes/crimson_bookcase.json
485f28e6ea33255d3ee1ae8848613b1aaa612949 data/bibliocraft/recipes/crimson_fancy_armor_stand.json
af6e70686d92b04155ab31386dda28640365d3c1 data/bibliocraft/recipes/crimson_label.json
Expand Down Expand Up @@ -1829,6 +1832,7 @@ c2c953c0f96ad3e1e6b0721dc115823b82ec05fc data/bibliocraft/recipes/green_warped_f
01c1802996f0bd2c9c92d645966fe5acab17aa4a data/bibliocraft/recipes/green_warped_seat.json
ff8088960b434ce90f5fccb37668bb007a9b8577 data/bibliocraft/recipes/green_warped_small_seat_back.json
bfa20fc5390ab95c778a9af5cf669f994f9177d4 data/bibliocraft/recipes/green_warped_tall_seat_back.json
2c0b41ab6de913bf2d2b0e89c72d123cfdf77228 data/bibliocraft/recipes/iron_fancy_armor_stand.json
08afd030a69ed07b37e5de26b0bf22e55beefadc data/bibliocraft/recipes/jungle_bookcase.json
1d57b0888250f1480d9a580ee8a91563505b3e54 data/bibliocraft/recipes/jungle_fancy_armor_stand.json
562f5d18c2cc36f924fc0365f65ced09d4b623ff data/bibliocraft/recipes/jungle_label.json
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// 1.20.4 2024-02-29T21:48:16.3195564 Item Models: bibliocraft
// 1.20.4 2024-03-06T00:41:06.7045134 Item Models: bibliocraft
36c2ae88060a10b2ba6510d8a8dcbdb484c8f69c assets/bibliocraft/models/item/acacia_bookcase.json
a785a9553cc8751ab507ae037fdaaac40d0ca475 assets/bibliocraft/models/item/acacia_fancy_armor_stand.json
36e85fc9a78d924c13cb53669ed5d5544119084a assets/bibliocraft/models/item/acacia_label.json
Expand Down Expand Up @@ -258,6 +258,7 @@ b08fe8136cc085c878bed8d9acb6db06593f0bb4 assets/bibliocraft/models/item/brown_wa
8e76dca2c6d35ed0af807eddbd53965ecc94966d assets/bibliocraft/models/item/cherry_shelf.json
280b032d3408fc00c3bded61f574b9ddc175fd73 assets/bibliocraft/models/item/cherry_table.json
b0ef7c64f4be72952c949e9ed177b5123ab303e6 assets/bibliocraft/models/item/cherry_tool_rack.json
dec223724e1344f80c230608a3e872d66d764d76 assets/bibliocraft/models/item/cookie_jar.json
22c99e89d234181c3f87fe58171ae9d25ab0b877 assets/bibliocraft/models/item/crimson_bookcase.json
78059d6311d3e675a8eeb38824f1eaa3d687b7f8 assets/bibliocraft/models/item/crimson_fancy_armor_stand.json
b7e5ba91d78cd225241444a606ab035a65320333 assets/bibliocraft/models/item/crimson_label.json
Expand Down
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
// 1.20.4 2024-02-29T22:46:48.1139267 Languages: en_us for mod: bibliocraft
04c2175c0949d9d40b69d00181ff0275232cc453 assets/bibliocraft/lang/en_us.json
// 1.20.4 2024-03-06T00:41:06.6735142 Languages: en_us for mod: bibliocraft
73a36a9f7643fa5bbe7e49d8d1a13030212eb19f assets/bibliocraft/lang/en_us.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// 1.20.4 2024-02-29T21:48:16.4325468 Block States: bibliocraft
// 1.20.4 2024-03-06T00:41:06.964533 Block States: bibliocraft
659072bd1b446090a3a10a19573cba259369019e assets/bibliocraft/blockstates/acacia_bookcase.json
d058f1fedcbf3371725ec1f3c766558f2050448e assets/bibliocraft/blockstates/acacia_fancy_armor_stand.json
e70228355b54ccf1cdeea621bc1ddd9b614ef4ef assets/bibliocraft/blockstates/acacia_label.json
Expand Down Expand Up @@ -159,6 +159,7 @@ db99734edbccd791aceb93f5fa2e9d2a74ec7434 assets/bibliocraft/blockstates/cherry_l
d6f89cfc51586affa53edaa9ec90f17f937b2ae9 assets/bibliocraft/blockstates/cherry_shelf.json
8602d6b2e261788e32f3e7724bcd355e876c47c7 assets/bibliocraft/blockstates/cherry_table.json
d69e2036f9f7d6d88478a57778e3999534eed96c assets/bibliocraft/blockstates/cherry_tool_rack.json
4e7f232492cfe1c50a31f35e363ccff87e1912db assets/bibliocraft/blockstates/cookie_jar.json
2c037a0256bf6f07807701a133cda05c12873b57 assets/bibliocraft/blockstates/crimson_bookcase.json
01be71b76805c8c9bac1a95a67811f8d8d9d2f03 assets/bibliocraft/blockstates/crimson_fancy_armor_stand.json
8c234b3b8d2650f5a88467b59adf49c130165bb0 assets/bibliocraft/blockstates/crimson_label.json
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"variants": {
"open=false,waterlogged=false": {
"model": "bibliocraft:block/template/cookie_jar"
},
"open=false,waterlogged=true": {
"model": "bibliocraft:block/template/cookie_jar"
},
"open=true,waterlogged=false": {
"model": "bibliocraft:block/template/cookie_jar_open"
},
"open=true,waterlogged=true": {
"model": "bibliocraft:block/template/cookie_jar_open"
}
}
}
2 changes: 2 additions & 0 deletions src/generated/resources/assets/bibliocraft/lang/en_us.json
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@
"block.bibliocraft.cherry_shelf": "Cherry Shelf",
"block.bibliocraft.cherry_table": "Cherry Table",
"block.bibliocraft.cherry_tool_rack": "Cherry Tool Rack",
"block.bibliocraft.cookie_jar": "Cookie Jar",
"block.bibliocraft.crimson_bookcase": "Crimson Bookcase",
"block.bibliocraft.crimson_fancy_armor_stand": "Crimson Fancy Armor Stand",
"block.bibliocraft.crimson_label": "Crimson Label",
Expand Down Expand Up @@ -783,6 +784,7 @@
"block.bibliocraft.yellow_warped_seat_back": "Yellow Warped Seat Back",
"block.bibliocraft.yellow_warped_wall_display_case": "Yellow Warped Display Case",
"container.bibliocraft.bookcase": "Bookcase",
"container.bibliocraft.cookie_jar": "Cookie Jar",
"container.bibliocraft.fancy_armor_stand": "Armor Stand",
"container.bibliocraft.label": "Label",
"container.bibliocraft.potion_shelf": "Potion Shelf",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"parent": "bibliocraft:block/template/cookie_jar"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_smooth_stone_slab": {
"conditions": {
"items": [
{
"items": [
"minecraft:smooth_stone_slab"
]
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "bibliocraft:iron_fancy_armor_stand"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_the_recipe",
"has_smooth_stone_slab"
]
],
"rewards": {
"recipes": [
"bibliocraft:iron_fancy_armor_stand"
]
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_redstone": {
"conditions": {
"items": [
{
"tag": "forge:dusts/redstone"
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "bibliocraft:cookie_jar"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_the_recipe",
"has_redstone"
]
],
"rewards": {
"recipes": [
"bibliocraft:cookie_jar"
]
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"functions": [
{
"function": "minecraft:copy_name",
"source": "block_entity"
}
],
"name": "bibliocraft:cookie_jar"
}
],
"rolls": 1.0
}
],
"random_sequence": "bibliocraft:blocks/cookie_jar"
}
26 changes: 26 additions & 0 deletions src/generated/resources/data/bibliocraft/recipes/cookie_jar.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"type": "minecraft:crafting_shaped",
"category": "misc",
"key": {
"C": {
"item": "minecraft:cookie"
},
"G": {
"tag": "forge:glass_panes/colorless"
},
"I": {
"tag": "forge:ingots/iron"
},
"R": {
"tag": "forge:dusts/redstone"
}
},
"pattern": [
" I ",
"GCG",
"GRG"
],
"result": {
"item": "bibliocraft:cookie_jar"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"type": "minecraft:crafting_shaped",
"category": "building",
"key": {
"I": {
"tag": "forge:ingots/iron"
},
"S": {
"item": "minecraft:smooth_stone_slab"
}
},
"pattern": [
" I ",
" I ",
"SSS"
],
"result": {
"item": "bibliocraft:iron_fancy_armor_stand"
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,31 @@
package com.github.minecraftschurlimods.bibliocraft.content.cookiejar;

import com.github.minecraftschurlimods.bibliocraft.util.ShapeUtil;
import com.github.minecraftschurlimods.bibliocraft.util.content.BCEntityBlock;
import com.github.minecraftschurlimods.bibliocraft.util.content.BCWaterloggedBlock;
import net.minecraft.core.BlockPos;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.world.Container;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.inventory.ChestMenu;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.entity.BarrelBlockEntity;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.ContainerOpenersCounter;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.StateDefinition;
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
import net.minecraft.world.level.block.state.properties.BooleanProperty;
import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.Shapes;
import net.minecraft.world.phys.shapes.VoxelShape;
import org.jetbrains.annotations.Nullable;

public class CookieJarBlock extends BCWaterloggedBlock {
@SuppressWarnings("deprecation")
public class CookieJarBlock extends BCEntityBlock {
public static final BooleanProperty OPEN = BlockStateProperties.OPEN;
private static final VoxelShape OPEN_SHAPE = ShapeUtil.combine(
Shapes.box(0.125, 0, 0.125, 0.875, 0.625, 0.875),
Shapes.box(0.25, 0.625, 0.25, 0.75, 0.75, 0.75));
Expand All @@ -14,5 +34,23 @@ public class CookieJarBlock extends BCWaterloggedBlock {

public CookieJarBlock(Properties properties) {
super(properties);
registerDefaultState(getStateDefinition().any().setValue(OPEN, false).setValue(WATERLOGGED, false));
}

@Override
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
super.createBlockStateDefinition(builder);
builder.add(OPEN);
}

@Override
public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) {
return state.getValue(OPEN) ? OPEN_SHAPE : CLOSED_SHAPE;
}

@Override
@Nullable
public BlockEntity newBlockEntity(BlockPos pos, BlockState state) {
return new CookieJarBlockEntity(pos, state);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,66 @@
import com.github.minecraftschurlimods.bibliocraft.init.BCBlockEntities;
import com.github.minecraftschurlimods.bibliocraft.util.content.BCMenuBlockEntity;
import net.minecraft.core.BlockPos;
import net.minecraft.world.Container;
import net.minecraft.world.entity.player.Inventory;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.inventory.AbstractContainerMenu;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.BarrelBlock;
import net.minecraft.world.level.block.entity.ContainerOpenersCounter;
import net.minecraft.world.level.block.state.BlockState;

import java.util.Objects;

public class CookieJarBlockEntity extends BCMenuBlockEntity {
private final ContainerOpenersCounter openersCounter = new ContainerOpenersCounter() {
@Override
protected void onOpen(Level level, BlockPos pos, BlockState state) {
CookieJarBlockEntity.this.updateBlockState(state, true);
}

@Override
protected void onClose(Level level, BlockPos pos, BlockState state) {
CookieJarBlockEntity.this.updateBlockState(state, false);
}

@Override
protected void openerCountChanged(Level level, BlockPos pos, BlockState state, int count, int openCount) {
}

@Override
protected boolean isOwnContainer(Player player) {
if (player.containerMenu instanceof CookieJarMenu) {
Container container = ((CookieJarMenu) player.containerMenu).getBlockEntity();
return container == CookieJarBlockEntity.this;
} else return false;
}
};

public CookieJarBlockEntity(BlockPos pos, BlockState state) {
super(BCBlockEntities.COOKIE_JAR.get(), 8, defaultName("cookie_jar"), pos, state);
}

@Override
protected AbstractContainerMenu createMenu(int id, Inventory inventory) {
return null;
return new CookieJarMenu(id, inventory, this);
}

private void updateBlockState(BlockState pState, boolean pOpen) {
Objects.requireNonNull(level).setBlock(getBlockPos(), pState.setValue(BarrelBlock.OPEN, pOpen), 3);
}

@Override
public void startOpen(Player pPlayer) {
if (!this.remove && !pPlayer.isSpectator()) {
this.openersCounter.incrementOpeners(pPlayer, Objects.requireNonNull(level), this.getBlockPos(), this.getBlockState());
}
}

@Override
public void stopOpen(Player pPlayer) {
if (!this.remove && !pPlayer.isSpectator()) {
this.openersCounter.decrementOpeners(pPlayer, Objects.requireNonNull(level), this.getBlockPos(), this.getBlockState());
}
}
}
Loading

0 comments on commit 554613d

Please sign in to comment.