mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-10 18:44:05 +09:00
weather in weathercodex
This commit is contained in:
@@ -391,7 +391,7 @@ class BuildingMaker(batch: FlippingSpriteBatch) : IngameInstance(batch) {
|
||||
|
||||
BlockPropUtil.dynamicLumFuncTickClock()
|
||||
WeatherMixer.update(delta, actorNowPlaying, gameWorld)
|
||||
if (WORLD_UPDATE_TIMER % 2 == 1) {
|
||||
if (WORLD_UPDATE_TIMER % 2 == 1L) {
|
||||
fillUpWiresBuffer()
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package net.torvald.terrarum.modulebasegame
|
||||
import net.torvald.terrarum.*
|
||||
import net.torvald.terrarum.App.printdbg
|
||||
import net.torvald.terrarum.modulebasegame.imagefont.WatchFont
|
||||
import net.torvald.terrarum.weather.WeatherMixer
|
||||
|
||||
/**
|
||||
* The entry point for the module "Basegame"
|
||||
@@ -36,6 +37,11 @@ class EntryPoint : ModuleEntryPoint() {
|
||||
ModMgr.GameLanguageLoader.invoke(moduleName)
|
||||
ModMgr.GameCraftingRecipeLoader.invoke(moduleName)
|
||||
ModMgr.GameAudioLoader.invoke(moduleName)
|
||||
ModMgr.GameWeatherLoader.invoke(moduleName)
|
||||
|
||||
WeatherCodex.weatherById["titlescreen"] =
|
||||
WeatherCodex.getById("generic01")?.copy(identifier = "titlescreen", windSpeed = 1f) ?: WeatherMixer.DEFAULT_WEATHER
|
||||
|
||||
|
||||
if (App.IS_DEVELOPMENT_BUILD) {
|
||||
println("[EntryPoint] Crafting Recipes: ")
|
||||
|
||||
@@ -261,7 +261,7 @@ object IngameRenderer : Disposable {
|
||||
if ((!gamePaused && !App.isScreenshotRequested()) || newWorldLoadedLatch) {
|
||||
measureDebugTime("Renderer.LightRun*") {
|
||||
// recalculate for even frames, or if the sign of the cam-x changed
|
||||
if (App.GLOBAL_RENDER_TIMER % 3 == 0 || Math.abs(WorldCamera.x - oldCamX) >= world.width * 0.85f * TILE_SIZEF || newWorldLoadedLatch) {
|
||||
if (App.GLOBAL_RENDER_TIMER % 3 == 0L || Math.abs(WorldCamera.x - oldCamX) >= world.width * 0.85f * TILE_SIZEF || newWorldLoadedLatch) {
|
||||
LightmapRenderer.recalculate(actorsRenderFarBehind + actorsRenderBehind + actorsRenderFront + actorsRenderMidTop + actorsRenderMiddle + actorsRenderOverlay)
|
||||
}
|
||||
oldCamX = WorldCamera.x
|
||||
|
||||
@@ -948,12 +948,12 @@ open class TerrarumIngame(batch: FlippingSpriteBatch) : IngameInstance(batch) {
|
||||
}
|
||||
// fill up visibleActorsRenderFront for wires but not on every update
|
||||
measureDebugTime("Ingame.FillUpWiresBuffer*") {
|
||||
if (WORLD_UPDATE_TIMER % 2 == 1) {
|
||||
if (WORLD_UPDATE_TIMER % 2 == 1L) {
|
||||
fillUpWiresBuffer()
|
||||
}
|
||||
}
|
||||
measureDebugTime("Ingame.FillUpWirePortsView*") {
|
||||
if (WORLD_UPDATE_TIMER % 2 == 0) {
|
||||
if (WORLD_UPDATE_TIMER % 2 == 0L) {
|
||||
val fixtures = INGAME.actorContainerActive.filterIsInstance<Electric>()
|
||||
fillUpWirePortsView(fixtures)
|
||||
}
|
||||
@@ -978,7 +978,7 @@ open class TerrarumIngame(batch: FlippingSpriteBatch) : IngameInstance(batch) {
|
||||
|
||||
|
||||
|
||||
actorNowPlaying?.let { if (WORLD_UPDATE_TIMER % 4 == 1) updateWorldGenerator(actorNowPlaying!!) }
|
||||
actorNowPlaying?.let { if (WORLD_UPDATE_TIMER % 4 == 1L) updateWorldGenerator(actorNowPlaying!!) }
|
||||
|
||||
|
||||
|
||||
@@ -1646,7 +1646,7 @@ open class TerrarumIngame(batch: FlippingSpriteBatch) : IngameInstance(batch) {
|
||||
val punchSize = getPunchSize(actor)
|
||||
val punchBlockSize = punchSize.div(TILE_SIZED).floorToInt()
|
||||
|
||||
val mouseUnderPunchableTree = BlockCodex[world.getTileFromTerrain(mtx, mty)].hasAnyTagOf("LEAVES", "TREESMALL")
|
||||
val mouseUnderPunchableTree = BlockCodex[world.getTileFromTerrain(mtx, mty)].hasAnyTagsOf("LEAVES", "TREESMALL")
|
||||
|
||||
|
||||
// punch a small tree/shrub
|
||||
|
||||
@@ -6,7 +6,8 @@ import net.torvald.terrarum.*
|
||||
import net.torvald.terrarum.App.printdbg
|
||||
import net.torvald.terrarum.audio.AudioBank
|
||||
import net.torvald.terrarum.audio.AudioMixer
|
||||
import net.torvald.terrarum.audio.MusicContainer
|
||||
import net.torvald.terrarum.audio.audiobank.MusicContainer
|
||||
|
||||
import net.torvald.terrarum.gameworld.WorldTime.Companion.DAY_LENGTH
|
||||
import java.io.File
|
||||
|
||||
|
||||
@@ -3,7 +3,6 @@ package net.torvald.terrarum.modulebasegame
|
||||
import com.badlogic.gdx.utils.Queue
|
||||
import net.torvald.random.HQRNG
|
||||
import net.torvald.terrarum.*
|
||||
import net.torvald.terrarum.App.printdbg
|
||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZED
|
||||
import net.torvald.terrarum.blockproperties.Block
|
||||
@@ -16,7 +15,6 @@ import net.torvald.terrarum.modulebasegame.TerrarumIngame.Companion.inUpdateRang
|
||||
import net.torvald.terrarum.modulebasegame.gameactors.*
|
||||
import net.torvald.terrarum.modulebasegame.gameitems.AxeCore
|
||||
import org.dyn4j.geometry.Vector2
|
||||
import java.lang.Math.pow
|
||||
import kotlin.math.cosh
|
||||
import kotlin.math.min
|
||||
import kotlin.math.pow
|
||||
@@ -154,7 +152,7 @@ object WorldSimulator {
|
||||
val ry = rng.nextInt(updateYFrom, updateYTo + 1)
|
||||
val tile = world.getTileFromTerrain(rx, ry)
|
||||
// if the dirt tile has a grass and an air tile nearby, put grass to it
|
||||
if (BlockCodex[tile].hasAllTagOf("TREE", "LEAVES")) {
|
||||
if (BlockCodex[tile].hasAllTagsOf("TREE", "LEAVES")) {
|
||||
val nearby8 = getNearbyTiles8(rx, ry)
|
||||
val nearbyCount = nearby8.count { BlockCodex[it].hasTag("TREE") }
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.badlogic.gdx.Gdx
|
||||
import net.torvald.spriteanimation.SingleImageSprite
|
||||
import net.torvald.terrarum.*
|
||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZED
|
||||
import net.torvald.terrarum.audio.MusicContainer
|
||||
import net.torvald.terrarum.audio.audiobank.MusicContainer
|
||||
import net.torvald.terrarum.audio.decibelsToFullscale
|
||||
import net.torvald.terrarum.gameactors.ActorWithBody
|
||||
import net.torvald.terrarum.gameactors.PhysProperties
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
package net.torvald.terrarum.modulebasegame.gameactors
|
||||
|
||||
import com.badlogic.gdx.Input
|
||||
import com.badlogic.gdx.graphics.Color
|
||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||
import net.torvald.spriteanimation.SheetSpriteAnimation
|
||||
import net.torvald.terrarum.*
|
||||
import net.torvald.terrarum.App.printdbg
|
||||
import net.torvald.terrarum.blockproperties.Block
|
||||
import net.torvald.terrarum.gamecontroller.KeyToggler
|
||||
import net.torvald.terrarum.gameitems.ItemID
|
||||
import net.torvald.terrarum.modulebasegame.gameitems.PickaxeCore
|
||||
import net.torvald.terrarum.modulebasegame.worldgenerator.Treegen
|
||||
@@ -76,7 +72,7 @@ open class SaplingBase(val species: Int) : Cultivable(72000) {
|
||||
|
||||
// check for soil
|
||||
val groundTile = INGAME.world.getTileFromTerrain(intTilewiseHitbox.startX.toInt(), intTilewiseHitbox.endY.toInt() + 1)
|
||||
if (BlockCodex[groundTile].hasNoTagOf("CULTIVABLE")) {
|
||||
if (BlockCodex[groundTile].hasNoTagsOf("CULTIVABLE")) {
|
||||
despawnHook = {
|
||||
printdbg(this, "Sapling despawn!")
|
||||
PickaxeCore.dropItem("item@basegame:${160 + species}", intTilewiseHitbox.canonicalX.toInt(), intTilewiseHitbox.canonicalY.toInt())
|
||||
@@ -96,7 +92,7 @@ open class SaplingBase(val species: Int) : Cultivable(72000) {
|
||||
}
|
||||
private var treeHasBeenGrown = false
|
||||
override fun tryToSpawnMaturePlant() {
|
||||
if (INGAME.WORLD_UPDATE_TIMER % 3 == 2) {
|
||||
if (INGAME.WORLD_UPDATE_TIMER % 3 == 2L) {
|
||||
val size = if (Math.random() < 0.1) 2 else 1
|
||||
val result = Treegen.plantTree(INGAME.world, intTilewiseHitbox.startX.toInt(), intTilewiseHitbox.endY.toInt() + 1, species, size)
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import net.torvald.random.HQRNG
|
||||
import net.torvald.spriteanimation.SheetSpriteAnimation
|
||||
import net.torvald.terrarum.*
|
||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZED
|
||||
import net.torvald.terrarum.audio.MusicContainer
|
||||
import net.torvald.terrarum.audio.audiobank.MusicContainer
|
||||
import net.torvald.terrarum.audio.dsp.Gain
|
||||
import net.torvald.terrarum.audio.dsp.NullFilter
|
||||
import net.torvald.terrarum.blockproperties.Block
|
||||
|
||||
@@ -3,7 +3,7 @@ package net.torvald.terrarum.modulebasegame.gameactors
|
||||
import net.torvald.gdx.graphics.Cvec
|
||||
import net.torvald.spriteanimation.SheetSpriteAnimation
|
||||
import net.torvald.terrarum.*
|
||||
import net.torvald.terrarum.audio.MusicContainer
|
||||
import net.torvald.terrarum.audio.audiobank.MusicContainer
|
||||
import net.torvald.terrarum.audio.dsp.Gain
|
||||
import net.torvald.terrarum.audio.dsp.NullFilter
|
||||
import net.torvald.terrarum.blockproperties.Block
|
||||
|
||||
@@ -11,7 +11,7 @@ import net.torvald.terrarum.App.printdbg
|
||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZED
|
||||
import net.torvald.terrarum.audio.AudioMixer.Companion.DEFAULT_FADEOUT_LEN
|
||||
import net.torvald.terrarum.audio.MusicContainer
|
||||
import net.torvald.terrarum.audio.audiobank.MusicContainer
|
||||
import net.torvald.terrarum.audio.TerrarumAudioMixerTrack
|
||||
import net.torvald.terrarum.audio.dsp.NullFilter
|
||||
import net.torvald.terrarum.audio.dsp.Phono
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
package net.torvald.terrarum.modulebasegame.gameactors
|
||||
|
||||
import com.badlogic.gdx.Gdx
|
||||
import net.torvald.spriteanimation.SheetSpriteAnimation
|
||||
import net.torvald.terrarum.*
|
||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
||||
import net.torvald.terrarum.audio.AudioMixer
|
||||
import net.torvald.terrarum.audio.MusicContainer
|
||||
import net.torvald.terrarum.audio.audiobank.MusicContainer
|
||||
import net.torvald.terrarum.audio.TerrarumAudioMixerTrack
|
||||
import net.torvald.terrarum.gameactors.AVKey
|
||||
import net.torvald.terrarum.gameitems.GameItem
|
||||
@@ -16,7 +15,6 @@ import net.torvald.terrarum.modulebasegame.gameitems.FixtureItemBase
|
||||
import net.torvald.terrarum.modulebasegame.gameitems.ItemFileRef
|
||||
import net.torvald.terrarum.modulebasegame.gameitems.MusicDiscHelper
|
||||
import net.torvald.terrarum.modulebasegame.gameitems.PickaxeCore
|
||||
import net.torvald.terrarum.ui.MouseLatch
|
||||
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
||||
import org.dyn4j.geometry.Vector2
|
||||
|
||||
@@ -75,7 +73,7 @@ class FixtureMusicalTurntable : Electric, PlaysMusic {
|
||||
INGAME.actorNowPlaying!!.inventory.itemEquipped.get(GameItem.EquipPosition.HAND_GRIP)
|
||||
val itemProp = ItemCodex[itemOnGrip]
|
||||
|
||||
if (itemProp?.hasAllTagOf("MUSIC", "PHONO") == true) {
|
||||
if (itemProp?.hasAllTagsOf("MUSIC", "PHONO") == true) {
|
||||
disc = itemOnGrip
|
||||
INGAME.actorNowPlaying!!.removeItem(itemOnGrip!!)
|
||||
playDisc()
|
||||
|
||||
@@ -8,7 +8,7 @@ import net.torvald.random.HQRNG
|
||||
import net.torvald.spriteanimation.SheetSpriteAnimation
|
||||
import net.torvald.terrarum.*
|
||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZED
|
||||
import net.torvald.terrarum.audio.MusicContainer
|
||||
import net.torvald.terrarum.audio.audiobank.MusicContainer
|
||||
import net.torvald.terrarum.audio.dsp.Gain
|
||||
import net.torvald.terrarum.audio.dsp.NullFilter
|
||||
import net.torvald.terrarum.blockproperties.Block
|
||||
|
||||
@@ -69,7 +69,7 @@ object AxeCore {
|
||||
val actionInterval = actorvalue.getAsDouble(AVKey.ACTION_INTERVAL)!!
|
||||
val swingDmgToFrameDmg = delta.toDouble() / actionInterval
|
||||
|
||||
if (INGAME.WORLD_UPDATE_TIMER % 11 == (Math.random() * 3).toInt()) {
|
||||
if (INGAME.WORLD_UPDATE_TIMER % 11 == (Math.random() * 3).toLong()) {
|
||||
PickaxeCore.makeNoiseTileTouching(actor, tile)
|
||||
}
|
||||
|
||||
@@ -95,7 +95,7 @@ object AxeCore {
|
||||
val actionInterval = actorvalue.getAsDouble(AVKey.ACTION_INTERVAL)!!
|
||||
val swingDmgToFrameDmg = delta.toDouble() / actionInterval
|
||||
|
||||
if (INGAME.WORLD_UPDATE_TIMER % 11 == (Math.random() * 3).toInt()) {
|
||||
if (INGAME.WORLD_UPDATE_TIMER % 11 == (Math.random() * 3).toLong()) {
|
||||
PickaxeCore.makeNoiseTileTouching(actor, tile)
|
||||
}
|
||||
|
||||
@@ -121,13 +121,13 @@ object AxeCore {
|
||||
usageStatus = usageStatus or true
|
||||
}
|
||||
// check if tile under mouse is a tree
|
||||
else if (tileprop.hasAllTag(listOf("TREE", "TREETRUNK") + additionalCheckTags)) {
|
||||
else if (tileprop.hasAllTags(listOf("TREE", "TREETRUNK") + additionalCheckTags)) {
|
||||
val actionInterval = actorvalue.getAsDouble(AVKey.ACTION_INTERVAL)!!
|
||||
val swingDmgToFrameDmg = delta.toDouble() / actionInterval
|
||||
val isLargeTree = tileprop.hasTag("TREELARGE")
|
||||
val axePowerMult = if (isLargeTree) 0.5f else 1f
|
||||
|
||||
if (INGAME.WORLD_UPDATE_TIMER % 11 == (Math.random() * 3).toInt()) {
|
||||
if (INGAME.WORLD_UPDATE_TIMER % 11 == (Math.random() * 3).toLong()) {
|
||||
PickaxeCore.makeNoiseTileTouching(actor, tile)
|
||||
}
|
||||
|
||||
@@ -144,8 +144,8 @@ object AxeCore {
|
||||
val tileThereR = INGAME.world.getTileFromTerrain(x+1, y - upCtr)
|
||||
val propThereL = BlockCodex[tileThereL]
|
||||
val propThereR = BlockCodex[tileThereR]
|
||||
val treeTrunkXoff = if (propThereL.hasAllTagOf("TREELARGE", "TREETRUNK")) -1
|
||||
else if (propThereR.hasAllTagOf("TREELARGE", "TREETRUNK")) 1
|
||||
val treeTrunkXoff = if (propThereL.hasAllTagsOf("TREELARGE", "TREETRUNK")) -1
|
||||
else if (propThereR.hasAllTagsOf("TREELARGE", "TREETRUNK")) 1
|
||||
else 0
|
||||
|
||||
if (treeTrunkXoff != 0) {
|
||||
@@ -162,7 +162,7 @@ object AxeCore {
|
||||
val tileHere = INGAME.world.getTileFromTerrain(x, y - upCtr)
|
||||
val propHere = BlockCodex[tileHere]
|
||||
|
||||
if (propHere.hasAllTagOf("TREELARGE", "TREETRUNK")) {
|
||||
if (propHere.hasAllTagsOf("TREELARGE", "TREETRUNK")) {
|
||||
INGAME.world.setTileTerrain(x, y - upCtr, Block.AIR, false)
|
||||
PickaxeCore.dropItem(propHere.drop, x, y - upCtr)
|
||||
PickaxeCore.makeDust(tile, x, y - upCtr, 2 + Math.random().roundToInt())
|
||||
|
||||
@@ -68,7 +68,7 @@ open class FixtureItemBase(originalID: ItemID, val fixtureClassName: String) : G
|
||||
|
||||
|
||||
// update the ghost sparingly
|
||||
if (INGAME.WORLD_UPDATE_TIMER % 2 == 0) {
|
||||
if (INGAME.WORLD_UPDATE_TIMER % 2 == 0L) {
|
||||
(INGAME as TerrarumIngame).blockMarkingActor.let {
|
||||
val item = ghostItem.get()
|
||||
|
||||
|
||||
@@ -2,12 +2,11 @@ package net.torvald.terrarum.modulebasegame.gameitems
|
||||
|
||||
import com.badlogic.gdx.graphics.Color
|
||||
import com.badlogic.gdx.graphics.g2d.TextureRegion
|
||||
import com.jme3.math.FastMath.pow
|
||||
import net.torvald.terrarum.*
|
||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZED
|
||||
import net.torvald.terrarum.audio.MixerTrackProcessor
|
||||
import net.torvald.terrarum.audio.MusicContainer
|
||||
import net.torvald.terrarum.audio.audiobank.MusicContainer
|
||||
import net.torvald.terrarum.blockproperties.Block
|
||||
import net.torvald.terrarum.gameactors.AVKey
|
||||
import net.torvald.terrarum.gameactors.ActorWithBody
|
||||
@@ -84,7 +83,7 @@ object PickaxeCore {
|
||||
}
|
||||
// return false for punchable trees
|
||||
// non-punchable trees (= "log" tile placed by log item) must be mineable in order to make them useful as decor tiles
|
||||
if (BlockCodex[tile].hasAllTagOf("TREE", "TREETRUNK", "TREESMALL")) {
|
||||
if (BlockCodex[tile].hasAllTagsOf("TREE", "TREETRUNK", "TREESMALL")) {
|
||||
usageStatus = usageStatus or false
|
||||
continue
|
||||
}
|
||||
@@ -93,7 +92,7 @@ object PickaxeCore {
|
||||
val actionInterval = actorvalue.getAsDouble(AVKey.ACTION_INTERVAL)!!
|
||||
val swingDmgToFrameDmg = delta.toDouble() / actionInterval
|
||||
|
||||
if (INGAME.WORLD_UPDATE_TIMER % 11 == (Math.random() * 3).toInt()) {
|
||||
if (INGAME.WORLD_UPDATE_TIMER % 11 == (Math.random() * 3).toLong()) {
|
||||
makeNoiseTileTouching(actor, tile)
|
||||
}
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@ object SledgehammerCore {
|
||||
val actionInterval = actorvalue.getAsDouble(AVKey.ACTION_INTERVAL)!!
|
||||
val swingDmgToFrameDmg = delta.toDouble() / actionInterval
|
||||
|
||||
if (INGAME.WORLD_UPDATE_TIMER % 11 == (Math.random() * 3).toInt()) {
|
||||
if (INGAME.WORLD_UPDATE_TIMER % 11 == (Math.random() * 3).toLong()) {
|
||||
PickaxeCore.makeNoiseTileTouching(actor, wall)
|
||||
}
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ class Oregen(world: GameWorld, isFinal: Boolean, private val caveAttenuateBiasSc
|
||||
val blockTagNonGrata = ores.firstOrNull { it.tile == tileToPut }?.blockTagNonGrata ?: hashSetOf()
|
||||
val backingTileProp = BlockCodex[backingTile]
|
||||
|
||||
if (tileToPut != null && backingTileProp.hasAllTagOf("ROCK", "OREBEARING") && backingTileProp.hasNoTag(blockTagNonGrata)) {
|
||||
if (tileToPut != null && backingTileProp.hasAllTagsOf("ROCK", "OREBEARING") && backingTileProp.hasNoTags(blockTagNonGrata)) {
|
||||
// actually put the ore block
|
||||
world.setTileOre(x, y, tileToPut, 0) // autotiling will be handled by the other worldgen process
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user