Skip to content

Commit

Permalink
修改流体注册
Browse files Browse the repository at this point in the history
  • Loading branch information
DancingSnow0517 committed Oct 6, 2024
1 parent e1a58b0 commit 573a5fd
Show file tree
Hide file tree
Showing 11 changed files with 82 additions and 245 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"textures": {
"particle": "anvilcraft:block/oil"
}
}
21 changes: 0 additions & 21 deletions src/generated/resources/data/anvilcraft/loot_table/blocks/oil.json

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
import net.minecraft.world.level.Level;
import net.minecraft.world.level.LevelAccessor;
import net.minecraft.world.level.biome.Biome;
import net.minecraft.world.level.block.AbstractCauldronBlock;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.BucketPickup;
import net.minecraft.world.level.block.LayeredCauldronBlock;
Expand Down Expand Up @@ -145,7 +144,7 @@ public ItemStack pickupBlock(@Nullable Player player, LevelAccessor level, Block
level.setBlock(pos, Blocks.CAULDRON.defaultBlockState(), 3);
return ModItems.OIL_BUCKET.asStack();
}
return Items.BUCKET.getDefaultInstance();
return ItemStack.EMPTY;
}

@Override
Expand Down
11 changes: 0 additions & 11 deletions src/main/java/dev/dubhe/anvilcraft/client/AnvilCraftClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,10 @@
import dev.dubhe.anvilcraft.client.event.GuiLayerRegistrationEventListener;
import dev.dubhe.anvilcraft.config.AnvilCraftConfig;

import dev.dubhe.anvilcraft.fluid.ClientFluidTypeExtensionImpl;
import dev.dubhe.anvilcraft.fluid.OilFluid;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.fml.ModContainer;
import net.neoforged.fml.common.Mod;
import net.neoforged.neoforge.client.extensions.common.RegisterClientExtensionsEvent;
import net.neoforged.neoforge.client.gui.IConfigScreenFactory;

import me.shedaniel.autoconfig.AutoConfig;
Expand All @@ -19,18 +16,10 @@
public class AnvilCraftClient {
public AnvilCraftClient(IEventBus modBus, ModContainer container) {
modBus.addListener(GuiLayerRegistrationEventListener::onRegister);
modBus.addListener(AnvilCraftClient::onRegisterClientExtensions);
container.registerExtensionPoint(
IConfigScreenFactory.class,
(c, s) -> AutoConfig.getConfigScreen(AnvilCraftConfig.class, s).get()
);

}

public static void onRegisterClientExtensions(RegisterClientExtensionsEvent event) {
event.registerFluidType(
new ClientFluidTypeExtensionImpl(AnvilCraft.of("block/oil"), AnvilCraft.of("block/oil")),
OilFluid.TYPE
);
}
}

This file was deleted.

156 changes: 0 additions & 156 deletions src/main/java/dev/dubhe/anvilcraft/fluid/OilFluid.java

This file was deleted.

12 changes: 7 additions & 5 deletions src/main/java/dev/dubhe/anvilcraft/init/ModBlocks.java
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@
import net.minecraft.util.ColorRGBA;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.BucketItem;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.crafting.Ingredient;
Expand All @@ -134,7 +133,6 @@
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.properties.BlockSetType;
import net.minecraft.world.level.block.state.properties.NoteBlockInstrument;
import net.minecraft.world.level.material.Fluids;
import net.minecraft.world.level.material.MapColor;
import net.minecraft.world.level.material.PushReaction;
import net.minecraft.world.level.storage.loot.LootPool;
Expand Down Expand Up @@ -2966,16 +2964,20 @@ private static Object2ObjectMap<Color, BlockEntry<WallBlock>> registerReinforced
.register();

public static final BlockEntry<LiquidBlock> OIL = REGISTRATE
.block("oil", it -> new LiquidBlock(ModFluids.OIL.get(), it))
.block("oil", p -> new LiquidBlock(ModFluids.OIL.get(), p))
.properties(it -> it
.mapColor(MapColor.TERRACOTTA_BLACK)
.replaceable()
.noCollission()
.randomTicks()
.noCollission()
.noLootTable()
.strength(100.0F)
)
.blockstate((ctx, provider) -> {
})
.blockstate((ctx, provider) -> provider.simpleBlock(
ctx.get(),
provider.models().getBuilder(ctx.getName()).texture("particle", provider.modLoc("block/" + ctx.getName()))
))
.register();

static {
Expand Down
64 changes: 53 additions & 11 deletions src/main/java/dev/dubhe/anvilcraft/init/ModFluids.java
Original file line number Diff line number Diff line change
@@ -1,33 +1,75 @@
package dev.dubhe.anvilcraft.init;

import dev.dubhe.anvilcraft.AnvilCraft;
import dev.dubhe.anvilcraft.fluid.OilFluid;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.world.level.material.Fluid;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.neoforge.client.extensions.common.IClientFluidTypeExtensions;
import net.neoforged.neoforge.common.SoundActions;
import net.neoforged.neoforge.fluids.BaseFlowingFluid;
import net.neoforged.neoforge.fluids.FluidType;
import net.neoforged.neoforge.registries.DeferredHolder;
import net.neoforged.neoforge.registries.DeferredRegister;
import net.neoforged.neoforge.registries.NeoForgeRegistries;

import javax.annotation.ParametersAreNonnullByDefault;
import java.util.function.Consumer;

@SuppressWarnings("removal")
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class ModFluids {

public static final DeferredRegister<Fluid> REGISTER = DeferredRegister.create(
Registries.FLUID,
AnvilCraft.MOD_ID
);
public static final DeferredRegister<FluidType> FLUID_TYPES = DeferredRegister.create(NeoForgeRegistries.FLUID_TYPES, AnvilCraft.MOD_ID);
public static final DeferredRegister<Fluid> FLUIDS = DeferredRegister.create(Registries.FLUID, AnvilCraft.MOD_ID);

public static final DeferredHolder<Fluid, OilFluid.Source> OIL = REGISTER
public static final DeferredHolder<FluidType, FluidType> OIL_TYPE = FLUID_TYPES.register(
"oil",
() -> new FluidType(FluidType.Properties.create()
.density(2000)
.viscosity(4000)
.fallDistanceModifier(0F)
.motionScale(0.007)
.supportsBoating(true)
.sound(SoundActions.BUCKET_FILL, SoundEvents.BUCKET_FILL)
.sound(SoundActions.BUCKET_EMPTY, SoundEvents.BUCKET_EMPTY)
.sound(SoundActions.FLUID_VAPORIZE, SoundEvents.FIRE_EXTINGUISH)
) {
@Override
public void initializeClient(Consumer<IClientFluidTypeExtensions> consumer) {
consumer.accept(new IClientFluidTypeExtensions() {
@Override
public ResourceLocation getStillTexture() {
return AnvilCraft.of("block/oil");
}

@Override
public ResourceLocation getFlowingTexture() {
return AnvilCraft.of("block/oil");
}
});
}
}
);
public static final DeferredHolder<Fluid, BaseFlowingFluid> OIL = FLUIDS
.register(
"oil",
OilFluid.Source::new
() -> new BaseFlowingFluid.Source(ModFluids.OIL_PROPERTIES)
);

public static final DeferredHolder<Fluid, OilFluid.Flowing> FLOWING_OIL = REGISTER
public static final DeferredHolder<Fluid, BaseFlowingFluid> FLOWING_OIL = FLUIDS
.register(
"flowing_oil",
OilFluid.Flowing::new
() -> new BaseFlowingFluid.Flowing(ModFluids.OIL_PROPERTIES)
);
public static final BaseFlowingFluid.Properties OIL_PROPERTIES = new BaseFlowingFluid.Properties(OIL_TYPE, OIL, FLOWING_OIL)
.bucket(ModItems.OIL_BUCKET).block(ModBlocks.OIL).tickRate(10).slopeFindDistance(3).explosionResistance(100);

public static void register(IEventBus eventBus){
REGISTER.register(eventBus);
public static void register(IEventBus eventBus) {
FLUID_TYPES.register(eventBus);
FLUIDS.register(eventBus);
}
}
Loading

0 comments on commit 573a5fd

Please sign in to comment.