Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Signed-off-by: TheDudeFromCI <thedudefromci@gmail.com>
  • Loading branch information
TheDudeFromCI committed Mar 21, 2022
2 parents 0bc0900 + d4fc162 commit e0c48e2
Show file tree
Hide file tree
Showing 17 changed files with 876 additions and 83 deletions.
6 changes: 3 additions & 3 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"MOD_CLASSES": "clientRun%%${workspaceFolder}/bin/main:clientRun%%${workspaceFolder}/bin/main",
"MCP_MAPPINGS": "parchment_2021.08.08-1.16.5",
"MCP_VERSION": "20210115.111550",
"FORGE_VERSION": "36.2.0",
"FORGE_VERSION": "36.2.20",
"assetIndex": "1.16",
"assetDirectory": "/home/thedudefromci/.gradle/caches/forge_gradle/assets",
"nativesDirectory": "${workspaceFolder}/build/natives",
Expand All @@ -36,11 +36,11 @@
"MOD_CLASSES": "serverRun%%${workspaceFolder}/bin/main:serverRun%%${workspaceFolder}/bin/main",
"MCP_MAPPINGS": "parchment_2021.08.08-1.16.5",
"MCP_VERSION": "20210115.111550",
"FORGE_VERSION": "36.2.0",
"FORGE_VERSION": "36.2.20",
"FORGE_GROUP": "net.minecraftforge",
"target": "fmluserdevserver",
"MC_VERSION": "1.16.5"
}
}
]
}
}
36 changes: 13 additions & 23 deletions src/main/java/me/ci/moregears/CreateMoreGears.java
Original file line number Diff line number Diff line change
@@ -1,42 +1,32 @@
package me.ci.moregears;

import com.simibubi.create.foundation.data.CreateRegistrate;
import com.simibubi.create.repack.registrate.util.NonNullLazyValue;

import me.ci.moregears.registry.ModBlocks;
import me.ci.moregears.registry.ModTags;
import me.ci.moregears.registry.ModItemGroups;
import me.ci.moregears.registry.ModTiles;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.Mod;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

@Mod(CreateMoreGears.MOD_ID)
public class CreateMoreGears {

private static final NonNullLazyValue<CreateRegistrate> REGISTRATE = CreateRegistrate.lazy(CreateMoreGears.MOD_ID);

public static final String MOD_ID = "createmoregears";
public static final String MOD_NAME = "Create: More Gears";
public static final Logger LOGGER = LogManager.getLogger();
public static CreateMoreGears INSTANCE;

public final ModTiles tiles;
public final ModTags tags;
public final ModBlocks blocks;
@SuppressWarnings("deprecation")
public static CreateRegistrate getRegistrate() {
return REGISTRATE.get();
}

public CreateMoreGears() {
INSTANCE = this;

@SuppressWarnings("deprecation")
CreateRegistrate registrate = CreateRegistrate.lazy(CreateMoreGears.MOD_ID).get();

ItemGroup itemGroup = new ItemGroup(CreateMoreGears.MOD_ID) {
@Override
public ItemStack makeIcon() {
return new ItemStack(blocks.wormGear.get());
}
};
registrate = registrate.itemGroup(() -> itemGroup);

tags = new ModTags();
blocks = new ModBlocks(registrate, tags);
tiles = new ModTiles(registrate, blocks);
ModItemGroups.register();
ModBlocks.register();
ModTiles.register();
}
}
6 changes: 3 additions & 3 deletions src/main/java/me/ci/moregears/blocks/WormGearBlock.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.simibubi.create.AllShapes;
import com.simibubi.create.content.contraptions.relays.elementary.CogWheelBlock;

import me.ci.moregears.CreateMoreGears;
import me.ci.moregears.registry.ModTiles;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.tileentity.TileEntity;
Expand All @@ -26,7 +26,7 @@ public WormGearBlock(Properties properties) {

@Override
public TileEntity createTileEntity(BlockState state, IBlockReader world) {
return CreateMoreGears.INSTANCE.tiles.wormGear.create();
return ModTiles.WORM_GEAR.create();
}

@Override
Expand All @@ -53,7 +53,7 @@ public boolean canSurvive(BlockState state, IWorldReader worldIn, BlockPos pos)
@Override
@Deprecated
public VoxelShape getShape(
BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) {
BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) {
return AllShapes.SIX_VOXEL_POLE.get(state.getValue(AXIS));
}

Expand Down
48 changes: 48 additions & 0 deletions src/main/java/me/ci/moregears/blocks/ballista/BallistaBlock.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package me.ci.moregears.blocks;

import com.simibubi.create.content.contraptions.base.KineticBlock;
import com.simibubi.create.content.contraptions.relays.elementary.ICogWheel;
import com.simibubi.create.foundation.block.ITE;

import me.ci.moregears.registry.ModTiles;
import me.ci.moregears.tiles.BallistaTile;
import net.minecraft.block.BlockState;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Direction;
import net.minecraft.util.Direction.Axis;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockReader;
import net.minecraft.world.IWorldReader;

public class BallistaBlock extends KineticBlock implements ITE<BallistaTile>, ICogWheel {

public BallistaBlock(Properties properties) {
super(properties);
}

@Override
public Axis getRotationAxis(BlockState state) {
return Axis.Y;
}

@Override
public TileEntity createTileEntity(BlockState state, IBlockReader world) {
return ModTiles.BALLISTA.create();
}

@Override
public Class<BallistaTile> getTileEntityClass() {
return BallistaTile.class;
}

@Override
public boolean hasShaftTowards(IWorldReader world, BlockPos pos, BlockState state, Direction face) {
return false;
}

@Override
public SpeedLevel getMinimumRequiredSpeedLevel() {
return SpeedLevel.of(8);
}

}
21 changes: 21 additions & 0 deletions src/main/java/me/ci/moregears/blocks/ballista/BallistaCog.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package me.ci.moregears.blocks.ballista;

import com.jozufozu.flywheel.backend.instancing.Instancer;
import com.jozufozu.flywheel.backend.material.MaterialManager;
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
import com.simibubi.create.content.contraptions.base.RotatingData;
import com.simibubi.create.content.contraptions.base.SingleRotatingInstance;

public class BallistaCog extends SingleRotatingInstance {

public BallistaCog(MaterialManager<?> modelManager, KineticTileEntity tile) {
super(modelManager, tile);
}

// @Override
// protected Instancer<RotatingData> getModel() {
// return getRotatingMaterial().getModel(ModBlockPartials.BALLISTA_COGWHEEL,
// tile.getBlockState());
// }

}
23 changes: 23 additions & 0 deletions src/main/java/me/ci/moregears/registry/ModBlockPartials.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package me.ci.moregears.registry;

import com.jozufozu.flywheel.core.PartialModel;

import me.ci.moregears.CreateMoreGears;
import net.minecraft.util.ResourceLocation;

public final class ModBlockPartials {

public static final PartialModel BALLISTA_COGWHEEL = get("ballista/cogwheel");

private static PartialModel get(String path) {
ResourceLocation loc = new ResourceLocation(CreateMoreGears.MOD_ID, "block/" + path);
return new PartialModel(loc);
}

public static void register() {
// Load static fields
}

private ModBlockPartials(){
}
}
79 changes: 48 additions & 31 deletions src/main/java/me/ci/moregears/registry/ModBlocks.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,45 +5,62 @@
import com.simibubi.create.content.AllSections;
import com.simibubi.create.content.contraptions.relays.elementary.BracketedKineticBlockModel;
import com.simibubi.create.foundation.block.BlockStressDefaults;
import com.simibubi.create.foundation.data.AssetLookup;
import com.simibubi.create.foundation.data.BlockStateGen;
import com.simibubi.create.foundation.data.CreateRegistrate;
import com.simibubi.create.repack.registrate.providers.RegistrateRecipeProvider;
import com.simibubi.create.foundation.data.ModelGen;
import com.simibubi.create.repack.registrate.util.entry.BlockEntry;

import me.ci.moregears.CreateMoreGears;
import me.ci.moregears.blocks.BallistaBlock;
import me.ci.moregears.blocks.WormGearBlock;
import me.ci.moregears.items.WormGearItem;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
import net.minecraft.data.ShapedRecipeBuilder;

public class ModBlocks {
public final BlockEntry<WormGearBlock> wormGear;

public ModBlocks(CreateRegistrate registrate, ModTags tags) {
wormGear = registrate
.block("worm_gear", WormGearBlock::new)
.initialProperties(Material.STONE)
.properties(p -> p.sound(SoundType.WOOD))
.transform(BlockStressDefaults.setNoImpact())
.blockstate(
(c, p) -> BlockStateGen.axisBlock(
c, p, (b) -> p.models().getExistingFile(p.modLoc("block/worm_gear/block"))))
.onRegister(CreateRegistrate.blockModel(() -> BracketedKineticBlockModel::new))
.tag(tags.woodGear)
.defaultLoot()
.recipe(
(ctx, prov) -> {
ShapedRecipeBuilder.shaped(ctx.get(), 2)
.pattern("cc")
.define('c', AllBlocks.COGWHEEL.get())
.unlockedBy(
"has_cogwheel",
RegistrateRecipeProvider.hasItem(AllBlocks.COGWHEEL.get()))
.save(prov);
})
.item(WormGearItem::new)
.build()
.register();

Create.registrate().addToSection(wormGear, AllSections.KINETICS);
public final class ModBlocks {

private static final CreateRegistrate REGISTRATE = CreateMoreGears.getRegistrate();

public static final BlockEntry<WormGearBlock> WORM_GEAR = REGISTRATE
.itemGroup(() -> ModItemGroups.DEFAULT_GROUP)
.block("worm_gear", WormGearBlock::new)
.initialProperties(Material.STONE)
.properties(p -> p.sound(SoundType.WOOD))
.transform(BlockStressDefaults.setNoImpact())
.blockstate((c, p) -> BlockStateGen.axisBlock(c, p, b -> p.models()
.getExistingFile(p.modLoc("block/worm_gear/block"))))
.onRegister(CreateRegistrate.blockModel(() -> BracketedKineticBlockModel::new))
.defaultLoot()
.recipe((ctx, prov) -> ShapedRecipeBuilder.shaped(ctx.get(), 2)
.pattern("cc")
.define('c', AllBlocks.COGWHEEL.get())
.save(prov))
.item(WormGearItem::new)
.build()
.register();

public static final BlockEntry<BallistaBlock> BALLISTA = REGISTRATE
.itemGroup(() -> ModItemGroups.DEFAULT_GROUP)
.block("ballista", BallistaBlock::new)
.initialProperties(Material.WOOD)
.properties(p -> p.sound(SoundType.WOOD))
.transform(BlockStressDefaults.setImpact(3.0))
.blockstate((c, p) -> p.simpleBlock(c.getEntry(), AssetLookup.partialBaseModel(c, p)))
.item()
.transform(ModelGen.customItemModel())
.recipe((ctx, prov) -> ShapedRecipeBuilder.shaped(ctx.get(), 2)
.pattern("ccc")
.define('c', AllBlocks.COGWHEEL.get())
.save(prov))
.register();

public static void register() {
Create.registrate().addToSection(WORM_GEAR, AllSections.KINETICS);
Create.registrate().addToSection(BALLISTA, AllSections.KINETICS);
}

private ModBlocks() {
}
}
22 changes: 22 additions & 0 deletions src/main/java/me/ci/moregears/registry/ModItemGroups.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package me.ci.moregears.registry;

import me.ci.moregears.CreateMoreGears;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;

public final class ModItemGroups {

public static final ItemGroup DEFAULT_GROUP = new ItemGroup(CreateMoreGears.MOD_ID) {
@Override
public ItemStack makeIcon() {
return ModBlocks.WORM_GEAR.asStack();
}
};

public static void register() {
// Load static fields
}

private ModItemGroups() {
}
}
14 changes: 0 additions & 14 deletions src/main/java/me/ci/moregears/registry/ModTags.java

This file was deleted.

34 changes: 25 additions & 9 deletions src/main/java/me/ci/moregears/registry/ModTiles.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,33 @@
import com.simibubi.create.content.contraptions.base.SingleRotatingInstance;
import com.simibubi.create.foundation.data.CreateRegistrate;
import com.simibubi.create.repack.registrate.util.entry.TileEntityEntry;

import me.ci.moregears.CreateMoreGears;
import me.ci.moregears.tiles.BallistaTile;
import me.ci.moregears.tiles.WormGearTile;

public class ModTiles {
public final TileEntityEntry<WormGearTile> wormGear;
public final class ModTiles {

private static final CreateRegistrate REGISTRATE = CreateMoreGears.getRegistrate();

public static final TileEntityEntry<WormGearTile> WORM_GEAR = REGISTRATE
.tileEntity("worm_gear", WormGearTile::new)
.instance(() -> SingleRotatingInstance::new)
.validBlock(ModBlocks.WORM_GEAR)
.renderer(() -> KineticTileEntityRenderer::new)
.register();

public static final TileEntityEntry<BallistaTile> BALLISTA = REGISTRATE
.tileEntity("ballista", BallistaTile::new)
.instance(() -> SingleRotatingInstance::new)
.validBlock(ModBlocks.BALLISTA)
.renderer(() -> KineticTileEntityRenderer::new)
.register();

public static void register() {
// Just load the static fields
}

public ModTiles(CreateRegistrate registrate, ModBlocks blocks) {
wormGear = registrate
.tileEntity("worm_gear", WormGearTile::new)
.instance(() -> SingleRotatingInstance::new)
.validBlock(blocks.wormGear)
.renderer(() -> KineticTileEntityRenderer::new)
.register();
private ModTiles() {
}
}
18 changes: 18 additions & 0 deletions src/main/java/me/ci/moregears/tiles/BallistaTile.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package me.ci.moregears.tiles;

import com.simibubi.create.content.contraptions.base.KineticTileEntity;

import net.minecraft.tileentity.TileEntityType;
import net.minecraftforge.items.ItemStackHandler;

public class BallistaTile extends KineticTileEntity {

private final ItemStackHandler inventory;

public BallistaTile(TileEntityType<?> typeIn) {
super(typeIn);

this.inventory = new ItemStackHandler();
}

}
Loading

0 comments on commit e0c48e2

Please sign in to comment.