feat(projector): baiscs
This commit is contained in:
parent
baf865e80b
commit
0732fc24ef
@ -1,15 +0,0 @@
|
||||
package quaedam.mixin;
|
||||
|
||||
import net.minecraft.client.gui.screens.TitleScreen;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
@Mixin(TitleScreen.class)
|
||||
public class MixinTitleScreen {
|
||||
@Inject(at = @At("HEAD"), method = "init()V")
|
||||
private void init(CallbackInfo info) {
|
||||
System.out.println("Hello from example architectury common mixin!");
|
||||
}
|
||||
}
|
50
common/src/main/kotlin/quaedam/Projector.kt
Normal file
50
common/src/main/kotlin/quaedam/Projector.kt
Normal file
@ -0,0 +1,50 @@
|
||||
package quaedam
|
||||
|
||||
import net.minecraft.core.BlockPos
|
||||
import net.minecraft.world.InteractionHand
|
||||
import net.minecraft.world.InteractionResult
|
||||
import net.minecraft.world.entity.player.Player
|
||||
import net.minecraft.world.item.BlockItem
|
||||
import net.minecraft.world.item.Item
|
||||
import net.minecraft.world.level.Level
|
||||
import net.minecraft.world.level.block.Block
|
||||
import net.minecraft.world.level.block.state.BlockState
|
||||
import net.minecraft.world.level.material.MapColor
|
||||
import net.minecraft.world.phys.BlockHitResult
|
||||
|
||||
object Projector {
|
||||
|
||||
const val ID = "projector"
|
||||
|
||||
val block = Quaedam.blocks.register(ID) { ProjectorBlock }
|
||||
|
||||
val item = Quaedam.items.register(ID) {
|
||||
BlockItem(
|
||||
ProjectorBlock, Item.Properties()
|
||||
.stacksTo(1)
|
||||
.`arch$tab`(Quaedam.creativeModeTab)
|
||||
)
|
||||
}!!
|
||||
|
||||
}
|
||||
|
||||
object ProjectorBlock : Block(Properties.of()
|
||||
.jumpFactor(0.8f)
|
||||
.lightLevel { 3 }
|
||||
.mapColor(MapColor.COLOR_BLACK)
|
||||
.randomTicks()
|
||||
.destroyTime(4.0f)
|
||||
.requiresCorrectToolForDrops()) {
|
||||
|
||||
override fun use(
|
||||
blockState: BlockState,
|
||||
level: Level,
|
||||
blockPos: BlockPos,
|
||||
player: Player,
|
||||
interactionHand: InteractionHand,
|
||||
blockHitResult: BlockHitResult
|
||||
): InteractionResult {
|
||||
return InteractionResult.SUCCESS
|
||||
}
|
||||
|
||||
}
|
@ -8,31 +8,27 @@ import net.minecraft.network.chat.Component
|
||||
import net.minecraft.world.item.CreativeModeTab
|
||||
import net.minecraft.world.item.Item
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import quaedam.QuaedamExpectPlatform.getConfigDirectory
|
||||
import net.minecraft.world.item.Items
|
||||
|
||||
object Quaedam {
|
||||
const val MOD_ID = "quaedam"
|
||||
|
||||
private val createModeTabs = DeferredRegister.create(MOD_ID, Registries.CREATIVE_MODE_TAB)
|
||||
val exampleTab: RegistrySupplier<CreativeModeTab> = createModeTabs.register("example_tab") {
|
||||
const val ID = "quaedam"
|
||||
|
||||
val creativeModeTabs = DeferredRegister.create(ID, Registries.CREATIVE_MODE_TAB)!!
|
||||
val items = DeferredRegister.create(ID, Registries.ITEM)!!
|
||||
val blocks = DeferredRegister.create(ID, Registries.BLOCK)!!
|
||||
|
||||
val creativeModeTab: RegistrySupplier<CreativeModeTab> = creativeModeTabs.register("quaedam") {
|
||||
CreativeTabRegistry.create(Component.translatable("category.quaedam")) {
|
||||
ItemStack(exampleItem.get())
|
||||
ItemStack(Items.TORCH)
|
||||
}
|
||||
}
|
||||
|
||||
private val items = DeferredRegister.create(MOD_ID, Registries.ITEM)
|
||||
val exampleItem: RegistrySupplier<Item> = items.register(
|
||||
"example_item"
|
||||
) {
|
||||
Item(
|
||||
Item.Properties().`arch$tab`(exampleTab) // DON'T CALL GET ON exampleTab HERE
|
||||
)
|
||||
}
|
||||
|
||||
fun init() {
|
||||
createModeTabs.register()
|
||||
Projector
|
||||
creativeModeTabs.register()
|
||||
items.register()
|
||||
|
||||
println("CONFIG DIR: ${getConfigDirectory().toAbsolutePath().normalize()}")
|
||||
blocks.register()
|
||||
}
|
||||
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
package quaedam
|
||||
|
||||
import dev.architectury.injectables.annotations.ExpectPlatform
|
||||
import java.nio.file.Path
|
||||
|
||||
object QuaedamExpectPlatform {
|
||||
@JvmStatic // Make sure its Jvm Static
|
||||
@ExpectPlatform
|
||||
fun getConfigDirectory(): Path {
|
||||
// Just throw an error, the content should get replaced at runtime.
|
||||
throw AssertionError()
|
||||
}
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "quaedam:block/projector"
|
||||
}
|
||||
}
|
||||
}
|
@ -1,3 +1,4 @@
|
||||
{
|
||||
"item.quaedam.example_item": "Example Item"
|
||||
"category.quaedam": "Quaedam",
|
||||
"block.quaedam.projector": "Projector"
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": []
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "minecraft:block/cube_all",
|
||||
"textures": {
|
||||
"all": "quaedam:block/projector"
|
||||
}
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
{
|
||||
"parent": "quaedam:block/projector"
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 397 B |
@ -0,0 +1,6 @@
|
||||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
"quaedam:projector"
|
||||
]
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
"quaedam:projector"
|
||||
]
|
||||
}
|
@ -3,7 +3,6 @@
|
||||
"package": "quaedam.mixin",
|
||||
"compatibilityLevel": "JAVA_17",
|
||||
"client": [
|
||||
"MixinTitleScreen"
|
||||
],
|
||||
"mixins": [
|
||||
],
|
||||
|
@ -1,14 +0,0 @@
|
||||
package quaedam.forge
|
||||
|
||||
import net.minecraftforge.fml.loading.FMLPaths
|
||||
import java.nio.file.Path
|
||||
|
||||
object QuaedamExpectPlatformImpl {
|
||||
/**
|
||||
* This is our actual method to [ExampleExpectPlatform.getConfigDirectory].
|
||||
*/
|
||||
@JvmStatic // Jvm Static is required so that java can access it
|
||||
fun getConfigDirectory(): Path {
|
||||
return FMLPaths.CONFIGDIR.get()
|
||||
}
|
||||
}
|
@ -5,11 +5,12 @@ import net.minecraftforge.fml.common.Mod
|
||||
import quaedam.Quaedam
|
||||
import thedarkcolour.kotlinforforge.forge.MOD_BUS
|
||||
|
||||
@Mod(Quaedam.MOD_ID)
|
||||
@Mod(Quaedam.ID)
|
||||
object QuaedamForge {
|
||||
|
||||
init {
|
||||
// Submit our event bus to let architectury register our content on the right time
|
||||
EventBuses.registerModEventBus(Quaedam.MOD_ID, MOD_BUS)
|
||||
EventBuses.registerModEventBus(Quaedam.ID, MOD_BUS)
|
||||
Quaedam.init()
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user