Skip to content

Commit 8fb55ee

Browse files
committed
dust drop fixes
1 parent 7d58f5a commit 8fb55ee

File tree

9 files changed

+146
-3
lines changed

9 files changed

+146
-3
lines changed

src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e

+8
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1+
<<<<<<< Updated upstream
12
// 1.20.1 2024-09-07T19:29:24.7369347 Recipes
3+
=======
4+
// 1.20.1 2024-10-10T23:57:18.3485479 Recipes
5+
>>>>>>> Stashed changes
26
c27d3499944bf522a573dc8987582db2d7349b41 data/oreganized/advancements/recipes/brewing/poisonous_potato_from_lead.json
37
ee5e42ab2e9ac549022fadf1c2cbf9faebc2c53c data/oreganized/advancements/recipes/building_blocks/black_crystal_glass_pane.json
48
40700c3f2f5c78c617650fdd16e2ba248967353f data/oreganized/advancements/recipes/building_blocks/blue_crystal_glass_pane.json
@@ -176,6 +180,10 @@ db731a127ba3046ceee5ae0e2f6e86d5d01504b2 data/oreganized/recipes/electrum_pickax
176180
facfd8f07459c400bb70163f4867e70d66652787 data/oreganized/recipes/electrum_shovel.json
177181
cf15ffd760d39ce405ab20a1a677b1798ae80437 data/oreganized/recipes/electrum_sword.json
178182
4a09ce0c226b618b61938286b85395b81ecb3efb data/oreganized/recipes/electrum_upgrade_smithing_template.json
183+
<<<<<<< Updated upstream
184+
=======
185+
d68f51c4e7cbe030b9d3767eb034a19dd16849b1 data/oreganized/recipes/flint_and_pewter.json
186+
>>>>>>> Stashed changes
179187
1fe4c5cc425db61412f873704d046425f07198e0 data/oreganized/recipes/gargoyle.json
180188
00290f492ce615c61417079534a6aa00d08c3157 data/oreganized/recipes/glance.json
181189
6b6c7d006b274224fdd9b469859e18aaf20040ff data/oreganized/recipes/glance_bricks.json

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

+4
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,10 @@
138138
"item.oreganized.electrum_shield": "Electrum Shield",
139139
"item.oreganized.electrum_shovel": "Electrum Shovel",
140140
"item.oreganized.electrum_sword": "Electrum Sword",
141+
<<<<<<< Updated upstream
142+
=======
143+
"item.oreganized.flint_and_pewter": "Flint and Pewter",
144+
>>>>>>> Stashed changes
141145
"item.oreganized.lead_bolt": "Lead Bolt",
142146
"item.oreganized.lead_ingot": "Lead Ingot",
143147
"item.oreganized.lead_nugget": "Lead Nugget",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"type": "minecraft:crafting_shapeless",
3+
"category": "equipment",
4+
"ingredients": [
5+
{
6+
"tag": "forge:ingots/lead"
7+
},
8+
{
9+
"item": "minecraft:flint"
10+
}
11+
],
12+
"result": {
13+
"item": "oreganized:flint_and_pewter"
14+
}
15+
}

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

+3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.google.common.collect.ImmutableBiMap;
44
import com.mojang.serialization.Codec;
5+
import com.teamabnormals.blueprint.common.dispenser.FishBucketDispenseItemBehavior;
56
import com.teamabnormals.blueprint.core.util.DataUtil;
67
import com.teamabnormals.blueprint.core.util.registry.RegistryHelper;
78
import galena.oreganized.compat.create.CreateCompat;
@@ -213,6 +214,8 @@ protected Projectile getProjectile(Level level, Position pos, ItemStack stack) {
213214
}
214215
});
215216

217+
DispenserBlock.registerBehavior(OItems.MOLTEN_LEAD_BUCKET.get(), new FishBucketDispenseItemBehavior());
218+
216219
Stream.of("lead_bolt_crates1", "lead_bolt_crates2").forEach(name -> {
217220
DataUtil.addToJigsawPattern(new ResourceLocation("pillager_outpost/features"), $ -> {
218221
return StructurePoolElement.legacy(Oreganized.MOD_ID + ":pillager_outpost/" + name).apply(StructureTemplatePool.Projection.RIGID);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package galena.oreganized.client.particle;
2+
3+
import net.minecraft.client.multiplayer.ClientLevel;
4+
import net.minecraft.client.particle.ExplodeParticle;
5+
import net.minecraft.client.particle.Particle;
6+
import net.minecraft.client.particle.ParticleProvider;
7+
import net.minecraft.client.particle.SpriteSet;
8+
import net.minecraft.core.particles.SimpleParticleType;
9+
import org.jetbrains.annotations.Nullable;
10+
11+
public class LeadCloudParticleProvider implements ParticleProvider<SimpleParticleType> {
12+
13+
private final ParticleProvider<SimpleParticleType> inner;
14+
15+
public LeadCloudParticleProvider(SpriteSet sprites) {
16+
inner = new ExplodeParticle.Provider(sprites);
17+
}
18+
19+
@Override
20+
public @Nullable Particle createParticle(SimpleParticleType type, ClientLevel level, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) {
21+
if (level.random.nextInt(8) != 0) return null;
22+
return inner.createParticle(type, level, x, y, z, xSpeed, ySpeed, zSpeed);
23+
}
24+
}

src/main/java/galena/oreganized/content/block/LeadOreBlock.java

+43
Original file line numberDiff line numberDiff line change
@@ -73,4 +73,47 @@ protected boolean shouldSpawnCloud(BlockState state, LevelAccessor level, BlockP
7373
return true;
7474
}
7575

76+
public static AreaEffectCloud spawnCloud(Level level, BlockPos pos, float size) {
77+
var vec = Vec3.atCenterOf(pos);
78+
var cloud = new AreaEffectCloud(level, vec.x, vec.y, vec.z);
79+
80+
getEffects(Math.max(1, (int) (size))).forEach(cloud::addEffect);
81+
82+
cloud.setParticle(OParticleTypes.LEAD_CLOUD.get());
83+
cloud.setRadius(1.5F * size);
84+
cloud.setRadiusPerTick(-0.02F);
85+
cloud.setDuration((int) (120 * size));
86+
87+
level.addFreshEntity(cloud);
88+
return cloud;
89+
}
90+
91+
public static void blowParticles(LevelAccessor level, BlockPos pos, Direction facing, int maxDistance) {
92+
var speed = 0.5;
93+
maxDistance = Math.min(maxDistance, 8);
94+
95+
for (int distance = 1; distance < maxDistance; distance++) {
96+
var frontPos = pos.relative(facing, distance);
97+
var frontState = level.getBlockState(frontPos);
98+
99+
if (frontState.getBlock() instanceof LeadOreBlock) {
100+
var vec = Vec3.atCenterOf(frontPos);
101+
level.addParticle(OParticleTypes.LEAD_BLOW.get(),
102+
vec.x, vec.y, vec.z,
103+
facing.getStepX() * speed, facing.getStepY() * speed, facing.getStepZ() * speed
104+
);
105+
106+
var targets = level.getEntitiesOfClass(LivingEntity.class, new AABB(frontPos, pos.relative(facing, maxDistance)).expandTowards(1, 1, 1));
107+
108+
targets.forEach(target -> {
109+
getEffects(1)
110+
.filter(it -> !target.hasEffect(it.getEffect()))
111+
.forEach(target::addEffect);
112+
});
113+
114+
return;
115+
}
116+
}
117+
}
118+
76119
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package galena.oreganized.content.item;
2+
3+
import galena.oreganized.content.block.LeadOreBlock;
4+
import galena.oreganized.index.OParticleTypes;
5+
import net.minecraft.sounds.SoundEvents;
6+
import net.minecraft.sounds.SoundSource;
7+
import net.minecraft.world.InteractionResult;
8+
import net.minecraft.world.item.Item;
9+
import net.minecraft.world.item.context.UseOnContext;
10+
11+
public class FlintAndPewterItem extends Item {
12+
13+
public FlintAndPewterItem(Properties properties) {
14+
super(properties);
15+
}
16+
17+
@Override
18+
public InteractionResult useOn(UseOnContext context) {
19+
var level = context.getLevel();
20+
var player = context.getPlayer();
21+
var pos = context.getClickedPos().relative(context.getClickedFace());
22+
23+
level.playSound(player, pos, SoundEvents.FLINTANDSTEEL_USE, SoundSource.BLOCKS, 1.0F, level.getRandom().nextFloat() * 0.4F + 0.4F);
24+
25+
var cloud = LeadOreBlock.spawnCloud(level, pos, 1F);
26+
cloud.setWaitTime(0);
27+
28+
var vec = context.getClickLocation();
29+
30+
for (int i = 0; i < 6; i++) {
31+
level.addParticle(
32+
OParticleTypes.LEAD_BLOW.get(),
33+
vec.x, vec.y, vec.z,
34+
level.random.nextDouble() * 0.2 - 0.1, level.random.nextDouble() * 0.2 - 0.1, level.random.nextDouble() * 0.2 - 0.1
35+
);
36+
}
37+
38+
if (player != null) {
39+
context.getItemInHand().hurtAndBreak(1, player, it -> {
40+
it.broadcastBreakEvent(context.getHand());
41+
});
42+
}
43+
44+
return InteractionResult.sidedSuccess(level.isClientSide());
45+
}
46+
}

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package galena.oreganized.data;
22

3-
import com.google.common.collect.Lists;
43
import galena.oreganized.Oreganized;
54
import galena.oreganized.data.provider.OLangProvider;
65
import galena.oreganized.index.OBlocks;
@@ -15,7 +14,6 @@
1514
import net.minecraft.world.level.block.Block;
1615
import net.minecraft.world.level.material.Fluid;
1716

18-
import java.util.List;
1917
import java.util.function.Supplier;
2018

2119
public class OLang extends OLangProvider {
@@ -69,6 +67,8 @@ protected void addTranslations() {
6967

7068
add("attribute.oreganized.kinetic_damage", "Kinetic Damage");
7169

70+
add("item.oreganized.flint_and_pewter", "Flint and Pewter");
71+
7272
/*
7373
Automatically create translations for blocks and items based on their registry name.
7474

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public class OBlocks {
7777

7878
// Storage Blocks
7979
public static final RegistryObject<Block> RAW_SILVER_BLOCK = register("raw_silver_block", () -> new Block(BlockBehaviour.Properties.copy(Blocks.RAW_IRON_BLOCK)));
80-
public static final RegistryObject<Block> RAW_LEAD_BLOCK = register("raw_lead_block", () -> new Block(BlockBehaviour.Properties.copy(Blocks.RAW_IRON_BLOCK)));
80+
public static final RegistryObject<Block> RAW_LEAD_BLOCK = register("raw_lead_block", () -> new LeadOreBlock(BlockBehaviour.Properties.copy(Blocks.RAW_IRON_BLOCK)));
8181
public static final RegistryObject<Block> SILVER_BLOCK = register("silver_block", () -> new SilverBlock(BlockBehaviour.Properties.of()
8282
.strength(5.0F, 6.0F).sound(SoundType.METAL)));
8383

0 commit comments

Comments
 (0)