diff --git a/Content.Server/NPC/Systems/NPCUtilitySystem.cs b/Content.Server/NPC/Systems/NPCUtilitySystem.cs index e1bcc844682..c43fe2583b1 100644 --- a/Content.Server/NPC/Systems/NPCUtilitySystem.cs +++ b/Content.Server/NPC/Systems/NPCUtilitySystem.cs @@ -41,6 +41,7 @@ using Content.Shared.Atmos.Components; using System.Linq; using Content.Shared.StatusEffect; // Frontier +using Robust.Shared.Map; //LuaM namespace Content.Server.NPC.Systems; @@ -567,6 +568,26 @@ private void RecursiveAdd(EntityUid uid, HashSet entities) RecursiveAdd(child, entities); } } + // LuaM-start: in range drone target check + public bool CheckDroneTarget(MapCoordinates coords, float range) + { + foreach (var (target, targetComp) in _lookup.GetEntitiesInRange(coords, range)) + { + var targetXform = Transform(target); + var targetGrid = targetXform.GridUid; + + if (targetComp.NeedGrid != NpcTargetGridMode.Either + && (targetComp.NeedGrid == NpcTargetGridMode.OnGrid) == (targetGrid == null)) + continue; + + if (targetComp.NeedPower && !this.IsPowered(target, EntityManager)) + continue; + + return true; + } + return false; + } + // LuaM-end private void Filter(NPCBlackboard blackboard, HashSet entities, UtilityQueryFilter filter) { diff --git a/Content.Server/Worldgen/Prototypes/BiomePrototype.cs b/Content.Server/Worldgen/Prototypes/BiomePrototype.cs index bd28e4cafc1..ed1d99a5c2c 100644 --- a/Content.Server/Worldgen/Prototypes/BiomePrototype.cs +++ b/Content.Server/Worldgen/Prototypes/BiomePrototype.cs @@ -100,6 +100,20 @@ private set public int? MaxY; // Mono / EE end + // LuaM-start: + /// + /// Drone target condition. + /// + [DataField("needDroneTarget")] + public bool NeedDroneTarget; + + /// + /// Search radius for the drone target. + /// + [DataField("droneTargetRange")] + public float DroneTargetRange = 1400f; + // LuaM-end + //TODO: Get someone to make this a method on componentregistry that does it Correctly. /// /// Applies the worldgen config to the given target (presumably a map.) diff --git a/Content.Server/Worldgen/Systems/Biomes/BiomeSelectionSystem.cs b/Content.Server/Worldgen/Systems/Biomes/BiomeSelectionSystem.cs index a3bbb636010..8773cd634bc 100644 --- a/Content.Server/Worldgen/Systems/Biomes/BiomeSelectionSystem.cs +++ b/Content.Server/Worldgen/Systems/Biomes/BiomeSelectionSystem.cs @@ -3,6 +3,8 @@ using Content.Server.Worldgen.Prototypes; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.Manager; +using Content.Server.NPC.Systems; // LuaM +using Robust.Shared.Map; // LuaM namespace Content.Server.Worldgen.Systems.Biomes; @@ -14,6 +16,7 @@ public sealed partial class BiomeSelectionSystem : BaseWorldSystem [Dependency] private NoiseIndexSystem _noiseIdx = default!; [Dependency] private IPrototypeManager _proto = default!; [Dependency] private ISerializationManager _ser = default!; + [Dependency] private NPCUtilitySystem _npcUtility = default!; // LuaM /// public override void Initialize() @@ -25,8 +28,11 @@ public override void Initialize() private void OnWorldChunkAdded(EntityUid uid, BiomeSelectionComponent component, ref WorldChunkAddedEvent args) { var coords = args.Coords; - var lengthSquared = WorldGen.ChunkToWorldCoordsCentered(coords).LengthSquared(); // Frontier: cache world coords of center of chunk - + // var lengthSquared = WorldGen.ChunkToWorldCoordsCentered(coords).LengthSquared(); // LuaM comented + // LuaM-start: + var worldPos = WorldGen.ChunkToWorldCoordsCentered(coords); + var lengthSquared = worldPos.LengthSquared(); + // LuaM-end foreach (var biomeId in component.Biomes) { var biome = _proto.Index(biomeId); @@ -39,6 +45,16 @@ private void OnWorldChunkAdded(EntityUid uid, BiomeSelectionComponent component, if (!CheckBiomeValidity(args.Chunk, biome, coords)) continue; + // LuaM-start: + if (biome.NeedDroneTarget) + { + var mapCoords = new MapCoordinates(worldPos, Transform(uid).MapID); + + if (!_npcUtility.CheckDroneTarget(mapCoords, biome.DroneTargetRange)) + continue; + } + // LuaM-end + biome.Apply(args.Chunk, _ser, EntityManager); return; } diff --git a/Resources/Maps/_NF/POI/lpbravo.yml b/Resources/Maps/_NF/POI/lpbravo.yml index dc39cd403a2..d0a04fdd8f2 100644 --- a/Resources/Maps/_NF/POI/lpbravo.yml +++ b/Resources/Maps/_NF/POI/lpbravo.yml @@ -17583,26 +17583,28 @@ entities: - type: Transform pos: 39.5,-1.5 parent: 1 -- proto: NpcStationAiAttackerStaticSmart - entities: - - uid: 2584 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 46.5,-0.5 - parent: 1 - - uid: 2655 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -2.5,-19.5 - parent: 1 - - uid: 2795 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 18.5,1.5 - parent: 1 +# Lua-comented-start: +# - proto: NpcStationAiAttackerStaticSmart +# entities: +# - uid: 2584 +# components: +# - type: Transform +# rot: 3.141592653589793 rad +# pos: 46.5,-0.5 +# parent: 1 +# - uid: 2655 +# components: +# - type: Transform +# rot: 3.141592653589793 rad +# pos: -2.5,-19.5 +# parent: 1 +# - uid: 2795 +# components: +# - type: Transform +# rot: 3.141592653589793 rad +# pos: 18.5,1.5 +# parent: 1 +# Lua-comented-end - proto: OxygenCanister entities: - uid: 2449 diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml index 26532ad13d5..591dc2bfd5d 100644 --- a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml @@ -285,8 +285,10 @@ - type: DetectionRangeMultiplier # same as mass scanner infraredMultiplier: 0.5 visualMultiplier: 0.75 - - type: ShipNpcTarget - needGrid: NoGrid + # LuaM-comented-start: + # - type: ShipNpcTarget + # needGrid: NoGrid + # LuaM-comented-end - type: RetroMonitorView # diff --git a/Resources/Prototypes/Entities/Mobs/Species/base.yml b/Resources/Prototypes/Entities/Mobs/Species/base.yml index c07d614d16a..4c3d30d8120 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/base.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/base.yml @@ -231,8 +231,10 @@ - type: SurgeryTarget # Shitmed Change - type: ExaminableCharacter # WWDP # Mono - - type: ShipNpcTarget - needGrid: NoGrid + # LuaM-comented-start: + # - type: ShipNpcTarget + # needGrid: NoGrid + # LuaM-comented-end - type: entity save: false diff --git a/Resources/Prototypes/Entities/Structures/Machines/Computers/computers.yml b/Resources/Prototypes/Entities/Structures/Machines/Computers/computers.yml index 88f533e0275..d7febd0ef16 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/Computers/computers.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/Computers/computers.yml @@ -131,8 +131,10 @@ components: - type: ShuttleConsole - type: TargetSeekingTarget # Mono - - type: ShipNpcTarget # Mono - needPower: true + # LuaM-comented-start: + # - type: ShipNpcTarget # Mono + # needPower: true + # LuaM-comented-end - type: ShuttleConsoleLock - type: ActivatableUI key: enum.ShuttleConsoleUiKey.Key diff --git a/Resources/Prototypes/_EinsteinEngines/Entities/Mobs/Player/silicon_base.yml b/Resources/Prototypes/_EinsteinEngines/Entities/Mobs/Player/silicon_base.yml index 6cf09e05fa3..8fa8e1a526d 100644 --- a/Resources/Prototypes/_EinsteinEngines/Entities/Mobs/Player/silicon_base.yml +++ b/Resources/Prototypes/_EinsteinEngines/Entities/Mobs/Player/silicon_base.yml @@ -329,6 +329,8 @@ shape: - 0, 0, 4, 4 - 0, 3, 6, 5 + # LuaM-comented-start: # Mono - - type: ShipNpcTarget - needGrid: NoGrid + # - type: ShipNpcTarget + # needGrid: NoGrid + # LuaM-comented-end diff --git a/Resources/Prototypes/_LuaM/Recipes/Construction/Graphs/machines/machine_gunnery.yml b/Resources/Prototypes/_LuaM/Recipes/Construction/Graphs/machines/machine_gunnery.yml new file mode 100644 index 00000000000..9eaaa3c8b7a --- /dev/null +++ b/Resources/Prototypes/_LuaM/Recipes/Construction/Graphs/machines/machine_gunnery.yml @@ -0,0 +1,120 @@ +- type: constructionGraph + id: MachineGunneryServer + start: start + graph: + - node: start + actions: + - !type:SpawnPrototype + prototype: SheetSteel1 + - !type:DeleteEntity + edges: + - to: missingWires + completed: + - !type:SetAnchor + value: false + steps: + - material: Steel + amount: 5 + doAfter: 2.5 + - to: destroyedMachineFrame + steps: + - material: Steel + amount: 5 + doAfter: 2.5 + + - node: missingWires + entity: UnfinishedMachineFrame + actions: + - !type:EmptyAllContainers + edges: + - to: machineFrame + conditions: + - !type:EntityAnchored + steps: + - material: Cable + + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 5 + - !type:DeleteEntity + steps: + - tool: Screwing + doAfter: 2 + + - node: machineFrame + entity: MachineFrame + actions: + - !type:AddContainer + container: machine_parts + - !type:AddContainer + container: machine_board + - !type:MachineFrameRegenerateProgress + edges: + - to: machine + conditions: + - !type:EntityAnchored + - !type:MachineFrameComplete + guideIconBoard: + sprite: Objects/Misc/module.rsi + state: id_mod + guideIconParts: + sprite: _NF/Objects/Misc/stock_parts.rsi + state: scan_module + steps: + - tool: Screwing + doAfter: 0.5 + + - to: machineFrame + conditions: + - !type:EntityAnchored + - !type:ContainerNotEmpty + container: machine_board + steps: + - tool: Prying + doAfter: 2 + completed: + - !type:EmptyAllContainers + - !type:MachineFrameRegenerateProgress + + - to: missingWires + conditions: + - !type:EntityAnchored + - !type:ContainerEmpty + container: machine_board + examineText: construction-condition-machine-container-empty + completed: + - !type:SpawnPrototype + prototype: CableApcStack1 + steps: + - tool: Cutting + doAfter: 0.25 + + - node: machine + entity: !type:BoardNodeEntity { container: machine_board } + edges: + - to: machineFrame + completed: + - !type:RaiseEvent + event: !type:MachineDeconstructedEvent + broadcast: false + conditions: + - !type:EntityAnchored + - !type:WirePanel + steps: + - tool: Prying + doAfter: 40 + + - node: destroyedMachineFrame + entity: MachineFrameDestroyed + edges: + - to: start + steps: + - tool: Welding + doAfter: 5 + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 3 + - !type:DeleteEntity {} \ No newline at end of file diff --git a/Resources/Prototypes/_Mono/Entities/Structures/Machines/FireControl/gunnery.yml b/Resources/Prototypes/_Mono/Entities/Structures/Machines/FireControl/gunnery.yml index 70c108d8a4b..eba3b9d2a70 100644 --- a/Resources/Prototypes/_Mono/Entities/Structures/Machines/FireControl/gunnery.yml +++ b/Resources/Prototypes/_Mono/Entities/Structures/Machines/FireControl/gunnery.yml @@ -28,7 +28,7 @@ True: { visible: true } False: { visible: false } - type: Construction # Mono - graph: Machine + graph: MachineGunneryServer # LuaM Machine > MachineGunneryServer node: machine containers: - machine_board @@ -43,6 +43,8 @@ id: GunneryServer - type: StaticPrice price: 200 + - type: Anchorable # LuaM + delay: 15 - type: entity id: GunneryServerLow @@ -87,6 +89,9 @@ - type: ShipRepairable repairTime: 13 repairCost: 40 + - type: ShipNpcTarget # LuaM + needPower: true + - type: entity id: GunneryServerHigh @@ -109,6 +114,8 @@ - type: ShipRepairable repairTime: 20 repairCost: 70 + - type: ShipNpcTarget # LuaM + needPower: true - type: entity id: GunneryServerUltra @@ -133,6 +140,8 @@ - type: ShipRepairable repairTime: 25 repairCost: 100 + - type: ShipNpcTarget # LuaM + needPower: true - type: entity id: GunneryServerOmega @@ -157,6 +166,8 @@ - type: ShipRepairable repairTime: 40 repairCost: 150 + - type: ShipNpcTarget # LuaM + needPower: true - type: entity id: GunneryServerStation @@ -238,8 +249,10 @@ - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] state: generic_panel_open - type: FireControlConsole - - type: ShipNpcTarget - needPower: true + # LuaM-comented-start: + # - type: ShipNpcTarget + # needPower: true + # LuaM-comented-end - type: TargetSeekingTarget - type: ActivatableUI key: enum.FireControlConsoleUiKey.Key diff --git a/Resources/Prototypes/_Mono/Entities/World/Biome/basic.yml b/Resources/Prototypes/_Mono/Entities/World/Biome/basic.yml index b05be9f0d31..46de37a4c11 100644 --- a/Resources/Prototypes/_Mono/Entities/World/Biome/basic.yml +++ b/Resources/Prototypes/_Mono/Entities/World/Biome/basic.yml @@ -135,6 +135,7 @@ id: MonoWildsCore parent: NFBiomeBase priority: 700 + needDroneTarget: true # LuaM minX: 68 # 8448m maxX: 72 # 9728m minY: -63 # -8578 @@ -243,10 +244,115 @@ prob: 0.025 orGroup: wreck +# LuaM-start: +- type: spaceBiome + id: MonoWildsCorePieceful + parent: MonoWildsCore + priority: 690 + needDroneTarget: false + chunkComponents: + - type: DebrisFeaturePlacerController + densityNoiseChannel: DensityHigh + - type: SimpleDebrisSelector + debrisTable: + # Extra Enormous + - id: NFAsteroidDebrisExtraEnormous + prob: 0.3 + orGroup: debris + - id: NFAsteroidBasaltDebrisExtraEnormous + prob: 0.3 + orGroup: debris + - id: NFAsteroidRockDebrisExtraEnormous + prob: 0.3 + orGroup: debris + - id: NFAsteroidScrapDebrisExtraEnormous + prob: 0.15 + orGroup: debris + # Massive + - id: NFAsteroidDebrisMassive + prob: 0.6 + orGroup: debris + - id: NFAsteroidBasaltDebrisMassive + prob: 0.6 + orGroup: debris + - id: NFAsteroidRockDebrisMassive + prob: 0.6 + orGroup: debris + - id: NFAsteroidScrapDebrisMassive + prob: 0.3 + orGroup: debris + # Extra Massive + - id: NFAsteroidDebrisExtraMassive + prob: 1 + orGroup: debris + - id: NFAsteroidBasaltDebrisExtraMassive + prob: 1 + orGroup: debris + - id: NFAsteroidRockDebrisExtraMassive + prob: 1 + orGroup: debris + - id: NFAsteroidScrapDebrisExtraMassive + prob: 0.5 + orGroup: debris + # Gigantic + - id: NFAsteroidDebrisGigantic + prob: 0.6 + orGroup: debris + - id: NFAsteroidBasaltDebrisGigantic + prob: 0.6 + orGroup: debris + - id: NFAsteroidRockDebrisGigantic + prob: 0.6 + orGroup: debris + - id: NFAsteroidScrapDebrisGigantic + prob: 0.3 + orGroup: debris + # Extra Gigantic + - id: NFAsteroidDebrisExtraGigantic + prob: 0.3 + orGroup: debris + - id: NFAsteroidBasaltDebrisExtraGigantic + prob: 0.3 + orGroup: debris + - id: NFAsteroidRockDebrisExtraGigantic + prob: 0.3 + orGroup: debris + - id: NFAsteroidScrapDebrisExtraGigantic + prob: 0.15 + orGroup: debris + - type: NoiseDrivenDebrisSelector + debrisTable: + - id: NFWreckDebrisMedium + prob: 0.3 + orGroup: wreck + - id: NFWreckDebrisLarge + prob: 0.6 + orGroup: wreck + - id: NFWreckDebrisExtraLarge + prob: 1 + orGroup: wreck + - id: NFWreckDebrisHuge + prob: 0.6 + orGroup: wreck + - id: NFWreckDebrisExtraHuge + prob: 0.3 + orGroup: wreck + - id: NFWreckDebrisEnormous + prob: 0.15 + orGroup: wreck + - id: NFWreckDebrisBrassSmall + prob: 0.03 + orGroup: wreck + - id: NFWreckDebrisBrassMedium + prob: 0.006 + orGroup: wreck +# LuaM-end + - type: spaceBiome id: MonoWilds parent: NFBiomeBase priority: 500 # avg center coords is about 9088, -7552 + needDroneTarget: true # LuaM minX: 64 # 8448m maxX: 76 # 9728m minY: -67 # -8578 @@ -355,10 +461,115 @@ prob: 0.025 orGroup: wreck +# LuaM-start: +- type: spaceBiome + id: MonoWildsPieceful + parent: MonoWilds + priority: 490 + needDroneTarget: false + chunkComponents: + - type: DebrisFeaturePlacerController + densityNoiseChannel: DensityHigh + - type: SimpleDebrisSelector + debrisTable: + # Extra Enormous + - id: NFAsteroidDebrisExtraEnormous + prob: 0.3 + orGroup: debris + - id: NFAsteroidBasaltDebrisExtraEnormous + prob: 0.3 + orGroup: debris + - id: NFAsteroidRockDebrisExtraEnormous + prob: 0.3 + orGroup: debris + - id: NFAsteroidScrapDebrisExtraEnormous + prob: 0.15 + orGroup: debris + # Massive + - id: NFAsteroidDebrisMassive + prob: 0.6 + orGroup: debris + - id: NFAsteroidBasaltDebrisMassive + prob: 0.6 + orGroup: debris + - id: NFAsteroidRockDebrisMassive + prob: 0.6 + orGroup: debris + - id: NFAsteroidScrapDebrisMassive + prob: 0.3 + orGroup: debris + # Extra Massive + - id: NFAsteroidDebrisExtraMassive + prob: 1 + orGroup: debris + - id: NFAsteroidBasaltDebrisExtraMassive + prob: 1 + orGroup: debris + - id: NFAsteroidRockDebrisExtraMassive + prob: 1 + orGroup: debris + - id: NFAsteroidScrapDebrisExtraMassive + prob: 0.5 + orGroup: debris + # Gigantic + - id: NFAsteroidDebrisGigantic + prob: 0.6 + orGroup: debris + - id: NFAsteroidBasaltDebrisGigantic + prob: 0.6 + orGroup: debris + - id: NFAsteroidRockDebrisGigantic + prob: 0.6 + orGroup: debris + - id: NFAsteroidScrapDebrisGigantic + prob: 0.3 + orGroup: debris + # Extra Gigantic + - id: NFAsteroidDebrisExtraGigantic + prob: 0.3 + orGroup: debris + - id: NFAsteroidBasaltDebrisExtraGigantic + prob: 0.3 + orGroup: debris + - id: NFAsteroidRockDebrisExtraGigantic + prob: 0.3 + orGroup: debris + - id: NFAsteroidScrapDebrisExtraGigantic + prob: 0.15 + orGroup: debris + - type: NoiseDrivenDebrisSelector + debrisTable: + - id: NFWreckDebrisMedium + prob: 0.3 + orGroup: wreck + - id: NFWreckDebrisLarge + prob: 0.6 + orGroup: wreck + - id: NFWreckDebrisExtraLarge + prob: 1 + orGroup: wreck + - id: NFWreckDebrisHuge + prob: 0.6 + orGroup: wreck + - id: NFWreckDebrisExtraHuge + prob: 0.3 + orGroup: wreck + - id: NFWreckDebrisEnormous + prob: 0.15 + orGroup: wreck + - id: NFWreckDebrisBrassSmall + prob: 0.03 + orGroup: wreck + - id: NFWreckDebrisBrassMedium + prob: 0.006 + orGroup: wreck +# LuaM-end + - type: spaceBiome id: MonoWildsOutskirts parent: NFBiomeBase priority: 100 + needDroneTarget: true # LuaM minX: 56 maxX: 84 minY: -75 @@ -410,6 +621,56 @@ prob: 0.005 orGroup: wreck +# LuaM-start +- type: spaceBiome + id: MonoWildsOutskirtsPieceful + parent: MonoWildsOutskirts + priority: 90 + needDroneTarget: false + chunkComponents: + - type: DebrisFeaturePlacerController + densityNoiseChannel: Density + - type: SimpleDebrisSelector + debrisTable: + # Extra Enormous + - id: NFAsteroidDebrisExtraEnormous + prob: 0.3 + orGroup: debris + - id: NFAsteroidBasaltDebrisExtraEnormous + prob: 0.3 + orGroup: debris + - id: NFAsteroidRockDebrisExtraEnormous + prob: 0.3 + orGroup: debris + - id: NFAsteroidScrapDebrisExtraEnormous + prob: 0.15 + orGroup: debris + # Massive + - id: NFAsteroidDebrisMassive + prob: 0.6 + orGroup: debris + - id: NFAsteroidBasaltDebrisMassive + prob: 0.6 + orGroup: debris + - id: NFAsteroidRockDebrisMassive + prob: 0.6 + orGroup: debris + - id: NFAsteroidScrapDebrisMassive + prob: 0.3 + orGroup: debris + - type: NoiseDrivenDebrisSelector + debrisTable: + - id: NFWreckDebrisMedium + prob: 0.3 + orGroup: wreck + - id: NFWreckDebrisLarge + prob: 0.6 + orGroup: wreck + - id: NFWreckDebrisExtraLarge + prob: 1 + orGroup: wreck +# LuaM-end + - type: spaceBiome id: MonoEmptyFallback # We need nothing to generate under 18000, but Far Reaches 4 would generate instead, so we need a useless thing. priority: 1 @@ -622,6 +883,7 @@ id: MonoWorldgenVeryFarT1 parent: NFBiomeBase priority: -1 + needDroneTarget: true # LuaM distanceRange: 18000, 22000 chunkComponents: - type: DebrisFeaturePlacerController @@ -746,10 +1008,137 @@ prob: 3 orGroup: wreck +# LuaM-start: - type: spaceBiome - id: MonoWorldgenVeryFarT2Inner + id: MonoWorldgenVeryFarT1Pieceful parent: MonoWorldgenVeryFarT1 priority: -2 + needDroneTarget: false + chunkComponents: + - type: DebrisFeaturePlacerController + densityNoiseChannel: DensityRare + - type: SimpleDebrisSelector + debrisTable: + # Medium (1.44) + - id: NFAsteroidDebrisMedium + prob: 0.24 + orGroup: debris + - id: NFAsteroidAndesiteDebrisMedium + prob: 0.24 + orGroup: debris + - id: NFAsteroidBasaltDebrisMedium + prob: 0.24 + orGroup: debris + - id: NFAsteroidSandDebrisMedium + prob: 0.24 + orGroup: debris + - id: NFAsteroidChromiteDebrisMedium + prob: 0.24 + orGroup: debris + - id: NFAsteroidRockDebrisMedium + prob: 0.24 + orGroup: debris + # Large (1.44) + - id: NFAsteroidDebrisLarge + prob: 0.24 + orGroup: debris + - id: NFAsteroidAndesiteDebrisLarge + prob: 0.24 + orGroup: debris + - id: NFAsteroidBasaltDebrisLarge + prob: 0.24 + orGroup: debris + - id: NFAsteroidSandDebrisLarge + prob: 0.24 + orGroup: debris + - id: NFAsteroidChromiteDebrisLarge + prob: 0.24 + orGroup: debris + - id: NFAsteroidRockDebrisLarge + prob: 0.24 + orGroup: debris + # Extra Large (1.44) + - id: NFAsteroidDebrisExtraLarge + prob: 0.24 + orGroup: debris + - id: NFAsteroidAndesiteDebrisExtraLarge + prob: 0.24 + orGroup: debris + - id: NFAsteroidBasaltDebrisExtraLarge + prob: 0.24 + orGroup: debris + - id: NFAsteroidSandDebrisExtraLarge + prob: 0.24 + orGroup: debris + - id: NFAsteroidChromiteDebrisExtraLarge + prob: 0.24 + orGroup: debris + - id: NFAsteroidRockDebrisExtraLarge + prob: 0.24 + orGroup: debris + # Huge (.36) + - id: NFAsteroidDebrisHuge + prob: 0.06 + orGroup: debris + - id: NFAsteroidAndesiteDebrisHuge + prob: 0.06 + orGroup: debris + - id: NFAsteroidBasaltDebrisHuge + prob: 0.06 + orGroup: debris + - id: NFAsteroidSandDebrisHuge + prob: 0.06 + orGroup: debris + - id: NFAsteroidChromiteDebrisHuge + prob: 0.06 + orGroup: debris + - id: NFAsteroidRockDebrisHuge + prob: 0.046 + orGroup: debris + # Extra Enormous + - id: NFAsteroidIceDebrisExtraEnormous + prob: 0.3 + orGroup: debris + # Massive + - id: NFAsteroidIceDebrisMassive + prob: 0.6 + orGroup: debris + # Extra Massive + - id: NFAsteroidIceDebrisExtraMassive + prob: 1 + orGroup: debris + # Gigantic + - id: NFAsteroidIceDebrisGigantic + prob: 0.6 + orGroup: debris + # Extra Gigantic + - id: NFAsteroidIceDebrisExtraGigantic + prob: 1.2 + orGroup: debris + - type: NoiseDrivenDebrisSelector + noiseChannel: WreckRare + debrisTable: + - id: NFWreckDebrisSmall + prob: 1 + orGroup: wreck + - id: NFWreckDebrisMedium + prob: 2 + orGroup: wreck + - id: NFWreckDebrisLarge + prob: 1 + orGroup: wreck + - id: NFWreckDebrisBrassLarge + prob: 0.5 + orGroup: wreck + - id: NFWreckDebrisBrassExtraLarge + prob: 1 + orGroup: wreck +# LuaM-end + +- type: spaceBiome + id: MonoWorldgenVeryFarT2Inner + parent: MonoWorldgenVeryFarT1 + priority: -3 #LuaM -2 > -3 distanceRange: 22000, 25000 chunkComponents: - type: NoiseDrivenDebrisSelector @@ -774,10 +1163,37 @@ prob: 1.5 orGroup: wreck +# LuaM-start: +- type: spaceBiome + id: MonoWorldgenVeryFarT2InnerPieceful + parent: MonoWorldgenVeryFarT1Pieceful + priority: -4 + distanceRange: 22000, 25000 + chunkComponents: + - type: NoiseDrivenDebrisSelector + noiseChannel: WreckRare + debrisTable: + - id: NFWreckDebrisSmall + prob: 1 + orGroup: wreck + - id: NFWreckDebrisMedium + prob: 2 + orGroup: wreck + - id: NFWreckDebrisLarge + prob: 1 + orGroup: wreck + - id: NFWreckDebrisBrassLarge + prob: 0.9 + orGroup: wreck + - id: NFWreckDebrisBrassExtraLarge + prob: 0.3 + orGroup: wreck +# LuaM-end + - type: spaceBiome id: MonoWorldgenVeryFarT2Middle parent: MonoWorldgenVeryFarT1 - priority: -3 + priority: -5 # LuaM -3 > -5 distanceRange: 25000, 30000 chunkComponents: - type: NoiseDrivenDebrisSelector @@ -802,10 +1218,38 @@ prob: 1.5 orGroup: wreck +# LuaM-start: +- type: spaceBiome + id: MonoWorldgenVeryFarT2MiddlePieceful + parent: MonoWorldgenVeryFarT1Pieceful + priority: -6 + needDroneTarget: false + distanceRange: 25000, 30000 + chunkComponents: + - type: NoiseDrivenDebrisSelector + noiseChannel: WreckRare + debrisTable: + - id: NFWreckDebrisSmall + prob: 1 + orGroup: wreck + - id: NFWreckDebrisMedium + prob: 2 + orGroup: wreck + - id: NFWreckDebrisLarge + prob: 1 + orGroup: wreck + - id: NFWreckDebrisBrassLarge + prob: 0.9 + orGroup: wreck + - id: NFWreckDebrisBrassExtraLarge + prob: 0.3 + orGroup: wreck +# LuaM-end + - type: spaceBiome id: MonoWorldgenVeryFarT2Far parent: MonoWorldgenVeryFarT1 - priority: -4 + priority: -7 # LuaM -4 > -7 distanceRange: null chunkComponents: - type: DebrisFeaturePlacerController @@ -830,3 +1274,31 @@ - id: MonoDroneSpawnerT2Far prob: 1 orGroup: wreck + +# LuaM-start: +- type: spaceBiome + id: MonoWorldgenVeryFarT2FarPieceful + parent: MonoWorldgenVeryFarT1Pieceful + priority: -8 + distanceRange: null + chunkComponents: + - type: DebrisFeaturePlacerController + densityNoiseChannel: DensityVeryRare + - type: NoiseDrivenDebrisSelector + debrisTable: + - id: NFWreckDebrisSmall + prob: 0.5 + orGroup: wreck + - id: NFWreckDebrisMedium + prob: 1 + orGroup: wreck + - id: NFWreckDebrisLarge + prob: 0.5 + orGroup: wreck + - id: NFWreckDebrisBrassLarge + prob: 0.3 + orGroup: wreck + - id: NFWreckDebrisBrassExtraLarge + prob: 0.9 + orGroup: wreck +# LuaM-end diff --git a/Resources/Prototypes/_Mono/World/worldgen.yml b/Resources/Prototypes/_Mono/World/worldgen.yml index 768a1ef236d..9887578c235 100644 --- a/Resources/Prototypes/_Mono/World/worldgen.yml +++ b/Resources/Prototypes/_Mono/World/worldgen.yml @@ -14,3 +14,12 @@ - MonoWorldgenVeryFarT2Inner - MonoWorldgenVeryFarT2Middle - MonoWorldgenVeryFarT2Far + # LuaM-start: + - MonoWildsCorePieceful + - MonoWildsPieceful + - MonoWildsOutskirtsPieceful + - MonoWorldgenVeryFarT1Pieceful + - MonoWorldgenVeryFarT2InnerPieceful + - MonoWorldgenVeryFarT2MiddlePieceful + - MonoWorldgenVeryFarT2FarPieceful + # LuaM-end \ No newline at end of file diff --git a/Resources/Prototypes/_NF/World/Biomes/basic.yml b/Resources/Prototypes/_NF/World/Biomes/basic.yml index 08f32a40728..e4ec517770a 100644 --- a/Resources/Prototypes/_NF/World/Biomes/basic.yml +++ b/Resources/Prototypes/_NF/World/Biomes/basic.yml @@ -243,6 +243,7 @@ id: NFAsteroidsFar parent: NFBiomeBase priority: 0 + needDroneTarget: true # LuaM distanceRange: 9500, 18000 # Mono noiseRanges: {} chunkComponents: @@ -365,3 +366,128 @@ - id: MonoDroneSpawnerT1 # Mono prob: 0.15 orGroup: wreck + +# LuaM-start: +- type: spaceBiome + id: NFAsteroidsFarPeaceful + parent: NFAsteroidsFar + priority: -1 + needDroneTarget: False + chunkComponents: + - type: SimpleDebrisSelector + debrisTable: + # Medium (1.44) + - id: NFAsteroidDebrisMedium + prob: 0.24 + orGroup: debris + - id: NFAsteroidAndesiteDebrisMedium + prob: 0.24 + orGroup: debris + - id: NFAsteroidBasaltDebrisMedium + prob: 0.24 + orGroup: debris + - id: NFAsteroidSandDebrisMedium + prob: 0.24 + orGroup: debris + - id: NFAsteroidChromiteDebrisMedium + prob: 0.24 + orGroup: debris + - id: NFAsteroidRockDebrisMedium + prob: 0.24 + orGroup: debris + # Large (1.44) + - id: NFAsteroidDebrisLarge + prob: 0.24 + orGroup: debris + - id: NFAsteroidAndesiteDebrisLarge + prob: 0.24 + orGroup: debris + - id: NFAsteroidBasaltDebrisLarge + prob: 0.24 + orGroup: debris + - id: NFAsteroidSandDebrisLarge + prob: 0.24 + orGroup: debris + - id: NFAsteroidChromiteDebrisLarge + prob: 0.24 + orGroup: debris + - id: NFAsteroidRockDebrisLarge + prob: 0.24 + orGroup: debris + # Extra Large (1.44) + - id: NFAsteroidDebrisExtraLarge + prob: 0.24 + orGroup: debris + - id: NFAsteroidAndesiteDebrisExtraLarge + prob: 0.24 + orGroup: debris + - id: NFAsteroidBasaltDebrisExtraLarge + prob: 0.24 + orGroup: debris + - id: NFAsteroidSandDebrisExtraLarge + prob: 0.24 + orGroup: debris + - id: NFAsteroidChromiteDebrisExtraLarge + prob: 0.24 + orGroup: debris + - id: NFAsteroidRockDebrisExtraLarge + prob: 0.24 + orGroup: debris + # Huge (.36) + - id: NFAsteroidDebrisHuge + prob: 0.06 + orGroup: debris + - id: NFAsteroidAndesiteDebrisHuge + prob: 0.06 + orGroup: debris + - id: NFAsteroidBasaltDebrisHuge + prob: 0.06 + orGroup: debris + - id: NFAsteroidSandDebrisHuge + prob: 0.06 + orGroup: debris + - id: NFAsteroidChromiteDebrisHuge + prob: 0.06 + orGroup: debris + - id: NFAsteroidRockDebrisHuge + prob: 0.046 + orGroup: debris + # Extra Enormous + - id: NFAsteroidIceDebrisExtraEnormous + prob: 0.3 + orGroup: debris + # Massive + - id: NFAsteroidIceDebrisMassive + prob: 0.6 + orGroup: debris + # Extra Massive + - id: NFAsteroidIceDebrisExtraMassive + prob: 1 + orGroup: debris + # Gigantic + - id: NFAsteroidIceDebrisGigantic + prob: 0.6 + orGroup: debris + # Extra Gigantic + - id: NFAsteroidIceDebrisExtraGigantic + prob: 0.3 + orGroup: debris + - type: NoiseDrivenDebrisSelector + noiseChannel: Wreck + debrisTable: + - id: NFWreckDebrisSmall + prob: 1 + orGroup: wreck + - id: NFWreckDebrisMedium + prob: 2 + orGroup: wreck + - id: NFWreckDebrisLarge + prob: 1 + orGroup: wreck + - id: NFWreckDebrisBrassLarge + prob: 0.3 + orGroup: wreck + - id: NFWreckDebrisBrassExtraLarge + prob: 0.1 + orGroup: wreck +# LuaM-end