Skip to content

Commit ecc08fe

Browse files
committed
optimize
1 parent 8bd04a2 commit ecc08fe

23 files changed

Lines changed: 588 additions & 282 deletions

src/main/java/com/adccadc/rust/BlockUtils.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,8 @@ public static void PutChainBlockWithAttribute(World world, Block block, BlockSta
103103
.with(ChainBlock.WATERLOGGED, waterlogged), 0);
104104
}
105105

106-
// 继承PlateBlock属性 各种压力板
107-
public static void PutPlateBlockWithAttribute(World world, Block block, BlockState state, BlockPos pos) {
106+
// 继承WeightedPressurePlateBlock属性 各种测重压力板
107+
public static void PutWeightedPressurePlateBlockWithAttribute(World world, Block block, BlockState state, BlockPos pos) {
108108
Integer power = state.get(WeightedPressurePlateBlock.POWER);
109109

110110
world.setBlockState(pos, block.getDefaultState()
@@ -146,7 +146,7 @@ public static void PutWhichBlockWithAttribute(World world, Block block, BlockSta
146146
case DoorBlock doorBlock -> PutDoorBlockWithAttribute(world, block, state, pos);
147147
case TrapdoorBlock trapdoorBlock -> PutTrapdoorBlockWithAttribute(world, block, state, pos);
148148
case ChainBlock chainBlock -> PutChainBlockWithAttribute(world, block, state, pos);
149-
case WeightedPressurePlateBlock weightedPressurePlateBlock -> PutPlateBlockWithAttribute(world, block, state, pos);
149+
case WeightedPressurePlateBlock weightedPressurePlateBlock -> PutWeightedPressurePlateBlockWithAttribute(world, block, state, pos);
150150
case LeveledCauldronBlock leveledCauldronBlock -> PutLeveledCauldronBlockWithAttribute(world, block, state, pos);
151151
case RailBlock railBlock -> PutRailBlockWithAttribute(world, block, state, pos);
152152
case LanternBlock lanternBlock -> PutLanternBlockWithAttribute(world, block, state, pos);

src/main/java/com/adccadc/rust/OxidizeMap.java

Lines changed: 44 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,79 @@
11
package com.adccadc.rust;
22

33
import com.adccadc.rust.block.Modblocks;
4+
import com.google.common.base.Suppliers;
5+
import com.google.common.collect.BiMap;
6+
import com.google.common.collect.ImmutableBiMap;
47
import net.minecraft.block.Block;
58
import net.minecraft.block.Blocks;
69

710
import java.util.HashMap;
811
import java.util.Map;
12+
import java.util.function.Supplier;
913

1014
public class OxidizeMap {
15+
16+
public static Supplier<BiMap<Block, Block>> MOD_OXIDATION_LEVEL_INCREASES = Suppliers.memoize(() -> ImmutableBiMap.<Block, Block>builder()
17+
.put(Blocks.COPPER_BLOCK, Blocks.EXPOSED_COPPER).put(Blocks.EXPOSED_COPPER, Blocks.WEATHERED_COPPER).put(Blocks.WEATHERED_COPPER, Blocks.OXIDIZED_COPPER)
18+
.put(Blocks.CUT_COPPER, Blocks.EXPOSED_CUT_COPPER).put(Blocks.EXPOSED_CUT_COPPER, Blocks.WEATHERED_CUT_COPPER).put(Blocks.WEATHERED_CUT_COPPER, Blocks.OXIDIZED_CUT_COPPER)
19+
.put(Blocks.CHISELED_COPPER, Blocks.EXPOSED_CHISELED_COPPER).put(Blocks.EXPOSED_CHISELED_COPPER, Blocks.WEATHERED_CHISELED_COPPER).put(Blocks.WEATHERED_CHISELED_COPPER, Blocks.OXIDIZED_CHISELED_COPPER)
20+
.put(Blocks.CUT_COPPER_SLAB, Blocks.EXPOSED_CUT_COPPER_SLAB).put(Blocks.EXPOSED_CUT_COPPER_SLAB, Blocks.WEATHERED_CUT_COPPER_SLAB).put(Blocks.WEATHERED_CUT_COPPER_SLAB, Blocks.OXIDIZED_CUT_COPPER_SLAB)
21+
.put(Blocks.CUT_COPPER_STAIRS, Blocks.EXPOSED_CUT_COPPER_STAIRS).put(Blocks.EXPOSED_CUT_COPPER_STAIRS, Blocks.WEATHERED_CUT_COPPER_STAIRS).put(Blocks.WEATHERED_CUT_COPPER_STAIRS, Blocks.OXIDIZED_CUT_COPPER_STAIRS)
22+
.put(Blocks.COPPER_DOOR, Blocks.EXPOSED_COPPER_DOOR).put(Blocks.EXPOSED_COPPER_DOOR, Blocks.WEATHERED_COPPER_DOOR).put(Blocks.WEATHERED_COPPER_DOOR, Blocks.OXIDIZED_COPPER_DOOR)
23+
.put(Blocks.COPPER_TRAPDOOR, Blocks.EXPOSED_COPPER_TRAPDOOR).put(Blocks.EXPOSED_COPPER_TRAPDOOR, Blocks.WEATHERED_COPPER_TRAPDOOR).put(Blocks.WEATHERED_COPPER_TRAPDOOR, Blocks.OXIDIZED_COPPER_TRAPDOOR)
24+
.put(Blocks.COPPER_GRATE, Blocks.EXPOSED_COPPER_GRATE).put(Blocks.EXPOSED_COPPER_GRATE, Blocks.WEATHERED_COPPER_GRATE).put(Blocks.WEATHERED_COPPER_GRATE, Blocks.OXIDIZED_COPPER_GRATE)
25+
.put(Blocks.COPPER_BULB, Blocks.EXPOSED_COPPER_BULB).put(Blocks.EXPOSED_COPPER_BULB, Blocks.WEATHERED_COPPER_BULB).put(Blocks.WEATHERED_COPPER_BULB, Blocks.OXIDIZED_COPPER_BULB)
26+
.put(Blocks.IRON_BLOCK, Modblocks.EXPOSED_IRON_BLOCK).put(Modblocks.EXPOSED_IRON_BLOCK, Modblocks.WEATHERED_IRON_BLOCK).put(Modblocks.WEATHERED_IRON_BLOCK, Modblocks.OXIDIZED_IRON_BLOCK)
27+
.put(Blocks.IRON_BARS, Modblocks.EXPOSED_IRON_BARS).put(Modblocks.EXPOSED_IRON_BARS, Modblocks.WEATHERED_IRON_BARS).put(Modblocks.WEATHERED_IRON_BARS, Modblocks.OXIDIZED_IRON_BARS)
28+
.put(Blocks.IRON_TRAPDOOR, Modblocks.EXPOSED_IRON_TRAPDOOR).put(Modblocks.EXPOSED_IRON_TRAPDOOR, Modblocks.WEATHERED_IRON_TRAPDOOR).put(Modblocks.WEATHERED_IRON_TRAPDOOR, Modblocks.OXIDIZED_IRON_TRAPDOOR)
29+
.put(Blocks.IRON_DOOR, Modblocks.EXPOSED_IRON_DOOR).put(Modblocks.EXPOSED_IRON_DOOR, Modblocks.WEATHERED_IRON_DOOR).put(Modblocks.WEATHERED_IRON_DOOR, Modblocks.OXIDIZED_IRON_DOOR)
30+
.put(Blocks.CHAIN, Modblocks.EXPOSED_IRON_CHAIN).put(Modblocks.EXPOSED_IRON_CHAIN, Modblocks.WEATHERED_IRON_CHAIN).put(Modblocks.WEATHERED_IRON_CHAIN, Modblocks.OXIDIZED_IRON_CHAIN)
31+
.put(Blocks.HEAVY_WEIGHTED_PRESSURE_PLATE, Modblocks.EXPOSED_HEAVY_WEIGHTED_PRESSURE_PLATE).put(Modblocks.EXPOSED_HEAVY_WEIGHTED_PRESSURE_PLATE, Modblocks.WEATHERED_HEAVY_WEIGHTED_PRESSURE_PLATE).put(Modblocks.WEATHERED_HEAVY_WEIGHTED_PRESSURE_PLATE, Modblocks.OXIDIZED_HEAVY_WEIGHTED_PRESSURE_PLATE)
32+
.put(Blocks.LANTERN, Modblocks.EXPOSED_LANTERN).put(Modblocks.EXPOSED_LANTERN, Modblocks.WEATHERED_LANTERN).put(Modblocks.WEATHERED_LANTERN, Modblocks.OXIDIZED_LANTERN)
33+
.put(Blocks.SOUL_LANTERN, Modblocks.EXPOSED_SOUL_LANTERN).put(Modblocks.EXPOSED_SOUL_LANTERN, Modblocks.WEATHERED_SOUL_LANTERN).put(Modblocks.WEATHERED_SOUL_LANTERN, Modblocks.OXIDIZED_SOUL_LANTERN)
34+
.build());
35+
36+
public static Supplier<BiMap<Block, Block>> MOD_OXIDATION_LEVEL_DECREASES = Suppliers.memoize(() -> ((BiMap)MOD_OXIDATION_LEVEL_INCREASES.get()).inverse());
37+
1138
// 铁质方块氧化映射
39+
@Deprecated
1240
public static final Map<Block, Block> IRONBLOCK_OXIDATION_MAP = new HashMap<>();
1341
static {
1442
IRONBLOCK_OXIDATION_MAP.put(Blocks.IRON_BLOCK, Modblocks.EXPOSED_IRON_BLOCK);
15-
IRONBLOCK_OXIDATION_MAP.put(Modblocks.EXPOSED_IRON_BLOCK, Modblocks.WEATHERED_IRON_BLOCK);
16-
IRONBLOCK_OXIDATION_MAP.put(Modblocks.WEATHERED_IRON_BLOCK, Modblocks.OXIDIZED_IRON_BLOCK);
43+
//IRONBLOCK_OXIDATION_MAP.put(Modblocks.EXPOSED_IRON_BLOCK, Modblocks.WEATHERED_IRON_BLOCK);
44+
//IRONBLOCK_OXIDATION_MAP.put(Modblocks.WEATHERED_IRON_BLOCK, Modblocks.OXIDIZED_IRON_BLOCK);
1745

1846
IRONBLOCK_OXIDATION_MAP.put(Blocks.IRON_BARS, Modblocks.EXPOSED_IRON_BARS);
19-
IRONBLOCK_OXIDATION_MAP.put(Modblocks.EXPOSED_IRON_BARS, Modblocks.WEATHERED_IRON_BARS);
20-
IRONBLOCK_OXIDATION_MAP.put(Modblocks.WEATHERED_IRON_BARS, Modblocks.OXIDIZED_IRON_BARS);
47+
//IRONBLOCK_OXIDATION_MAP.put(Modblocks.EXPOSED_IRON_BARS, Modblocks.WEATHERED_IRON_BARS);
48+
//IRONBLOCK_OXIDATION_MAP.put(Modblocks.WEATHERED_IRON_BARS, Modblocks.OXIDIZED_IRON_BARS);
2149

2250
IRONBLOCK_OXIDATION_MAP.put(Blocks.IRON_TRAPDOOR, Modblocks.EXPOSED_IRON_TRAPDOOR);
23-
IRONBLOCK_OXIDATION_MAP.put(Modblocks.EXPOSED_IRON_TRAPDOOR, Modblocks.WEATHERED_IRON_TRAPDOOR);
24-
IRONBLOCK_OXIDATION_MAP.put(Modblocks.WEATHERED_IRON_TRAPDOOR, Modblocks.OXIDIZED_IRON_TRAPDOOR);
51+
//IRONBLOCK_OXIDATION_MAP.put(Modblocks.EXPOSED_IRON_TRAPDOOR, Modblocks.WEATHERED_IRON_TRAPDOOR);
52+
//IRONBLOCK_OXIDATION_MAP.put(Modblocks.WEATHERED_IRON_TRAPDOOR, Modblocks.OXIDIZED_IRON_TRAPDOOR);
2553

2654
IRONBLOCK_OXIDATION_MAP.put(Blocks.CHAIN, Modblocks.EXPOSED_IRON_CHAIN);
27-
IRONBLOCK_OXIDATION_MAP.put(Modblocks.EXPOSED_IRON_CHAIN, Modblocks.WEATHERED_IRON_CHAIN);
28-
IRONBLOCK_OXIDATION_MAP.put(Modblocks.WEATHERED_IRON_CHAIN, Modblocks.OXIDIZED_IRON_CHAIN);
55+
//IRONBLOCK_OXIDATION_MAP.put(Modblocks.EXPOSED_IRON_CHAIN, Modblocks.WEATHERED_IRON_CHAIN);
56+
//IRONBLOCK_OXIDATION_MAP.put(Modblocks.WEATHERED_IRON_CHAIN, Modblocks.OXIDIZED_IRON_CHAIN);
2957

3058
IRONBLOCK_OXIDATION_MAP.put(Blocks.IRON_DOOR, Modblocks.EXPOSED_IRON_DOOR);
31-
IRONBLOCK_OXIDATION_MAP.put(Modblocks.EXPOSED_IRON_DOOR, Modblocks.WEATHERED_IRON_DOOR);
32-
IRONBLOCK_OXIDATION_MAP.put(Modblocks.WEATHERED_IRON_DOOR, Modblocks.OXIDIZED_IRON_DOOR);
59+
//IRONBLOCK_OXIDATION_MAP.put(Modblocks.EXPOSED_IRON_DOOR, Modblocks.WEATHERED_IRON_DOOR);
60+
//IRONBLOCK_OXIDATION_MAP.put(Modblocks.WEATHERED_IRON_DOOR, Modblocks.OXIDIZED_IRON_DOOR);
3361

3462
IRONBLOCK_OXIDATION_MAP.put(Blocks.HEAVY_WEIGHTED_PRESSURE_PLATE, Modblocks.EXPOSED_HEAVY_WEIGHTED_PRESSURE_PLATE);
35-
IRONBLOCK_OXIDATION_MAP.put(Modblocks.EXPOSED_HEAVY_WEIGHTED_PRESSURE_PLATE, Modblocks.WEATHERED_HEAVY_WEIGHTED_PRESSURE_PLATE);
36-
IRONBLOCK_OXIDATION_MAP.put(Modblocks.WEATHERED_HEAVY_WEIGHTED_PRESSURE_PLATE, Modblocks.OXIDIZED_HEAVY_WEIGHTED_PRESSURE_PLATE);
63+
//IRONBLOCK_OXIDATION_MAP.put(Modblocks.EXPOSED_HEAVY_WEIGHTED_PRESSURE_PLATE, Modblocks.WEATHERED_HEAVY_WEIGHTED_PRESSURE_PLATE);
64+
//IRONBLOCK_OXIDATION_MAP.put(Modblocks.WEATHERED_HEAVY_WEIGHTED_PRESSURE_PLATE, Modblocks.OXIDIZED_HEAVY_WEIGHTED_PRESSURE_PLATE);
3765

3866
/*IRONBLOCK_OXIDATION_MAP.put(Blocks.CAULDRON, Modblocks.EXPOSED_CAULDRON);
3967
IRONBLOCK_OXIDATION_MAP.put(Modblocks.EXPOSED_CAULDRON, Modblocks.WEATHERED_CAULDRON);
4068
IRONBLOCK_OXIDATION_MAP.put(Modblocks.WEATHERED_CAULDRON, Modblocks.OXIDIZED_CAULDRON);*/
4169

4270
IRONBLOCK_OXIDATION_MAP.put(Blocks.LANTERN, Modblocks.EXPOSED_LANTERN);
43-
IRONBLOCK_OXIDATION_MAP.put(Modblocks.EXPOSED_LANTERN, Modblocks.WEATHERED_LANTERN);
44-
IRONBLOCK_OXIDATION_MAP.put(Modblocks.WEATHERED_LANTERN, Modblocks.OXIDIZED_LANTERN);
71+
//IRONBLOCK_OXIDATION_MAP.put(Modblocks.EXPOSED_LANTERN, Modblocks.WEATHERED_LANTERN);
72+
//IRONBLOCK_OXIDATION_MAP.put(Modblocks.WEATHERED_LANTERN, Modblocks.OXIDIZED_LANTERN);
4573

4674
IRONBLOCK_OXIDATION_MAP.put(Blocks.SOUL_LANTERN, Modblocks.EXPOSED_SOUL_LANTERN);
47-
IRONBLOCK_OXIDATION_MAP.put(Modblocks.EXPOSED_SOUL_LANTERN, Modblocks.WEATHERED_SOUL_LANTERN);
48-
IRONBLOCK_OXIDATION_MAP.put(Modblocks.WEATHERED_SOUL_LANTERN, Modblocks.OXIDIZED_SOUL_LANTERN);
75+
//IRONBLOCK_OXIDATION_MAP.put(Modblocks.EXPOSED_SOUL_LANTERN, Modblocks.WEATHERED_SOUL_LANTERN);
76+
//IRONBLOCK_OXIDATION_MAP.put(Modblocks.WEATHERED_SOUL_LANTERN, Modblocks.OXIDIZED_SOUL_LANTERN);
4977
}
5078
// 铁质方块除锈映射
5179
public static final Map<Block, Block> IRONBLOCK_DEOXIDATION_MAP = new HashMap<>();

src/main/java/com/adccadc/rust/Rust.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import net.minecraft.entity.passive.IronGolemEntity;
2121
import net.minecraft.entity.player.PlayerEntity;
2222
import net.minecraft.item.*;
23-
import net.minecraft.particle.DustParticleEffect;
2423
import net.minecraft.particle.ParticleEffect;
2524
import net.minecraft.particle.ParticleTypes;
2625
import net.minecraft.server.world.ServerWorld;
@@ -146,7 +145,7 @@ public void onInitialize() {
146145

147146
// 氧化过程
148147
ServerTickEvents.END_WORLD_TICK.register(world -> {
149-
if (world.getTime() % 6000 == 0) { // 5min一次
148+
if (world.getTime() % 60 == 0) { // 5min一次
150149
if (world instanceof ServerWorld serverWorld) {
151150
for (PlayerEntity player : serverWorld.getPlayers()) {
152151
Random random = new Random();
@@ -156,6 +155,7 @@ public void onInitialize() {
156155
List.of(Moditems.RUSTY_IRON_SWORD, Moditems.RUSTY_IRON_AXE, Moditems.RUSTY_IRON_PICKAXE, Moditems.RUSTY_IRON_SHOVEL, Moditems.RUSTY_IRON_HOE, Moditems.RUSTY_IRON_HELMET, Moditems.RUSTY_IRON_CHESTPLATE, Moditems.RUSTY_IRON_LEGGINGS, Moditems.RUSTY_IRON_BOOTS),
157156
player);
158157
EntityReplace.ReplaceRustyEntityWithAttribute(serverWorld, box);
158+
//旧版方块氧化机制
159159
for (BlockPos pos : BlockPos.iterate((int) box.minX, (int) box.minY, (int) box.minZ, (int) box.maxX, (int) box.maxY, (int) box.maxZ)) {
160160
BlockState state = world.getBlockState(pos);
161161
Block block = state.getBlock();
@@ -224,9 +224,9 @@ public void onInitialize() {
224224
if (previousBlock != null) {
225225
BlockUtils.PutWhichBlockWithAttribute(world, previousBlock, state, pos);
226226

227-
UseLater(stack, player, 1, null, null, (ServerWorld) world, null, pos, new DustParticleEffect(0x563E3E, 1.0f), Moditems.IRON_RUST, 1);
227+
UseLater(stack, player, 1, null, null, (ServerWorld) world, null, pos, null, Moditems.IRON_RUST, 1);
228228
// 播放剥离音效
229-
world.playSound(null, pos, SoundEvents.ITEM_AXE_SCRAPE, SoundCategory.BLOCKS, 1.0F, 1.0F);
229+
//world.playSound(null, pos, SoundEvents.ITEM_AXE_SCRAPE, SoundCategory.BLOCKS, 1.0F, 1.0F);
230230
return ActionResult.SUCCESS;
231231
}
232232

0 commit comments

Comments
 (0)