Skip to content

Commit

Permalink
Merge pull request #2 from TheDudeFromCI/ballista
Browse files Browse the repository at this point in the history
Added Ballista
  • Loading branch information
TheDudeFromCI committed Mar 21, 2022
2 parents 0ab1611 + 0714d15 commit d4fc162
Show file tree
Hide file tree
Showing 17 changed files with 886 additions and 93 deletions.
26 changes: 13 additions & 13 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@
"mainClass": "net.minecraftforge.userdev.LaunchTesting",
"projectName": "createmoregears",
"cwd": "${workspaceFolder}/run",
"vmArgs": "-Dforge.logging.console.level\u003dinfo -Dforge.logging.markers\u003dSCAN,REGISTRIES,REGISTRYDUMP -Dmixin.env.remapRefMap\u003dtrue -Dmixin.env.refMapRemappingFile\u003d/home/thedudefromci/workshop/CreateMoreGears/build/createSrgToMcp/output.srg -Dnet.minecraftforge.gradle.GradleStart.srg.srg-mcp\u003d/home/thedudefromci/workshop/CreateMoreGears/build/createSrgToMcp/output.srg -XX:+IgnoreUnrecognizedVMOptions --add-exports\u003djava.base/sun.security.util\u003dALL-UNNAMED --add-exports\u003djdk.naming.dns/com.sun.jndi.dns\u003djava.naming --add-opens\u003djava.base/java.util.jar\u003dALL-UNNAMED",
"args": "-mixin.config\u003dcreatemoregears.mixins.json",
"vmArgs": "-Dforge.logging.console.level\u003dinfo -Dforge.logging.markers\u003dREGISTRIES,REGISTRYDUMP -Dmixin.env.remapRefMap\u003dtrue -Dmixin.env.refMapRemappingFile\u003d/home/thedudefromci/workshop/CreateMoreGears/build/createSrgToMcp/output.srg -Dnet.minecraftforge.gradle.GradleStart.srg.srg-mcp\u003d/home/thedudefromci/workshop/CreateMoreGears/build/createSrgToMcp/output.srg -XX:+IgnoreUnrecognizedVMOptions --add-exports\u003djava.base/sun.security.util\u003dALL-UNNAMED --add-exports\u003djdk.naming.dns/com.sun.jndi.dns\u003djava.naming --add-opens\u003djava.base/java.util.jar\u003dALL-UNNAMED",
"args": "-mixin.config\u003dcreatemoregears.mixins.json --mixin.config createmoregears.mixins.json",
"env": {
"MOD_CLASSES": "createmoregears%%${workspaceFolder}/bin/main:createmoregears%%${workspaceFolder}/bin/main",
"MCP_MAPPINGS": "official_1.16.5",
"MCP_MAPPINGS": "parchment_2021.10.17-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 @@ -30,13 +30,13 @@
"mainClass": "net.minecraftforge.userdev.LaunchTesting",
"projectName": "createmoregears",
"cwd": "${workspaceFolder}/run",
"vmArgs": "-Dforge.logging.console.level\u003ddebug -Dforge.logging.markers\u003dSCAN,REGISTRIES,REGISTRYDUMP -Dmixin.env.remapRefMap\u003dtrue -Dmixin.env.refMapRemappingFile\u003d/home/thedudefromci/workshop/CreateMoreGears/build/createSrgToMcp/output.srg -Dnet.minecraftforge.gradle.GradleStart.srg.srg-mcp\u003d/home/thedudefromci/workshop/CreateMoreGears/build/createSrgToMcp/output.srg -XX:+IgnoreUnrecognizedVMOptions --add-exports\u003djava.base/sun.security.util\u003dALL-UNNAMED --add-exports\u003djdk.naming.dns/com.sun.jndi.dns\u003djava.naming --add-opens\u003djava.base/java.util.jar\u003dALL-UNNAMED",
"args": "--mod createmoregears --all --output /home/thedudefromci/workshop/CreateMoreGears/src/generated/resources --existing /home/thedudefromci/workshop/CreateMoreGears/src/main/resources",
"vmArgs": "-Dforge.logging.console.level\u003ddebug -Dforge.logging.markers\u003dREGISTRIES,REGISTRYDUMP -Dmixin.env.remapRefMap\u003dtrue -Dmixin.env.refMapRemappingFile\u003d/home/thedudefromci/workshop/CreateMoreGears/build/createSrgToMcp/output.srg -Dnet.minecraftforge.gradle.GradleStart.srg.srg-mcp\u003d/home/thedudefromci/workshop/CreateMoreGears/build/createSrgToMcp/output.srg -XX:+IgnoreUnrecognizedVMOptions --add-exports\u003djava.base/sun.security.util\u003dALL-UNNAMED --add-exports\u003djdk.naming.dns/com.sun.jndi.dns\u003djava.naming --add-opens\u003djava.base/java.util.jar\u003dALL-UNNAMED",
"args": "--mod createmoregears --all --output /home/thedudefromci/workshop/CreateMoreGears/src/generated/resources --existing /home/thedudefromci/workshop/CreateMoreGears/src/main/resources --mixin.config createmoregears.mixins.json",
"env": {
"MOD_CLASSES": "createmoregears%%${workspaceFolder}/bin/main:createmoregears%%${workspaceFolder}/bin/main",
"MCP_MAPPINGS": "official_1.16.5",
"MCP_MAPPINGS": "parchment_2021.10.17-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",
"FORGE_GROUP": "net.minecraftforge",
Expand All @@ -50,14 +50,14 @@
"request": "launch",
"mainClass": "net.minecraftforge.userdev.LaunchTesting",
"projectName": "createmoregears",
"cwd": "${workspaceFolder}/run",
"vmArgs": "-Dforge.logging.console.level\u003ddebug -Dforge.logging.markers\u003dSCAN,REGISTRIES,REGISTRYDUMP -Dmixin.env.remapRefMap\u003dtrue -Dmixin.env.refMapRemappingFile\u003d/home/thedudefromci/workshop/CreateMoreGears/build/createSrgToMcp/output.srg -Dnet.minecraftforge.gradle.GradleStart.srg.srg-mcp\u003d/home/thedudefromci/workshop/CreateMoreGears/build/createSrgToMcp/output.srg -XX:+IgnoreUnrecognizedVMOptions --add-exports\u003djava.base/sun.security.util\u003dALL-UNNAMED --add-exports\u003djdk.naming.dns/com.sun.jndi.dns\u003djava.naming --add-opens\u003djava.base/java.util.jar\u003dALL-UNNAMED",
"args": "-mixin.config\u003dcreatemoregears.mixins.json",
"cwd": "${workspaceFolder}/server",
"vmArgs": "-Dforge.logging.console.level\u003dinfo -Dforge.logging.markers\u003dREGISTRIES,REGISTRYDUMP -Dmixin.env.remapRefMap\u003dtrue -Dmixin.env.refMapRemappingFile\u003d/home/thedudefromci/workshop/CreateMoreGears/build/createSrgToMcp/output.srg -Dnet.minecraftforge.gradle.GradleStart.srg.srg-mcp\u003d/home/thedudefromci/workshop/CreateMoreGears/build/createSrgToMcp/output.srg -XX:+IgnoreUnrecognizedVMOptions --add-exports\u003djava.base/sun.security.util\u003dALL-UNNAMED --add-exports\u003djdk.naming.dns/com.sun.jndi.dns\u003djava.naming --add-opens\u003djava.base/java.util.jar\u003dALL-UNNAMED",
"args": "-mixin.config\u003dcreatemoregears.mixins.json --mixin.config createmoregears.mixins.json",
"env": {
"MOD_CLASSES": "createmoregears%%${workspaceFolder}/bin/main:createmoregears%%${workspaceFolder}/bin/main",
"MCP_MAPPINGS": "official_1.16.5",
"MCP_MAPPINGS": "parchment_2021.10.17-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"
Expand Down
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.

Loading

0 comments on commit d4fc162

Please sign in to comment.