diff --git a/src/main/kotlin/de/wulkanat/www/new_frontiers/NFCreativeTabs.kt b/src/main/kotlin/de/wulkanat/www/new_frontiers/NFCreativeTabs.kt new file mode 100644 index 0000000..e3e0fae --- /dev/null +++ b/src/main/kotlin/de/wulkanat/www/new_frontiers/NFCreativeTabs.kt @@ -0,0 +1,19 @@ +package de.wulkanat.www.new_frontiers + +import net.minecraft.creativetab.CreativeTabs +import net.minecraft.init.Blocks +import net.minecraft.item.Item +import net.minecraft.item.ItemStack +import net.minecraftforge.fml.relauncher.Side +import net.minecraftforge.fml.relauncher.SideOnly + +class NFCreativeTabs : CreativeTabs("new_frontiers") { + override fun getTabLabel(): String { + return "new_frontiers" + } + + @SideOnly(Side.CLIENT) + override fun createIcon(): ItemStack { + return ItemStack(Item.getItemFromBlock(NewFrontiers.ObjectRegistryHandler.blocks[0])) + } +} diff --git a/src/main/kotlin/de/wulkanat/www/newfrontiers/NewFrontiers.kt b/src/main/kotlin/de/wulkanat/www/new_frontiers/NewFrontiers.kt similarity index 77% rename from src/main/kotlin/de/wulkanat/www/newfrontiers/NewFrontiers.kt rename to src/main/kotlin/de/wulkanat/www/new_frontiers/NewFrontiers.kt index 9e8ff79..e91b845 100644 --- a/src/main/kotlin/de/wulkanat/www/newfrontiers/NewFrontiers.kt +++ b/src/main/kotlin/de/wulkanat/www/new_frontiers/NewFrontiers.kt @@ -1,17 +1,20 @@ -package de.wulkanat.www.newfrontiers +package de.wulkanat.www.new_frontiers -import de.wulkanat.www.newfrontiers.blocks.NFBlock -import de.wulkanat.www.newfrontiers.blocks.SpaceTeleporter +import de.wulkanat.www.new_frontiers.blocks.FTLDrive +import de.wulkanat.www.new_frontiers.blocks.NFBlock +import de.wulkanat.www.new_frontiers.blocks.SpaceTeleporter +import de.wulkanat.www.new_frontiers.dimensions.Space import net.minecraft.block.Block import net.minecraft.item.Item import net.minecraft.item.ItemBlock +import net.minecraft.world.DimensionType +import net.minecraftforge.common.DimensionManager import net.minecraftforge.event.RegistryEvent import net.minecraftforge.fml.common.Mod import net.minecraftforge.fml.common.event.FMLInitializationEvent import net.minecraftforge.fml.common.event.FMLPostInitializationEvent import net.minecraftforge.fml.common.event.FMLPreInitializationEvent import net.minecraftforge.fml.common.eventhandler.SubscribeEvent -import net.minecraftforge.fml.common.registry.GameRegistry @Mod( modid = NewFrontiers.MOD_ID, @@ -20,17 +23,20 @@ import net.minecraftforge.fml.common.registry.GameRegistry modLanguageAdapter = "net.shadowfacts.forgelin.KotlinAdapter" ) object NewFrontiers { - const val MOD_ID = "new-frontiers" + const val MOD_ID = "new_frontiers" const val MOD_NAME = "New Frontiers" const val VERSION = "1.0-SNAPSHOT" + val NF_CREATIVE_TAB = NFCreativeTabs() + /** * This is the first initialization event. Register tile entities here. * The registry events below will have fired prior to entry to this method. */ @Mod.EventHandler fun preinit(event: FMLPreInitializationEvent) { - + val a = DimensionType.register("Space", "_space", 2, Space::class.java, false) + DimensionManager.registerDimension(2, a) } /** @@ -53,8 +59,9 @@ object NewFrontiers { */ @Mod.EventBusSubscriber(modid = MOD_ID) object ObjectRegistryHandler { - private val blocks: Array = arrayOf( - SpaceTeleporter(MOD_ID, "space_teleporter") + val blocks: Array = arrayOf( + SpaceTeleporter(), + FTLDrive() ) /** diff --git a/src/main/kotlin/de/wulkanat/www/new_frontiers/StaticValues.kt b/src/main/kotlin/de/wulkanat/www/new_frontiers/StaticValues.kt new file mode 100644 index 0000000..164470d --- /dev/null +++ b/src/main/kotlin/de/wulkanat/www/new_frontiers/StaticValues.kt @@ -0,0 +1,5 @@ +package de.wulkanat.www.new_frontiers + +object StaticValues { + +} diff --git a/src/main/kotlin/de/wulkanat/www/new_frontiers/biomes/NFBiome.kt b/src/main/kotlin/de/wulkanat/www/new_frontiers/biomes/NFBiome.kt new file mode 100644 index 0000000..4bfc4db --- /dev/null +++ b/src/main/kotlin/de/wulkanat/www/new_frontiers/biomes/NFBiome.kt @@ -0,0 +1,2 @@ +package de.wulkanat.www.new_frontiers.biomes + diff --git a/src/main/kotlin/de/wulkanat/www/new_frontiers/blocks/FTLDrive.kt b/src/main/kotlin/de/wulkanat/www/new_frontiers/blocks/FTLDrive.kt new file mode 100644 index 0000000..ae3ddfa --- /dev/null +++ b/src/main/kotlin/de/wulkanat/www/new_frontiers/blocks/FTLDrive.kt @@ -0,0 +1,8 @@ +package de.wulkanat.www.new_frontiers.blocks + +import net.minecraft.block.material.Material + +class FTLDrive : NFBlock( + material = Material.ANVIL, + name = "ftl_drive" +) diff --git a/src/main/kotlin/de/wulkanat/www/new_frontiers/blocks/NFBlock.kt b/src/main/kotlin/de/wulkanat/www/new_frontiers/blocks/NFBlock.kt new file mode 100644 index 0000000..a547039 --- /dev/null +++ b/src/main/kotlin/de/wulkanat/www/new_frontiers/blocks/NFBlock.kt @@ -0,0 +1,44 @@ +package de.wulkanat.www.new_frontiers.blocks + +import de.wulkanat.www.new_frontiers.NewFrontiers +import net.minecraft.block.Block +import net.minecraft.block.material.Material +import net.minecraft.creativetab.CreativeTabs +import net.minecraft.world.World + +abstract class NFBlock( + val hasItemBlock: Boolean = true, + val collidable: Boolean = true, + val tickRate: Int = 10, + material: Material, + hardness: Float = 1.0F, + resistance: Float = 1.0F, + lightLevel: Int = 0, + lightOpacity: Int = 0, + name: String, + creativeTabs: CreativeTabs = NewFrontiers.NF_CREATIVE_TAB + ) : Block(material) { + init { + // The Java code is a lot of hot garbage, so most of this is copied from the setter functions + blockResistance = resistance * 3.0f + + blockHardness = hardness + if (blockResistance < hardness * 5.0f) { + blockResistance = hardness * 5.0f + } + + setRegistryName("${NewFrontiers.MOD_ID}:$name") + this.translationKey = name + this.lightValue = lightLevel + this.lightOpacity = lightOpacity + this.creativeTab = creativeTabs + } + + override fun isCollidable(): Boolean { + return collidable + } + + override fun tickRate(p_tickRate_1_: World): Int { + return tickRate + } +} diff --git a/src/main/kotlin/de/wulkanat/www/new_frontiers/blocks/SpaceTeleporter.kt b/src/main/kotlin/de/wulkanat/www/new_frontiers/blocks/SpaceTeleporter.kt new file mode 100644 index 0000000..2797f02 --- /dev/null +++ b/src/main/kotlin/de/wulkanat/www/new_frontiers/blocks/SpaceTeleporter.kt @@ -0,0 +1,11 @@ +package de.wulkanat.www.new_frontiers.blocks + +import net.minecraft.block.material.Material + +class SpaceTeleporter : NFBlock( + material = Material.GROUND, + hardness = 1.5F, + resistance = 2.5F, + lightLevel = 15, + name = "space_teleporter" +) diff --git a/src/main/kotlin/de/wulkanat/www/new_frontiers/dimensions/NFDimension.kt b/src/main/kotlin/de/wulkanat/www/new_frontiers/dimensions/NFDimension.kt new file mode 100644 index 0000000..134d411 --- /dev/null +++ b/src/main/kotlin/de/wulkanat/www/new_frontiers/dimensions/NFDimension.kt @@ -0,0 +1,21 @@ +package de.wulkanat.www.new_frontiers.dimensions + +import net.minecraft.world.DimensionType +import net.minecraft.world.WorldProvider +import net.minecraft.world.gen.IChunkGenerator + +abstract class NFDimension( + private val canRespawn: Boolean = true, + private val surfaceDimension: Boolean = false +) : WorldProvider() { + abstract override fun getDimensionType(): DimensionType + abstract override fun createChunkGenerator(): IChunkGenerator + + override fun canRespawnHere(): Boolean { + return canRespawn + } + + override fun isSurfaceWorld(): Boolean { + return surfaceDimension + } +} diff --git a/src/main/kotlin/de/wulkanat/www/new_frontiers/dimensions/Space.kt b/src/main/kotlin/de/wulkanat/www/new_frontiers/dimensions/Space.kt new file mode 100644 index 0000000..4c92cdf --- /dev/null +++ b/src/main/kotlin/de/wulkanat/www/new_frontiers/dimensions/Space.kt @@ -0,0 +1,17 @@ +package de.wulkanat.www.new_frontiers.dimensions + +import net.minecraft.world.DimensionType +import net.minecraft.world.gen.IChunkGenerator + +class Space : NFDimension( + canRespawn = true, + surfaceDimension = false +) { + override fun getDimensionType(): DimensionType { + TODO("not implemented") //To change body of created functions use File | Settings | File Templates. + } + + override fun createChunkGenerator(): IChunkGenerator { + TODO("not implemented") + } +} diff --git a/src/main/kotlin/de/wulkanat/www/newfrontiers/StaticValues.kt b/src/main/kotlin/de/wulkanat/www/newfrontiers/StaticValues.kt deleted file mode 100644 index fe05282..0000000 --- a/src/main/kotlin/de/wulkanat/www/newfrontiers/StaticValues.kt +++ /dev/null @@ -1,5 +0,0 @@ -package de.wulkanat.www.newfrontiers - -object StaticValues { - -} diff --git a/src/main/kotlin/de/wulkanat/www/newfrontiers/blocks/NFBlock.kt b/src/main/kotlin/de/wulkanat/www/newfrontiers/blocks/NFBlock.kt deleted file mode 100644 index 1e0ef75..0000000 --- a/src/main/kotlin/de/wulkanat/www/newfrontiers/blocks/NFBlock.kt +++ /dev/null @@ -1,8 +0,0 @@ -package de.wulkanat.www.newfrontiers.blocks - -import net.minecraft.block.Block -import net.minecraft.block.material.Material - -abstract class NFBlock(material: Material) : Block(material) { - val hasItemBlock = true -} diff --git a/src/main/kotlin/de/wulkanat/www/newfrontiers/blocks/SpaceTeleporter.kt b/src/main/kotlin/de/wulkanat/www/newfrontiers/blocks/SpaceTeleporter.kt deleted file mode 100644 index 4f01045..0000000 --- a/src/main/kotlin/de/wulkanat/www/newfrontiers/blocks/SpaceTeleporter.kt +++ /dev/null @@ -1,13 +0,0 @@ -package de.wulkanat.www.newfrontiers.blocks - -import net.minecraft.block.material.Material -import net.minecraft.creativetab.CreativeTabs - -class SpaceTeleporter(modid: String, name: String) : NFBlock(Material.GROUND) { - init { - setHardness(1.5F) - setResistance(2.5F) - setRegistryName("$modid:$name") - creativeTab = CreativeTabs.BUILDING_BLOCKS - } -} diff --git a/src/main/resources/assets/new_frontiers/blockstates/space_teleporter.json b/src/main/resources/assets/new_frontiers/blockstates/space_teleporter.json new file mode 100644 index 0000000..f770bcb --- /dev/null +++ b/src/main/resources/assets/new_frontiers/blockstates/space_teleporter.json @@ -0,0 +1,7 @@ +{ + "variants": { + "normal": { + "model": "new_frontiers:space_teleporter" + } + } +} diff --git a/src/main/resources/assets/new_frontiers/lang/en_US.lang b/src/main/resources/assets/new_frontiers/lang/en_US.lang new file mode 100644 index 0000000..fdcc93b --- /dev/null +++ b/src/main/resources/assets/new_frontiers/lang/en_US.lang @@ -0,0 +1,4 @@ +tile.space_teleporter.name=Space Teleporter +tile.ftl_drive.name=FTL Drive + +itemGroup.new_frontiers=New Frontiers diff --git a/src/main/resources/assets/new_frontiers/models/block/space_teleporter.json b/src/main/resources/assets/new_frontiers/models/block/space_teleporter.json new file mode 100644 index 0000000..79c5ee9 --- /dev/null +++ b/src/main/resources/assets/new_frontiers/models/block/space_teleporter.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "new_frontiers:blocks/space_teleporter" + } +} diff --git a/src/main/resources/assets/new_frontiers/models/item/space_teleporter.json b/src/main/resources/assets/new_frontiers/models/item/space_teleporter.json new file mode 100644 index 0000000..fd86090 --- /dev/null +++ b/src/main/resources/assets/new_frontiers/models/item/space_teleporter.json @@ -0,0 +1,3 @@ +{ + "parent": "new_frontiers:block/space_teleporter" +} diff --git a/src/main/resources/assets/new_frontiers/recipes/space_teleporter.json b/src/main/resources/assets/new_frontiers/recipes/space_teleporter.json new file mode 100644 index 0000000..f1952c1 --- /dev/null +++ b/src/main/resources/assets/new_frontiers/recipes/space_teleporter.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " d ", + "oxo", + "ooo" + ], + "key": { + "d": { + "item": "minecraft:diamond" + }, + "o": { + "item": "minecraft:obsidian" + }, + "x": { + "item": "minecraft:coal" + } + }, + "result": { + "item": "new_frontiers:space_teleporter", + "count": 1 + } +} diff --git a/src/main/resources/assets/new_frontiers/textures/blocks/space_teleporter.png b/src/main/resources/assets/new_frontiers/textures/blocks/space_teleporter.png new file mode 100644 index 0000000..666fbb3 Binary files /dev/null and b/src/main/resources/assets/new_frontiers/textures/blocks/space_teleporter.png differ diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index e6c61d0..1cb017c 100644 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -1,6 +1,6 @@ [ { - "modid": "new-frontiers", + "modid": "new_frontiers", "name": "New Frontiers", "description": "Make Minecraft a true Space Exploation Game", "version": "${version}",