Skip to content

Commit

Permalink
Add a bunch of blockstates and textures
Browse files Browse the repository at this point in the history
  • Loading branch information
mrmelon54 committed Jan 15, 2024
1 parent c6b59f3 commit ca4ee86
Show file tree
Hide file tree
Showing 37 changed files with 630 additions and 158 deletions.
5 changes: 1 addition & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,6 @@ jobs:
- name: Build
run: ./gradlew build

- name: Compress
run: tar -czvf upload.tar.gz build/libs/merged/*.jar

- name: Deploy
if: startsWith(github.ref, 'refs/tags/v')
run: 'curl -X POST -H "Authorization: Bearer ${{ secrets.DEPLOY }}" -F "upload=@upload.tar.gz" https://b.mrmelon54.xyz/u/mc-mod/arctech'
run: 'curl --fail -X POST -H "Authorization: Bearer ${{ secrets.DEPLOY }}" -F "upload=@$(ls -1 build/libs/merged/*.jar)" https://api.mrmelon54.com/v1/mc-upload/upload/arctech'
4 changes: 4 additions & 0 deletions common/src/main/java/com/mrmelon54/ArcTech/ArcTech.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package com.mrmelon54.ArcTech;

import com.google.common.base.Suppliers;
import com.mrmelon54.ArcTech.init.BlocksAndItems;
import com.mrmelon54.ArcTech.init.CreativeTab;
import com.mrmelon54.ArcTech.init.LoadModels;
import dev.architectury.registry.registries.RegistrarManager;

import java.util.function.Supplier;
Expand All @@ -12,5 +15,6 @@ public class ArcTech {
public static void init() {
CreativeTab.init();
BlocksAndItems.init();
LoadModels.init();
}
}
29 changes: 0 additions & 29 deletions common/src/main/java/com/mrmelon54/ArcTech/BlocksAndItems.java

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package com.mrmelon54.ArcTech.expect;
package com.mrmelon54.ArcTech;

import dev.architectury.injectables.annotations.ExpectPlatform;
import net.minecraft.client.resources.model.BakedModel;
import net.minecraft.client.resources.model.UnbakedModel;
import net.minecraft.resources.ResourceLocation;

import java.util.function.Supplier;

public class LoadModelExpectPlatform {
@ExpectPlatform
public static <T extends UnbakedModel> void loadModel(ResourceLocation id, Supplier<T> supplier) {
public static <T extends UnbakedModel> void loadModel(ResourceLocation id, Supplier<BakedModel> supplier) {
throw new AssertionError();
}
}
55 changes: 53 additions & 2 deletions common/src/main/java/com/mrmelon54/ArcTech/block/WireBlock.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,60 @@
package com.mrmelon54.ArcTech.block;

import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.LevelAccessor;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.PipeBlock;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.StateDefinition;
import net.minecraft.world.level.pathfinder.PathComputationType;
import org.jetbrains.annotations.Nullable;

public class WireBlock extends Block {
public class WireBlock extends PipeBlock {
public WireBlock(Properties properties) {
super(properties);
super(1 / 16f, properties);
registerDefaultState(getStateDefinition().any().setValue(NORTH, false).setValue(EAST, false).setValue(SOUTH, false).setValue(WEST, false).setValue(UP, false).setValue(DOWN, false));
}

@Override
public BlockState updateShape(BlockState blockState, Direction direction, BlockState blockState2, LevelAccessor levelAccessor, BlockPos blockPos, BlockPos blockPos2) {
return blockState.setValue(PROPERTY_BY_DIRECTION.get(direction), this.connectsTo(blockState2));
}

private boolean connectsTo(BlockState blockState) {
return this.isSameWire(blockState);
}

private boolean isSameWire(BlockState blockState) {
return blockState.is(this);
}

@Nullable
@Override
public BlockState getStateForPlacement(BlockPlaceContext blockPlaceContext) {
return this.getStateForPlacement(blockPlaceContext.getLevel(), blockPlaceContext.getClickedPos());
}

private BlockState getStateForPlacement(BlockGetter blockGetter, BlockPos blockPos) {
BlockState b = this.defaultBlockState();
b = b.setValue(DOWN, blockGetter.getBlockState(blockPos.below()).is(this));
b = b.setValue(UP, blockGetter.getBlockState(blockPos.above()).is(this));
b = b.setValue(NORTH, blockGetter.getBlockState(blockPos.north()).is(this));
b = b.setValue(EAST, blockGetter.getBlockState(blockPos.east()).is(this));
b = b.setValue(SOUTH, blockGetter.getBlockState(blockPos.south()).is(this));
b = b.setValue(WEST, blockGetter.getBlockState(blockPos.west()).is(this));
return b;
}

@Override
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
builder.add(NORTH, EAST, SOUTH, WEST, UP, DOWN);
}

@Override
public boolean isPathfindable(BlockState blockState, BlockGetter blockGetter, BlockPos blockPos, PathComputationType pathComputationType) {
return false;
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.mrmelon54.ArcTech;
package com.mrmelon54.ArcTech.init;

import com.mrmelon54.ArcTech.block.CraftingStationBlock;
import com.mrmelon54.ArcTech.block.WireBlock;
import com.mrmelon54.ArcTech.block.WireCopperBlock;
import net.minecraft.util.valueproviders.UniformInt;
import net.minecraft.world.level.block.Block;
Expand All @@ -13,6 +14,8 @@
public class Blocks {
public static final Block CRAFTING_STATION = new CraftingStationBlock(BlockBehaviour.Properties.of().sound(SoundType.WOOD).strength(2.5f).ignitedByLava());
public static final Block WIRE_COPPER = new WireCopperBlock(BlockBehaviour.Properties.of().sound(SoundType.COPPER).strength(0.5f).dynamicShape());
public static final Block LITHIUM_ORE = new DropExperienceBlock(BlockBehaviour.Properties.of().mapColor(MapColor.STONE).instrument(NoteBlockInstrument.BASEDRUM).requiresCorrectToolForDrops().strength(3.0F, 3.0F), UniformInt.of(3, 7));
public static final Block WIRE_ELECTRIC = new WireBlock(BlockBehaviour.Properties.of().sound(SoundType.STONE).strength(0.5f).dynamicShape());
public static final Block LITHIUM_ORE = new DropExperienceBlock(BlockBehaviour.Properties.of().mapColor(MapColor.STONE).instrument(NoteBlockInstrument.BASEDRUM).requiresCorrectToolForDrops().strength(3.0F, 3.0F), UniformInt.of(3, 7));
public static final Block DEEPSLATE_LITHIUM_ORE = new DropExperienceBlock(BlockBehaviour.Properties.copy(LITHIUM_ORE).mapColor(MapColor.DEEPSLATE).strength(4.5F, 3.0F).sound(SoundType.DEEPSLATE), UniformInt.of(3, 7));
public static final Block LITHIUM_BLOCK = new DropExperienceBlock(BlockBehaviour.Properties.copy(LITHIUM_ORE).mapColor(MapColor.DEEPSLATE).strength(4.5F, 3.0F).sound(SoundType.DEEPSLATE), UniformInt.of(3, 7));
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package com.mrmelon54.ArcTech.init;

import com.mrmelon54.ArcTech.ArcTech;
import dev.architectury.registry.registries.Registrar;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.Item;
import net.minecraft.world.level.block.Block;

public class BlocksAndItems {
private static final Registrar<Block> blockReg = ArcTech.MANAGER.get().get(Registries.BLOCK);
private static final Registrar<Item> itemReg = ArcTech.MANAGER.get().get(Registries.ITEM);

public static void init() {
initBlockItem("crafting_station", Blocks.CRAFTING_STATION, new Item.Properties().stacksTo(61).arch$tab(CreativeTab.ARCTECH_CREATIVE_TAB));
initBlockItem("wire_copper", Blocks.WIRE_COPPER, new Item.Properties().arch$tab(CreativeTab.ARCTECH_CREATIVE_TAB));
initBlockItem("wire_electric", Blocks.WIRE_ELECTRIC, new Item.Properties().arch$tab(CreativeTab.ARCTECH_CREATIVE_TAB));
initBlockItem("lithium_ore", Blocks.LITHIUM_ORE, new Item.Properties().arch$tab(CreativeTab.ARCTECH_CREATIVE_TAB));
initBlockItem("deepslate_lithium_ore", Blocks.DEEPSLATE_LITHIUM_ORE, new Item.Properties().arch$tab(CreativeTab.ARCTECH_CREATIVE_TAB));
initBlockItem("lithium_block", Blocks.LITHIUM_BLOCK, new Item.Properties().arch$tab(CreativeTab.ARCTECH_CREATIVE_TAB));
initItem("crescent_hammer", Items.CRESCENT_HAMMER);
initItem("raw_lithium", Items.RAW_LITHIUM);
initItem("lithium_ingot", Items.LITHIUM_INGOT);
}

private static ResourceLocation id(String a) {
return new ResourceLocation(ArcTech.MOD_ID, a);
}

private static void initBlockItem(String loc, Block block, Item.Properties properties) {
blockReg.register(id(loc), () -> block);
initItem(loc, new BlockItem(block, properties));
}

private static void initItem(String loc, Item item) {
itemReg.register(id(loc), () -> item);
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.mrmelon54.ArcTech;
package com.mrmelon54.ArcTech.init;

import com.mrmelon54.ArcTech.ArcTech;
import dev.architectury.registry.CreativeTabRegistry;
import net.minecraft.core.registries.Registries;
import net.minecraft.network.chat.Component;
Expand Down
9 changes: 9 additions & 0 deletions common/src/main/java/com/mrmelon54/ArcTech/init/Items.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.mrmelon54.ArcTech.init;

import net.minecraft.world.item.Item;

public class Items {
public static final Item CRESCENT_HAMMER = new Item(new Item.Properties().arch$tab(CreativeTab.ARCTECH_CREATIVE_TAB));
public static final Item RAW_LITHIUM = new Item(new Item.Properties().arch$tab(CreativeTab.ARCTECH_CREATIVE_TAB));
public static final Item LITHIUM_INGOT = new Item(new Item.Properties().arch$tab(CreativeTab.ARCTECH_CREATIVE_TAB));
}
12 changes: 12 additions & 0 deletions common/src/main/java/com/mrmelon54/ArcTech/init/LoadModels.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.mrmelon54.ArcTech.init;

import com.mrmelon54.ArcTech.ArcTech;
import com.mrmelon54.ArcTech.LoadModelExpectPlatform;
import com.mrmelon54.ArcTech.wire.WireModel;
import net.minecraft.resources.ResourceLocation;

public class LoadModels {
public static void init() {
LoadModelExpectPlatform.loadModel(new ResourceLocation(ArcTech.MOD_ID, "block/wire_electric"), WireModel.loadAll("electric"));
}
}
109 changes: 0 additions & 109 deletions common/src/main/java/com/mrmelon54/ArcTech/wire/WireBakedModel.java

This file was deleted.

Loading

0 comments on commit ca4ee86

Please sign in to comment.