Skip to content

Commit 598dbb1

Browse files
committed
add grooved ice
1 parent 5ccf574 commit 598dbb1

25 files changed

+222
-21
lines changed

src/generated/resources/.cache/002701d48eee4c36b62b24b011e74b0624793d05

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// 1.20.1 2024-07-22T22:02:00.7111198 oreganized Block States
1+
// 1.20.1 2024-09-10T14:28:17.9625293 oreganized Block States
22
d85b0fb9e5cad1d9c4f22ed192b0fa621ee3373c assets/oreganized/blockstates/black_crystal_glass.json
33
05bb006ff7f48557fe5c5333bc120f7206052717 assets/oreganized/blockstates/black_crystal_glass_pane.json
44
5e5002e9c77ee7221425eeacce8834af484db877 assets/oreganized/blockstates/blue_crystal_glass.json
@@ -25,6 +25,9 @@ d9cf1c07d030b2f6303c81035e0037cb0c7c660e assets/oreganized/blockstates/glance_wa
2525
c72a5228ef929553df57844bee603f560e737100 assets/oreganized/blockstates/gray_crystal_glass_pane.json
2626
8e259fefeef23ef07a4f72a5a22c47b99d65859f assets/oreganized/blockstates/green_crystal_glass.json
2727
0f0f5654a1123c1bfa032e813f1f6cff21ec1dcb assets/oreganized/blockstates/green_crystal_glass_pane.json
28+
381580fe541332a18ae1a9efa69fb53201b66140 assets/oreganized/blockstates/grooved_blue_ice.json
29+
cd524e91f5482d84fea6e9352cdffb3d3ad1ec23 assets/oreganized/blockstates/grooved_ice.json
30+
fcaefc29cf8c2a1dc8707623a2148406e2df6df3 assets/oreganized/blockstates/grooved_packed_ice.json
2831
c9995beec5545d6c6c41d8323c65ae06bbea0cbe assets/oreganized/blockstates/lead_bars.json
2932
121e6d2788d907261435fceb5c2ed9aec2947965 assets/oreganized/blockstates/lead_block.json
3033
d43efacf05b2229ee7dad465c3ad83df616ab763 assets/oreganized/blockstates/lead_bolt_crate.json
@@ -276,6 +279,9 @@ f06c23bb719390bafdc75bda45d27d754cf5ca88 assets/oreganized/models/block/green_cr
276279
5dea33a075a76c327a95d404e83859280d1678ad assets/oreganized/models/block/green_crystal_glass_pane_side_out.json
277280
526a594c52b1fd25b57124861bb247fd4fc32814 assets/oreganized/models/block/green_crystal_glass_pane_side_rot.json
278281
0771143da48d3d7a50bd6bf5beb62fa778397c48 assets/oreganized/models/block/green_crystal_glass_rot.json
282+
6ac43f4b7a86ba2b1a3638637108659d12dfb006 assets/oreganized/models/block/grooved_blue_ice.json
283+
ff530b321353ded30d649ead0668faa2bcfe16a9 assets/oreganized/models/block/grooved_ice.json
284+
2a0395c97d8caca1311c8b5181b324c228af84d7 assets/oreganized/models/block/grooved_packed_ice.json
279285
cb3cc16c959785c50d6228a4ae538019643d4954 assets/oreganized/models/block/lead_bars_cap.json
280286
be4d3f74e1f26b375a898571e38750510f450038 assets/oreganized/models/block/lead_bars_cap_alt.json
281287
d2e7a7bcc18d80e85ad8d72e84ab19a631e321d0 assets/oreganized/models/block/lead_bars_post.json

src/generated/resources/.cache/4d87f6c700406347abbc935fa7e5d5e893a595b5

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// 1.20.1 2024-08-28T12:35:31.5287616 oreganized Item Models
1+
// 1.20.1 2024-09-10T14:28:17.9851553 oreganized Item Models
22
18fcb236eeab67fa16a0014d9af5ba7dd6f9e7c8 assets/oreganized/models/item/black_crystal_glass.json
33
30bbb36792cb2d3f0a8a399f25238120cdf7e659 assets/oreganized/models/item/black_crystal_glass_pane.json
44
8dcab59e8c34403761c4aec2c3357b7db80b3f0b assets/oreganized/models/item/blue_crystal_glass.json
@@ -83,6 +83,9 @@ bbe691c708914b9faf9bade0d70192b5fe4eaebb assets/oreganized/models/item/glance_st
8383
620d7f2b29b528e35dc4bd1ba7caf47fea81e005 assets/oreganized/models/item/gray_crystal_glass_pane.json
8484
be766846cf1dac197488418054a28488724b45db assets/oreganized/models/item/green_crystal_glass.json
8585
0d2774c3473576f2f0e28ec4eaf9c9adaeca3e00 assets/oreganized/models/item/green_crystal_glass_pane.json
86+
980a1d284d8ad09fb8a3cd3f6de11a5150e48a60 assets/oreganized/models/item/grooved_blue_ice.json
87+
0a9bb963b90f719437cc2208e8a61ac1ea12d07d assets/oreganized/models/item/grooved_ice.json
88+
0253c31f06cd51dcace95b3f958e2fa2e98bc954 assets/oreganized/models/item/grooved_packed_ice.json
8689
55b5268d1200536fb742606ae34dd2a149e6d5be assets/oreganized/models/item/lead_bars.json
8790
41e56017441ac21af8e8b9bb05b61e1cf4fbd035 assets/oreganized/models/item/lead_block.json
8891
ae57922ed2f7a86f2f2228c54fe277a743a93000 assets/oreganized/models/item/lead_bolt.json
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"variants": {
3+
"": {
4+
"model": "oreganized:block/grooved_blue_ice"
5+
}
6+
}
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"variants": {
3+
"": {
4+
"model": "oreganized:block/grooved_ice"
5+
}
6+
}
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"variants": {
3+
"": {
4+
"model": "oreganized:block/grooved_packed_ice"
5+
}
6+
}
7+
}

src/generated/resources/assets/oreganized/lang/en_us.json

+3
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@
3737
"block.oreganized.gray_crystal_glass_pane": "Gray Crystal Glass Pane",
3838
"block.oreganized.green_crystal_glass": "Green Crystal Glass",
3939
"block.oreganized.green_crystal_glass_pane": "Green Crystal Glass Pane",
40+
"block.oreganized.grooved_blue_ice": "Grooved Blue Ice",
41+
"block.oreganized.grooved_ice": "Grooved Ice",
42+
"block.oreganized.grooved_packed_ice": "Grooved Packed Ice",
4043
"block.oreganized.lead_bars": "Lead Bars",
4144
"block.oreganized.lead_block": "Block of Lead",
4245
"block.oreganized.lead_bolt_crate": "Crate of Lead Bolts",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"parent": "minecraft:block/cube_all",
3+
"textures": {
4+
"all": "oreganized:block/grooved_blue_ice"
5+
}
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"parent": "minecraft:block/cube_all",
3+
"textures": {
4+
"all": "oreganized:block/grooved_ice"
5+
}
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"parent": "minecraft:block/cube_all",
3+
"textures": {
4+
"all": "oreganized:block/grooved_packed_ice"
5+
}
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"parent": "oreganized:block/grooved_blue_ice"
3+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"parent": "oreganized:block/grooved_ice"
3+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"parent": "oreganized:block/grooved_packed_ice"
3+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{
2+
"type": "minecraft:block",
3+
"pools": [
4+
{
5+
"bonus_rolls": 0.0,
6+
"conditions": [
7+
{
8+
"condition": "minecraft:match_tool",
9+
"predicate": {
10+
"enchantments": [
11+
{
12+
"enchantment": "minecraft:silk_touch",
13+
"levels": {
14+
"min": 1
15+
}
16+
}
17+
]
18+
}
19+
}
20+
],
21+
"entries": [
22+
{
23+
"type": "minecraft:item",
24+
"name": "oreganized:grooved_blue_ice"
25+
}
26+
],
27+
"rolls": 1.0
28+
}
29+
],
30+
"random_sequence": "oreganized:blocks/grooved_blue_ice"
31+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{
2+
"type": "minecraft:block",
3+
"pools": [
4+
{
5+
"bonus_rolls": 0.0,
6+
"conditions": [
7+
{
8+
"condition": "minecraft:match_tool",
9+
"predicate": {
10+
"enchantments": [
11+
{
12+
"enchantment": "minecraft:silk_touch",
13+
"levels": {
14+
"min": 1
15+
}
16+
}
17+
]
18+
}
19+
}
20+
],
21+
"entries": [
22+
{
23+
"type": "minecraft:item",
24+
"name": "oreganized:grooved_ice"
25+
}
26+
],
27+
"rolls": 1.0
28+
}
29+
],
30+
"random_sequence": "oreganized:blocks/grooved_ice"
31+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{
2+
"type": "minecraft:block",
3+
"pools": [
4+
{
5+
"bonus_rolls": 0.0,
6+
"conditions": [
7+
{
8+
"condition": "minecraft:match_tool",
9+
"predicate": {
10+
"enchantments": [
11+
{
12+
"enchantment": "minecraft:silk_touch",
13+
"levels": {
14+
"min": 1
15+
}
16+
}
17+
]
18+
}
19+
}
20+
],
21+
"entries": [
22+
{
23+
"type": "minecraft:item",
24+
"name": "oreganized:grooved_packed_ice"
25+
}
26+
],
27+
"rolls": 1.0
28+
}
29+
],
30+
"random_sequence": "oreganized:blocks/grooved_packed_ice"
31+
}

src/main/java/galena/oreganized/Oreganized.java

+3
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,9 @@ public void buildCreativeModeTabContents(BuildCreativeModeTabContentsEvent event
349349
putAfter(entries, OBlocks.SILVER_ORE.get(), OBlocks.DEEPSLATE_SILVER_ORE);
350350
putAfter(entries, Items.RAW_COPPER_BLOCK, OBlocks.RAW_LEAD_BLOCK);
351351
putAfter(entries, Items.RAW_GOLD_BLOCK, OBlocks.RAW_SILVER_BLOCK);
352+
putAfter(entries, Blocks.ICE, OBlocks.GROOVED_ICE);
353+
putAfter(entries, Blocks.PACKED_ICE, OBlocks.GROOVED_PACKED_ICE);
354+
putAfter(entries, Blocks.BLUE_ICE, OBlocks.GROOVED_BLUE_ICE);
352355
}
353356
if (tab == CreativeModeTabs.REDSTONE_BLOCKS) {
354357
putBefore(entries, Items.NOTE_BLOCK, OBlocks.GARGOYLE);

src/main/java/galena/oreganized/content/entity/LeadBoltEntity.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ private void damageEntity(EntityHitResult result) {
8282
serverLevel.sendParticles(ParticleTypes.POOF, vec.x, vec.y + 2, vec.z, 4, 0.1, 0.1, 0.1, 0.0);
8383
}
8484

85-
playSound(OSoundEvents.BOLT_HIT_ARMOR.get(), 1.0F, 1.2F / (random.nextFloat() * 0.2F + 0.9F));
85+
playSound(OSoundEvents.BOLT_HIT_ARMOR.get(), 1.5F, 1.2F / (random.nextFloat() * 0.2F + 0.9F));
8686
if (knockedOff.getItem() instanceof Equipable item) {
8787
playSound(item.getEquipSound());
8888
}

src/main/java/galena/oreganized/content/item/ScribeItem.java

+47-18
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package galena.oreganized.content.item;
22

33
import galena.oreganized.content.block.ICrystalGlass;
4+
import galena.oreganized.index.OBlocks;
45
import net.minecraft.core.BlockPos;
56
import net.minecraft.core.particles.BlockParticleOption;
67
import net.minecraft.core.particles.ParticleTypes;
@@ -15,15 +16,33 @@
1516
import net.minecraft.world.item.enchantment.Enchantment;
1617
import net.minecraft.world.item.enchantment.EnchantmentCategory;
1718
import net.minecraft.world.level.Level;
19+
import net.minecraft.world.level.block.Block;
20+
import net.minecraft.world.level.block.Blocks;
1821
import net.minecraft.world.level.block.state.BlockState;
1922
import net.minecraft.world.level.gameevent.GameEvent;
2023
import net.minecraft.world.phys.Vec3;
2124

25+
import java.util.HashMap;
26+
import java.util.Map;
27+
import java.util.function.Supplier;
28+
2229
import static galena.oreganized.index.OTags.Blocks.MINEABLE_WITH_SCRIBE;
2330
import static galena.oreganized.index.OTags.Blocks.SILKTOUCH_WITH_SCRIBE;
2431

2532
public class ScribeItem extends Item {
2633

34+
private static final Map<Block, Supplier<Block>> GROOVED_BLOCKS = new HashMap<>();
35+
36+
public static void registerGroovedBlock(Block from, Supplier<Block> to) {
37+
GROOVED_BLOCKS.put(from, to);
38+
}
39+
40+
static {
41+
registerGroovedBlock(Blocks.ICE, OBlocks.GROOVED_ICE);
42+
registerGroovedBlock(Blocks.PACKED_ICE, OBlocks.GROOVED_PACKED_ICE);
43+
registerGroovedBlock(Blocks.BLUE_ICE, OBlocks.GROOVED_BLUE_ICE);
44+
}
45+
2746
public ScribeItem(Properties properties) {
2847
super(properties);
2948
}
@@ -65,31 +84,41 @@ public boolean canApplyAtEnchantingTable(ItemStack stack, Enchantment enchantmen
6584
return super.canApplyAtEnchantingTable(stack, enchantment);
6685
}
6786

68-
@Override
69-
public InteractionResult useOn(UseOnContext context) {
70-
var pos = context.getClickedPos();
87+
private InteractionResult replaceBlock(UseOnContext context, BlockState to) {
7188
var level = context.getLevel();
72-
var state = level.getBlockState(pos);
89+
var pos = context.getClickedPos();
90+
var from = level.getBlockState(pos);
7391

74-
if (state.hasProperty(ICrystalGlass.TYPE)) {
75-
var type = state.getValue(ICrystalGlass.TYPE);
92+
level.setBlockAndUpdate(pos, to);
93+
level.gameEvent(GameEvent.BLOCK_CHANGE, pos, GameEvent.Context.of(context.getPlayer(), from));
94+
level.addDestroyBlockEffect(pos, from);
95+
96+
var vec = Vec3.atCenterOf(pos);
97+
level.addParticle(new BlockParticleOption(ParticleTypes.BLOCK, from), vec.x, vec.y + 1, vec.z, 0.0, 0.0, 0.0);
7698

77-
level.setBlockAndUpdate(pos, state.setValue(ICrystalGlass.TYPE, (type + 1) % (ICrystalGlass.MAX_TYPE + 1)));
78-
level.gameEvent(GameEvent.BLOCK_CHANGE, pos, GameEvent.Context.of(context.getPlayer(), state));
79-
level.addDestroyBlockEffect(pos, state);
99+
if (context.getPlayer() != null) {
100+
context.getPlayer().playSound(SoundEvents.GRINDSTONE_USE, 1F, 1.5F);
80101

81-
var vec = Vec3.atCenterOf(pos);
82-
level.addParticle(new BlockParticleOption(ParticleTypes.BLOCK, state), vec.x, vec.y + 1, vec.z, 0.0, 0.0, 0.0);
102+
context.getItemInHand().hurtAndBreak(1, context.getPlayer(), player -> {
103+
player.broadcastBreakEvent(context.getHand());
104+
});
105+
}
83106

84-
if (context.getPlayer() != null) {
85-
context.getPlayer().playSound(SoundEvents.GRINDSTONE_USE, 1F, 1.5F);
107+
return InteractionResult.sidedSuccess(level.isClientSide);
108+
}
86109

87-
context.getItemInHand().hurtAndBreak(1, context.getPlayer(), player -> {
88-
player.broadcastBreakEvent(context.getHand());
89-
});
90-
}
110+
@Override
111+
public InteractionResult useOn(UseOnContext context) {
112+
var state = context.getLevel().getBlockState(context.getClickedPos());
113+
114+
if (state.hasProperty(ICrystalGlass.TYPE)) {
115+
var type = state.getValue(ICrystalGlass.TYPE);
116+
return replaceBlock(context, state.setValue(ICrystalGlass.TYPE, (type + 1) % (ICrystalGlass.MAX_TYPE + 1)));
117+
}
91118

92-
return InteractionResult.sidedSuccess(level.isClientSide);
119+
var grooved = GROOVED_BLOCKS.get(state.getBlock());
120+
if (grooved != null) {
121+
return replaceBlock(context, grooved.get().defaultBlockState());
93122
}
94123

95124
return super.useOn(context);

src/main/java/galena/oreganized/data/OBlockStates.java

+4
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,10 @@ protected void registerStatesAndModels() {
107107
crystalGlassBlock(OBlocks.BLACK_CRYSTAL_GLASS);
108108
crystalGlassPaneBlock(OBlocks.BLACK_CRYSTAL_GLASS_PANE, OBlocks.BLACK_CRYSTAL_GLASS);
109109

110+
simpleBlock(OBlocks.GROOVED_ICE);
111+
simpleBlock(OBlocks.GROOVED_PACKED_ICE);
112+
simpleBlock(OBlocks.GROOVED_BLUE_ICE);
113+
110114
gargoyleBlock(OBlocks.GARGOYLE);
111115
}
112116

src/main/java/galena/oreganized/data/OItemModels.java

+4
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,10 @@ protected void registerModels() {
124124
block(OBlocks.BLACK_CRYSTAL_GLASS);
125125
blockFlat(OBlocks.BLACK_CRYSTAL_GLASS_PANE, OBlocks.BLACK_CRYSTAL_GLASS);
126126

127+
block(OBlocks.GROOVED_ICE);
128+
block(OBlocks.GROOVED_PACKED_ICE);
129+
block(OBlocks.GROOVED_BLUE_ICE);
130+
127131
for (Supplier<? extends Block> blocks : OBlocks.WAXED_CONRETE_POWDER) {
128132
withExistingParent(blockName(blocks), "minecraft:block/" + blockName(blocks).replace("waxed_", ""));
129133
}

src/main/java/galena/oreganized/data/OLootTables.java

+4
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,10 @@ protected void generate() {
8383
dropSelf(OBlocks.SHRAPNEL_BOMB);
8484
dropSelf(OBlocks.LEAD_BOLT_CRATE);
8585

86+
dropAsSilk(OBlocks.GROOVED_ICE);
87+
dropAsSilk(OBlocks.GROOVED_PACKED_ICE);
88+
dropAsSilk(OBlocks.GROOVED_BLUE_ICE);
89+
8690
add(OBlocks.LEAD_DOOR.get(), LootTable.lootTable()
8791
.withPool(applyExplosionCondition(OBlocks.LEAD_DOOR.get(), LootPool.lootPool()
8892
.setRolls(ConstantValue.exactly(1.0F))

src/main/java/galena/oreganized/index/OBlocks.java

+4
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,10 @@ private static BlockBehaviour.Properties leadDecoProperties() {
135135
public static final RegistryObject<Block> RED_CRYSTAL_GLASS = register("red_crystal_glass", () -> new CrystalGlassBlock(DyeColor.RED, BlockBehaviour.Properties.copy(Blocks.RED_STAINED_GLASS)));
136136
public static final RegistryObject<Block> BLACK_CRYSTAL_GLASS = register("black_crystal_glass", () -> new CrystalGlassBlock(DyeColor.BLACK, BlockBehaviour.Properties.copy(Blocks.BLACK_STAINED_GLASS)));
137137

138+
public static final RegistryObject<Block> GROOVED_ICE = register("grooved_ice", () -> new Block(BlockBehaviour.Properties.copy(Blocks.ICE).friction(0.6F)));
139+
public static final RegistryObject<Block> GROOVED_PACKED_ICE = register("grooved_packed_ice", () -> new Block(BlockBehaviour.Properties.copy(Blocks.PACKED_ICE).friction(0.6F)));
140+
public static final RegistryObject<Block> GROOVED_BLUE_ICE = register("grooved_blue_ice", () -> new Block(BlockBehaviour.Properties.copy(Blocks.BLUE_ICE).friction(0.6F)));
141+
138142
public static final List<RegistryObject<Block>> CRYSTAL_GLASS = List.of(
139143
WHITE_CRYSTAL_GLASS, ORANGE_CRYSTAL_GLASS, MAGENTA_CRYSTAL_GLASS, LIGHT_BLUE_CRYSTAL_GLASS,
140144
YELLOW_CRYSTAL_GLASS, LIME_CRYSTAL_GLASS, PINK_CRYSTAL_GLASS, GRAY_CRYSTAL_GLASS, LIGHT_GRAY_CRYSTAL_GLASS,
Loading
Loading
Loading

0 commit comments

Comments
 (0)