From 845e2f0123fbf0fbc6dd2b2b71e7e5dbb6363508 Mon Sep 17 00:00:00 2001 From: Light_Quanta Date: Fri, 24 Jan 2025 23:50:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=88=9B=E9=80=A0=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E5=85=85=E7=94=B5=E7=AB=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 2 +- .../59eb3dbb5f86130e09b3c62d89b9525ee01cf52d | 3 +- .../b69ee8a2655365569b979911c0440daa8c470ac2 | 3 +- .../f93f628a3b0902e77de76541bcff68d1e5e3578f | 3 +- .../creative_charging_station.json | 19 ++++ .../item/creative_charging_station.json | 3 + .../blocks/creative_charging_station.json | 21 ++++ .../block/CreativeChargingStationBlock.java | 70 +++++++++++++ .../CreativeChargingStationBlockEntity.java | 98 ++++++++++++++++++ .../datagen/ModBlockLootProvider.java | 1 + .../datagen/ModBlockStateProvider.java | 1 + .../datagen/ModItemModelProvider.java | 1 + .../superbwarfare/init/ModBlockEntities.java | 3 + .../superbwarfare/init/ModBlocks.java | 1 + .../superbwarfare/init/ModItems.java | 1 + .../assets/superbwarfare/lang/en_us.json | 1 + .../assets/superbwarfare/lang/zh_cn.json | 1 + .../block/creative_charging_station.json | 24 +++++ .../block/creative_charging_station.png | Bin 0 -> 977 bytes ...ng.json => charging_station_crafting.json} | 0 20 files changed, 252 insertions(+), 4 deletions(-) create mode 100644 src/generated/resources/assets/superbwarfare/blockstates/creative_charging_station.json create mode 100644 src/generated/resources/assets/superbwarfare/models/item/creative_charging_station.json create mode 100644 src/generated/resources/data/superbwarfare/loot_tables/blocks/creative_charging_station.json create mode 100644 src/main/java/com/atsuishio/superbwarfare/block/CreativeChargingStationBlock.java create mode 100644 src/main/java/com/atsuishio/superbwarfare/block/entity/CreativeChargingStationBlockEntity.java create mode 100644 src/main/resources/assets/superbwarfare/models/block/creative_charging_station.json create mode 100644 src/main/resources/assets/superbwarfare/textures/block/creative_charging_station.png rename src/main/resources/data/superbwarfare/recipes/{charge_station_crafting.json => charging_station_crafting.json} (100%) diff --git a/gradle.properties b/gradle.properties index 6f7661e80..55d8ea1c2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -13,5 +13,5 @@ mod_description=A Warfare Mod minecraft_version=1.20.1 jei_version=15.2.0.27 cloth_config_version=11.1.106 -mod_version=0.4.3 +mod_version=0.4.4 mod_authors=Atsuishio, Roki27, Light_Quanta \ No newline at end of file diff --git a/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d b/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d index 7478640f4..04d32f821 100644 --- a/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d +++ b/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d @@ -1,8 +1,9 @@ -// 1.20.1 2024-12-19T16:59:33.3284116 Loot Tables +// 1.20.1 2025-01-24T23:42:51.1560585 Loot Tables 98386b2e65b2afb7cf5b0cabf6a7b0f062c1e640 data/superbwarfare/loot_tables/blocks/barbed_wire.json 811e69929a14e6736015849c220100bb58d914c9 data/superbwarfare/loot_tables/blocks/cemented_carbide_block.json 89568ab53a9e33d332b9125c1acccc80db6eb5bc data/superbwarfare/loot_tables/blocks/charging_station.json 8ed3f1d518c86fe6ed14f14f3121c2e24e109269 data/superbwarfare/loot_tables/blocks/container.json +c7b613c897b0eeca4dbade5eb65f718015dcb853 data/superbwarfare/loot_tables/blocks/creative_charging_station.json dabbe17417c944567dc6dfcdcba32b8377c24f69 data/superbwarfare/loot_tables/blocks/deepslate_galena_ore.json a7c1af3e194d35a64544902468bd964f45f2f9ef data/superbwarfare/loot_tables/blocks/deepslate_scheelite_ore.json 76fa64ff714374c1655f4d11776fda132287a014 data/superbwarfare/loot_tables/blocks/deepslate_silver_ore.json diff --git a/src/generated/resources/.cache/b69ee8a2655365569b979911c0440daa8c470ac2 b/src/generated/resources/.cache/b69ee8a2655365569b979911c0440daa8c470ac2 index aedbc30be..914f0d949 100644 --- a/src/generated/resources/.cache/b69ee8a2655365569b979911c0440daa8c470ac2 +++ b/src/generated/resources/.cache/b69ee8a2655365569b979911c0440daa8c470ac2 @@ -1,4 +1,4 @@ -// 1.20.1 2025-01-18T09:52:20.4788146 Item Models: superbwarfare +// 1.20.1 2025-01-24T23:46:19.2276768 Item Models: superbwarfare 13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/aa_12_blueprint.json 13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/ak_12_blueprint.json 13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/ak_47_blueprint.json @@ -19,6 +19,7 @@ b97ce523ca85cddff78abd9fd735295414ee07fd assets/superbwarfare/models/item/cement a52a7f9dc18d5af69903c2249239c15cb6d38c8e assets/superbwarfare/models/item/coal_powder.json 5ccef04175adcc9fa0797caca6bf04526f702d5c assets/superbwarfare/models/item/common_material_pack.json fc892b610a110980dbc6f8e2c080672b5dc06e99 assets/superbwarfare/models/item/copper_plate.json +7e43d8e9c4b8589f7665c46d4b67de645949cc6b assets/superbwarfare/models/item/creative_charging_station.json 0d3ef5e99a28f03b41c39bb7a173b77a0d42467d assets/superbwarfare/models/item/crowbar.json 13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/devotion_blueprint.json 6f4a829dc159f1740f52265d01730ecb6a840d81 assets/superbwarfare/models/item/dog_tag.json diff --git a/src/generated/resources/.cache/f93f628a3b0902e77de76541bcff68d1e5e3578f b/src/generated/resources/.cache/f93f628a3b0902e77de76541bcff68d1e5e3578f index eefaa4196..3b76ef4a6 100644 --- a/src/generated/resources/.cache/f93f628a3b0902e77de76541bcff68d1e5e3578f +++ b/src/generated/resources/.cache/f93f628a3b0902e77de76541bcff68d1e5e3578f @@ -1,8 +1,9 @@ -// 1.20.1 2025-01-09T21:37:53.6258664 Block States: superbwarfare +// 1.20.1 2025-01-24T23:42:51.1511918 Block States: superbwarfare f3b778ca36ca78c3d80f1b778078897f59bdb0c5 assets/superbwarfare/blockstates/barbed_wire.json 0cfad4f53a8047c402edf978d0c8cf6269f063cb assets/superbwarfare/blockstates/cemented_carbide_block.json 472c06e6b43ad09925edaa88e9376bfd27ab267f assets/superbwarfare/blockstates/charging_station.json 921500c7cf6c92da0e656486126068bbf5e30348 assets/superbwarfare/blockstates/container.json +05f0cdee0936354ef2bf904037fe09ff7d5e0bc7 assets/superbwarfare/blockstates/creative_charging_station.json 62fb0464ca59ac21693639c406e08730427d87b3 assets/superbwarfare/blockstates/deepslate_galena_ore.json b8b7cdea6c8626c74d652d0b300b3afe19c60674 assets/superbwarfare/blockstates/deepslate_scheelite_ore.json 2b24b703de4821bebe71ba53043e6a1a23d71c17 assets/superbwarfare/blockstates/deepslate_silver_ore.json diff --git a/src/generated/resources/assets/superbwarfare/blockstates/creative_charging_station.json b/src/generated/resources/assets/superbwarfare/blockstates/creative_charging_station.json new file mode 100644 index 000000000..83abf3346 --- /dev/null +++ b/src/generated/resources/assets/superbwarfare/blockstates/creative_charging_station.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=east": { + "model": "superbwarfare:block/creative_charging_station", + "y": 90 + }, + "facing=north": { + "model": "superbwarfare:block/creative_charging_station" + }, + "facing=south": { + "model": "superbwarfare:block/creative_charging_station", + "y": 180 + }, + "facing=west": { + "model": "superbwarfare:block/creative_charging_station", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/superbwarfare/models/item/creative_charging_station.json b/src/generated/resources/assets/superbwarfare/models/item/creative_charging_station.json new file mode 100644 index 000000000..05a95097b --- /dev/null +++ b/src/generated/resources/assets/superbwarfare/models/item/creative_charging_station.json @@ -0,0 +1,3 @@ +{ + "parent": "superbwarfare:block/creative_charging_station" +} \ No newline at end of file diff --git a/src/generated/resources/data/superbwarfare/loot_tables/blocks/creative_charging_station.json b/src/generated/resources/data/superbwarfare/loot_tables/blocks/creative_charging_station.json new file mode 100644 index 000000000..c526c85e6 --- /dev/null +++ b/src/generated/resources/data/superbwarfare/loot_tables/blocks/creative_charging_station.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "superbwarfare:creative_charging_station" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "superbwarfare:blocks/creative_charging_station" +} \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/block/CreativeChargingStationBlock.java b/src/main/java/com/atsuishio/superbwarfare/block/CreativeChargingStationBlock.java new file mode 100644 index 000000000..b6ebaf52b --- /dev/null +++ b/src/main/java/com/atsuishio/superbwarfare/block/CreativeChargingStationBlock.java @@ -0,0 +1,70 @@ +package com.atsuishio.superbwarfare.block; + +import com.atsuishio.superbwarfare.block.entity.CreativeChargingStationBlockEntity; +import com.atsuishio.superbwarfare.init.ModBlockEntities; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.*; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.DirectionProperty; +import org.jetbrains.annotations.Nullable; + +@SuppressWarnings("deprecation") +public class CreativeChargingStationBlock extends BaseEntityBlock { + + public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING; + + public CreativeChargingStationBlock() { + super(Properties.of().sound(SoundType.METAL).strength(3.0f).requiresCorrectToolForDrops()); + this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH)); + } + + @Override + public RenderShape getRenderShape(BlockState pState) { + return RenderShape.MODEL; + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos pPos, BlockState pState) { + return new CreativeChargingStationBlockEntity(pPos, pState); + } + + @Nullable + @Override + public BlockEntityTicker getTicker(Level pLevel, BlockState pState, BlockEntityType pBlockEntityType) { + if (!pLevel.isClientSide) { + return createTickerHelper(pBlockEntityType, ModBlockEntities.CREATIVE_CHARGING_STATION.get(), (pLevel1, pPos, pState1, blockEntity) -> CreativeChargingStationBlockEntity.serverTick(blockEntity)); + } + return null; + } + + @Override + public void onRemove(BlockState pState, Level pLevel, BlockPos pPos, BlockState pNewState, boolean pMovedByPiston) { + if (!pState.is(pNewState.getBlock())) { + BlockEntity blockentity = pLevel.getBlockEntity(pPos); + if (blockentity instanceof CreativeChargingStationBlockEntity) { + pLevel.updateNeighbourForOutputSignal(pPos, this); + } + } + + super.onRemove(pState, pLevel, pPos, pNewState, pMovedByPiston); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder pBuilder) { + pBuilder.add(FACING); + } + + @Nullable + @Override + public BlockState getStateForPlacement(BlockPlaceContext pContext) { + return this.defaultBlockState().setValue(FACING, pContext.getHorizontalDirection().getOpposite()); + } +} diff --git a/src/main/java/com/atsuishio/superbwarfare/block/entity/CreativeChargingStationBlockEntity.java b/src/main/java/com/atsuishio/superbwarfare/block/entity/CreativeChargingStationBlockEntity.java new file mode 100644 index 000000000..c4fd53408 --- /dev/null +++ b/src/main/java/com/atsuishio/superbwarfare/block/entity/CreativeChargingStationBlockEntity.java @@ -0,0 +1,98 @@ +package com.atsuishio.superbwarfare.block.entity; + +import com.atsuishio.superbwarfare.entity.vehicle.IChargeEntity; +import com.atsuishio.superbwarfare.init.ModBlockEntities; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.AABB; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.capabilities.ForgeCapabilities; +import net.minecraftforge.common.util.LazyOptional; +import net.minecraftforge.energy.EnergyStorage; +import org.jetbrains.annotations.NotNull; + +/** + * Energy Data Slot Code based on @GoryMoon's Chargers + */ +public class CreativeChargingStationBlockEntity extends BlockEntity { + public static final int CHARGE_RADIUS = 8; + + private LazyOptional energyHandler; + + + public CreativeChargingStationBlockEntity(BlockPos pos, BlockState state) { + super(ModBlockEntities.CREATIVE_CHARGING_STATION.get(), pos, state); + this.energyHandler = LazyOptional.of(() -> new EnergyStorage(2147483647)); + } + + public static void serverTick(CreativeChargingStationBlockEntity blockEntity) { + if (blockEntity.level == null) return; + + blockEntity.energyHandler.ifPresent(handler -> { + blockEntity.chargeEntity(); + blockEntity.chargeBlock(); + }); + } + + private void chargeEntity() { + assert this.level != null; + + this.level + .getEntitiesOfClass(Entity.class, new AABB(this.getBlockPos()).inflate(CHARGE_RADIUS)) + .forEach(entity -> { + if (entity instanceof IChargeEntity chargeEntity && chargeEntity.canCharge()) { + chargeEntity.charge(2147483647); + } + }); + } + + + private void chargeBlock() { + assert this.level != null; + + for (Direction direction : Direction.values()) { + var blockEntity = this.level.getBlockEntity(this.getBlockPos().relative(direction)); + if (blockEntity == null + || !blockEntity.getCapability(ForgeCapabilities.ENERGY).isPresent() + || blockEntity instanceof CreativeChargingStationBlockEntity + ) continue; + + blockEntity.getCapability(ForgeCapabilities.ENERGY).ifPresent(energy -> { + if (energy.canReceive() && energy.getEnergyStored() < energy.getMaxEnergyStored()) { + energy.receiveEnergy(2147483647, false); + blockEntity.setChanged(); + } + }); + } + } + + + @Override + public ClientboundBlockEntityDataPacket getUpdatePacket() { + return ClientboundBlockEntityDataPacket.create(this); + } + + @Override + public @NotNull LazyOptional getCapability(@NotNull Capability cap, Direction side) { + if (cap == ForgeCapabilities.ENERGY) { + return energyHandler.cast(); + } + return super.getCapability(cap, side); + } + + @Override + public void invalidateCaps() { + super.invalidateCaps(); + energyHandler.invalidate(); + } + + @Override + public void reviveCaps() { + super.reviveCaps(); + this.energyHandler = LazyOptional.of(() -> new EnergyStorage(2147483647)); + } +} diff --git a/src/main/java/com/atsuishio/superbwarfare/datagen/ModBlockLootProvider.java b/src/main/java/com/atsuishio/superbwarfare/datagen/ModBlockLootProvider.java index a80dd36c0..8526fe2ee 100644 --- a/src/main/java/com/atsuishio/superbwarfare/datagen/ModBlockLootProvider.java +++ b/src/main/java/com/atsuishio/superbwarfare/datagen/ModBlockLootProvider.java @@ -34,6 +34,7 @@ public class ModBlockLootProvider extends BlockLootSubProvider { this.dropSelf(ModBlocks.CEMENTED_CARBIDE_BLOCK.get()); this.dropSelf(ModBlocks.SILVER_BLOCK.get()); this.dropSelf(ModBlocks.CHARGING_STATION.get()); + this.dropSelf(ModBlocks.CREATIVE_CHARGING_STATION.get()); this.dropSelf(ModBlocks.FUMO_25.get()); this.add(ModBlocks.GALENA_ORE.get(), this.createOreDrop(ModBlocks.GALENA_ORE.get(), ModItems.GALENA.get())); diff --git a/src/main/java/com/atsuishio/superbwarfare/datagen/ModBlockStateProvider.java b/src/main/java/com/atsuishio/superbwarfare/datagen/ModBlockStateProvider.java index e7b28613a..bfe2eaf16 100644 --- a/src/main/java/com/atsuishio/superbwarfare/datagen/ModBlockStateProvider.java +++ b/src/main/java/com/atsuishio/superbwarfare/datagen/ModBlockStateProvider.java @@ -25,6 +25,7 @@ public class ModBlockStateProvider extends BlockStateProvider { horizontalBlock(ModBlocks.REFORGING_TABLE.get(), new ModelFile.UncheckedModelFile(modLoc("block/reforging_table"))); horizontalBlock(ModBlocks.CONTAINER.get(), new ModelFile.UncheckedModelFile(modLoc("block/container"))); horizontalBlock(ModBlocks.CHARGING_STATION.get(), new ModelFile.UncheckedModelFile(modLoc("block/charging_station"))); + horizontalBlock(ModBlocks.CREATIVE_CHARGING_STATION.get(), new ModelFile.UncheckedModelFile(modLoc("block/creative_charging_station"))); blockWithItem(ModBlocks.GALENA_ORE); blockWithItem(ModBlocks.DEEPSLATE_GALENA_ORE); diff --git a/src/main/java/com/atsuishio/superbwarfare/datagen/ModItemModelProvider.java b/src/main/java/com/atsuishio/superbwarfare/datagen/ModItemModelProvider.java index 269564aa7..ed0b943d2 100644 --- a/src/main/java/com/atsuishio/superbwarfare/datagen/ModItemModelProvider.java +++ b/src/main/java/com/atsuishio/superbwarfare/datagen/ModItemModelProvider.java @@ -146,6 +146,7 @@ public class ModItemModelProvider extends ItemModelProvider { evenSimplerBlockItem(ModBlocks.JUMP_PAD); evenSimplerBlockItem(ModBlocks.REFORGING_TABLE); evenSimplerBlockItem(ModBlocks.CHARGING_STATION); + evenSimplerBlockItem(ModBlocks.CREATIVE_CHARGING_STATION); simpleItem(ModItems.FUMO_25); } diff --git a/src/main/java/com/atsuishio/superbwarfare/init/ModBlockEntities.java b/src/main/java/com/atsuishio/superbwarfare/init/ModBlockEntities.java index 4026c9cb4..b96aa9d49 100644 --- a/src/main/java/com/atsuishio/superbwarfare/init/ModBlockEntities.java +++ b/src/main/java/com/atsuishio/superbwarfare/init/ModBlockEntities.java @@ -3,6 +3,7 @@ package com.atsuishio.superbwarfare.init; import com.atsuishio.superbwarfare.ModUtils; import com.atsuishio.superbwarfare.block.entity.ChargingStationBlockEntity; import com.atsuishio.superbwarfare.block.entity.ContainerBlockEntity; +import com.atsuishio.superbwarfare.block.entity.CreativeChargingStationBlockEntity; import com.atsuishio.superbwarfare.block.entity.FuMO25BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraftforge.registries.DeferredRegister; @@ -17,6 +18,8 @@ public class ModBlockEntities { () -> BlockEntityType.Builder.of(ContainerBlockEntity::new, ModBlocks.CONTAINER.get()).build(null)); public static final RegistryObject> CHARGING_STATION = REGISTRY.register("charging_station", () -> BlockEntityType.Builder.of(ChargingStationBlockEntity::new, ModBlocks.CHARGING_STATION.get()).build(null)); + public static final RegistryObject> CREATIVE_CHARGING_STATION = REGISTRY.register("creative_charging_station", + () -> BlockEntityType.Builder.of(CreativeChargingStationBlockEntity::new, ModBlocks.CREATIVE_CHARGING_STATION.get()).build(null)); public static final RegistryObject> FUMO_25 = REGISTRY.register("fumo_25", () -> BlockEntityType.Builder.of(FuMO25BlockEntity::new, ModBlocks.FUMO_25.get()).build(null)); diff --git a/src/main/java/com/atsuishio/superbwarfare/init/ModBlocks.java b/src/main/java/com/atsuishio/superbwarfare/init/ModBlocks.java index e9af5a4a9..a5972bc9e 100644 --- a/src/main/java/com/atsuishio/superbwarfare/init/ModBlocks.java +++ b/src/main/java/com/atsuishio/superbwarfare/init/ModBlocks.java @@ -44,5 +44,6 @@ public class ModBlocks { () -> new Block(BlockBehaviour.Properties.of().instrument(NoteBlockInstrument.BASEDRUM).sound(SoundType.METAL).strength(5f, 6f).requiresCorrectToolForDrops())); public static final RegistryObject CONTAINER = REGISTRY.register("container", ContainerBlock::new); public static final RegistryObject CHARGING_STATION = REGISTRY.register("charging_station", ChargingStationBlock::new); + public static final RegistryObject CREATIVE_CHARGING_STATION = REGISTRY.register("creative_charging_station", CreativeChargingStationBlock::new); public static final RegistryObject FUMO_25 = REGISTRY.register("fumo_25", FuMO25Block::new); } diff --git a/src/main/java/com/atsuishio/superbwarfare/init/ModItems.java b/src/main/java/com/atsuishio/superbwarfare/init/ModItems.java index aa273daa9..7df8ff6fa 100644 --- a/src/main/java/com/atsuishio/superbwarfare/init/ModItems.java +++ b/src/main/java/com/atsuishio/superbwarfare/init/ModItems.java @@ -250,6 +250,7 @@ public class ModItems { public static final RegistryObject DRAGON_TEETH = block(ModBlocks.DRAGON_TEETH); public static final RegistryObject REFORGING_TABLE = block(ModBlocks.REFORGING_TABLE); public static final RegistryObject CHARGING_STATION = block(ModBlocks.CHARGING_STATION); + public static final RegistryObject CREATIVE_CHARGING_STATION = block(ModBlocks.CREATIVE_CHARGING_STATION); public static final RegistryObject LEAD_BLOCK = block(ModBlocks.LEAD_BLOCK); public static final RegistryObject STEEL_BLOCK = block(ModBlocks.STEEL_BLOCK); public static final RegistryObject TUNGSTEN_BLOCK = block(ModBlocks.TUNGSTEN_BLOCK); diff --git a/src/main/resources/assets/superbwarfare/lang/en_us.json b/src/main/resources/assets/superbwarfare/lang/en_us.json index dfcf46b34..77c5ddc73 100644 --- a/src/main/resources/assets/superbwarfare/lang/en_us.json +++ b/src/main/resources/assets/superbwarfare/lang/en_us.json @@ -225,6 +225,7 @@ "container.superbwarfare.charging_station.show_range": "Show Range", "container.superbwarfare.charging_station.hide_range": "Hide Range", "des.superbwarfare.charging_station.energy": "Energy: %1$s / %2$s FE", + "block.superbwarfare.creative_charging_station": "Creative Charging Station", "block.superbwarfare.fumo_25": "FuMO25 Fire Control Radar", "des.superbwarfare.fumo_25.current_pos": "Current Pos: %1$s", "des.superbwarfare.fumo_25.current_target": "Target: %1$s", diff --git a/src/main/resources/assets/superbwarfare/lang/zh_cn.json b/src/main/resources/assets/superbwarfare/lang/zh_cn.json index 58c6d2d55..dd4497e48 100644 --- a/src/main/resources/assets/superbwarfare/lang/zh_cn.json +++ b/src/main/resources/assets/superbwarfare/lang/zh_cn.json @@ -223,6 +223,7 @@ "block.superbwarfare.steel_block": "钢块", "block.superbwarfare.charging_station": "充电站", "des.superbwarfare.charging_station.energy": "能量:%1$s / %2$s FE", + "block.superbwarfare.creative_charging_station": "创造模式充电站", "block.superbwarfare.fumo_25": "FuMO25火控雷达", "des.superbwarfare.fumo_25.current_pos": "当前坐标:%1$s", "des.superbwarfare.fumo_25.current_target": "目标:%1$s", diff --git a/src/main/resources/assets/superbwarfare/models/block/creative_charging_station.json b/src/main/resources/assets/superbwarfare/models/block/creative_charging_station.json new file mode 100644 index 000000000..bc9287716 --- /dev/null +++ b/src/main/resources/assets/superbwarfare/models/block/creative_charging_station.json @@ -0,0 +1,24 @@ +{ + "credit": "Made with Blockbench", + "parent": "minecraft:block/block", + "ambientocclusion": false, + "texture_size": [32, 32], + "textures": { + "4": "superbwarfare:block/creative_charging_station", + "particle": "superbwarfare:block/creative_charging_station" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 0, 8, 8], "texture": "#4"}, + "east": {"uv": [0, 8, 8, 16], "texture": "#4"}, + "south": {"uv": [0, 8, 8, 16], "texture": "#4"}, + "west": {"uv": [0, 8, 8, 16], "texture": "#4"}, + "up": {"uv": [16, 8, 8, 0], "texture": "#4"}, + "down": {"uv": [16, 8, 8, 16], "texture": "#4"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/superbwarfare/textures/block/creative_charging_station.png b/src/main/resources/assets/superbwarfare/textures/block/creative_charging_station.png new file mode 100644 index 0000000000000000000000000000000000000000..952ddc50a2832fdf610e5fb085e45a6516db4f56 GIT binary patch literal 977 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCik%1^9%xPMcKI)mBhh8oyvpTT@*|Z)b5wOP-{pq>744M|;P_-tuh?Jpb=9 z+*!%<{{}-_b8bmVNk&G-)~#EQ9zD8x&FXjO<=UEZ`uqFm%$eiq;Sm`TF+EWwz~6sz ze`Q5UTyRj3pRaF7aBz57SXgLieSQ6mDRnvNff>oZ6MD*$;ymJ`U8BPt`@2h<>NDrg zox5z=vX+*X{QUgt>gwL!-km#l?%A`aBtNn+H#|2pI4dn6J1wv{Ke8Y@G&R91KPx0T z&NDAFBqt+CZ2im#ppQ5UJR*x382Ao@Fyrz36)8YLi4xa{lHmNblJdl&REB`W%)Amk zKi3ciQ$0gH!=$Z2JU}(uQX@RmJUz7-IDi~h1}R2X21X#u3y7tmY*6@WFfxP1nSg9V zMkWRUARPt7ne8lK@hl)41QLK4q#s73S;_#6p$Y5^EI<_oM#ct=3m~R~bg(Xfm^1~* z1_36ZIZR-cL6#Ok7F3s^fdNQXy5#bdD;#ayK-<=Nx;Tbd_~!<7I^8zlnd&Qcd&!cO zmT%gM&PiX`vSdzk(YyckS(DzB=swh(DEjj2$!%N;VG|glC;UB8Tq7{aw&9Z7>I}Ec zov|xSMTA(MvS+2c^LOl=x_VK}!hp!-1`;l;ilLE{q&%mo3O!lYbVl^LskK_pJH`nI zRF?@Rc2qjGN@S{TTF>R2dN%LKy%SkC)LMhYf4?v|^YFl~Q@;yi`}fLMYVUAe$=~g9 zLZNuww|!=9d%ph_i|4HH(OYY#Iden1wZg3BVt`g$!b zZRh%^rGNeDFTCOCvC#ib_YblpGcoBaw{+JOM@%m;-8;+gW3Eua8H?vSj&X-_%-$>X zJ#$jI$7Qhn`r6#+?2C`JW~MN9{D1Xz+wmU9s0~N|{%!utzl&Y(sFh$(xt#oSo>{-$ z7(dVR3gLI@SQ?S;v_Pm=