algernon-a / bob Goto Github PK
View Code? Open in Web Editor NEWA Cities: Skylines mod (tree and prop replacer)
License: MIT License
A Cities: Skylines mod (tree and prop replacer)
License: MIT License
I was initially able to select the crane, and add two instances of warning light prop, however after adding them they weren't showing in the list of 'in this building' props on the left panel.
They are definitely added, however as they can be seen under the building:
I suspect this error is related to the list not updating:
484,980ms | BOB - the tree and prop replacer: adding new prop for building 2087413270.tower crane CAL_Data at index 0.
NullReferenceException: Object reference not set to an instance of an object
at BOB.AddedBuildingProps.IsAdded (.BuildingInfo building, Int32 index) [0x00000] in <filename unknown>:0
at BOB.BOBBuildingInfoPanel.TargetList () [0x00000] in <filename unknown>:0
at BOB.BOBBuildingInfoPanel.UpdateAddedPops () [0x00000] in <filename unknown>:0
at BOB.BOBBuildingInfoPanel.AddNew () [0x00000] in <filename unknown>:0
at BOB.BOBBuildingInfoPanel.<.ctor>b__28_0 (ColossalFramework.UI.UIComponent control, ColossalFramework.UI.UIMouseEventParameter clickEvent) [0x00000] in <filename unknown>:0
at ColossalFramework.UI.UIComponent.OnClick (ColossalFramework.UI.UIMouseEventParameter p) [0x00000] in <filename unknown>:0
at ColossalFramework.UI.UIButton.OnClick (ColossalFramework.UI.UIMouseEventParameter p) [0x00000] in <filename unknown>:0
at ColossalFramework.UI.UIInput+MouseHandler.ProcessInput (IInputTranslator translator, Ray ray, ColossalFramework.UI.UIComponent component, Boolean retainFocusSetting) [0x00000] in <filename unknown>:0
at ColossalFramework.UI.UIInput.ProcessMouseInput () [0x00000] in <filename unknown>:0
at ColossalFramework.UI.UIInput.FpsBoosterUpdate () [0x00000] in <filename unknown>:0
at BehaviourUpdater.UiInputUpdater.UpdateInput () [0x00000] in <filename unknown>:0
UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
UnityEngine.DebugLogHandler:LogException(Exception, Object)
UnityEngine.Logger:LogException(Exception, Object)
UnityEngine.Debug:LogException(Exception)
BehaviourUpdater.UiInputUpdater:UpdateInput()
BehaviourUpdater.Updater:Update()
When subsequently trying to select the building for editing with BOB I also get this error:
518,472ms | BOB - the tree and prop replacer: exception creating InfoPanel
Exception:
Object reference not set to an instance of an object
BOB
at BOB.AddedBuildingProps.IsAdded (.BuildingInfo building, Int32 index) [0x00000] in <filename unknown>:0
at BOB.BOBBuildingInfoPanel.TargetList () [0x00000] in <filename unknown>:0
at BOB.BOBBuildingInfoPanel.SetTarget (.PrefabInfo targetPrefabInfo) [0x00000] in <filename unknown>:0
at BOB.InfoPanelManager.Create (.PrefabInfo selectedPrefab) [0x00000] in <filename unknown>:0
Looks like the replacement pack feature is generating lots of log spam when it tries to find the props from each of the replacement packs, most of which I have never subscribed, for example:
BOB - the tree and prop replacer: couldn't find pack target prop.
Unknown prefab: 50 Speed Limit [Serialization]
It's not a major issue, but would be nice if there was some way to turn it off.
In example below I've hidden a traffic light on a road by setting its probability to 0
:
The panel on the right shows that it's replaced by itself [v] Traffic Light 01 Mirror; was [v] Traffic Light 01 Mirror
Would it be possible to replace the was...
text with something more informative, for example:
was...
with disabled
in red text?was...
with adjusted
in yellow text?This would make it much clearer that existing prop is still in place but has been removed or it's settings adjusted.
There's a bunch of mods which auto-rotate trees based on world position. If any of those mods are enabled, the Angle
option for tree replacements should probably be hidden?
When placing trees using landscaping tools, the game is way too eager to apply the tool to the nearest network - this makes placing trees close to roads, etc., a complete PITA.
Would it be possible to get an option slider to reduce the 'hit area' of networks when placing trees? 100% = whatever vanilla is, 0% = turn off entirely. Alternatively, a keyboard shortcut to toggle the vanilla tree replacer?
I assume you're also planning to do a prop version in which case it would be useful for that too.
If I need to replace a specific individual prop instance, currently I use the Show individual props
checkbox which often generates a huge list of things to scroll though (eg. all the road arrow types, for each lane).
Would a better approach be, in the normal list (show individual props
= unchecked), for props that have more than one instance, put a expand/collapse arrow (or whatever) next to them... This way I can find the thing I want to change in the normal list, click the arrow button next to it to 'expand' it showing all instances of that specific prop, change one, then click the button again to collapse the list of individual props.
When collapsed, the expand/collapse button color could maybe be changed to indicate that individual prop instances for that item have been altered?
As far as I can tell, ferry buoys are floating buildings? If so, would it be possible to replace them with Floating Buoys from workshop?
Infos with extended front yards can show the highlighting in the wrong place (not offset back from road due to extended front yard).
Replace only individual instance of prop on map
Add option to do this, e.g. where a player has set global tree replacements give them the option to have it automatically happen on all maps/new games.
Ability to create a collection of props or trees, and then be able to replace a prop or tree with that collection - one of the items would be chosen at random each replacement.
It's similar to replacement packs, but just defining a collection of replacements (rather than a specific mapping A -> B
)
I want to customise the foilage along macwelshman's Rural Roads, of which there are several. By default these roads use deciduous trees, but those look out of place when the road is going through a huge pine tree (evergreen) forest.
So I want to replace the road's trees with various "scrub" trees from Pine Scrub Pack.
I could create a collection "Pine Scrub", add the trees from the scrub pack, set their probabilities, and then just use that collection as if it were a tree when defining replacemetns.
Note that it would be ideally be random per tree/prop, not per segment/building, otherwise repetition would be very obvious even within a single segment (based on my current testing). For example, see Klyte's "Prop Replacer" mod which allows "Fully Random" replacements as alternative to per-segment/building seed.
Another example is I could create a collection of map-themed trees to use in buildings, then not have to worry about choosing specific tree when replacing vanilla trees in my buildings. Same sort of thing with props, I could just bundle, for example, a load of residential garden props in to a collection and have low density residential buildings use those.
E.g. highway middle pillars with lights
Currently I am unable to select underground networks with BOB, rendering them uncustomisable.
Maybe PgUp/Down could toggle between overground vs. underground?
Here's an Aldi supermarket that I've removed all parking spaces (set the various props, all three listed in screenshot, to 0% probability)... Each time the game starts, the parking spaces seem to be retained somehow:
https://steamcommunity.com/sharedfiles/filedetails/?id=447763113
If I reset them then put them back to 0% probability they stay gone for the remainder of the game, but will suddenly be back again on next session.
I noticed that Klyte's Prop Replacer mod that I used to use had similar issues with parking spaces. Maybe they get cached somewhere eg. a parking grid or something?
Being able to add props, in particular, would be super useful for adding lights/signs to things like bridge pillars, power line pylons, tunnels, etc.
(could potentially allow some interesting opportunities with Adaptive Networks mod too; eg. I could add road sign props and have AN mod show/hide them based on TMPE settings)
With confirmation step, obviously.
In image below, I've got a specific instance of door marker selected in BOB:
Problem I'm having is I don't know which floor that marker is on. In the BOB UI, the x,y,z,angle are all 0 for that marker and also the marker on the front of the building, yet they are obviously in different positions on the building.
Would it be possible to get some way to see current x,y,z,a of a prop? Maybe as checkbox item tooltip when hovering the item in the list on the left?
Also, if there's some way to visually indicate the height of the prop more clearly that would be useful for props that have no visible form (eg. door markers, dust markers, parking spaces, etc).
I've made a global replacement of [v] Wall Light White
with Pipeline Mounted Light
- including setting angle, etc. Now my city has nice orange mood lighting everywhere instead of harsh white floodlights.
However, for some reason the light is buried on the Natural Disasters Earthquake Early Warning Sensor
building:
So I'm trying to set a building-specific override to change the Y offset for that building (ie. keep same light, rotation, etc., just lift it up out of ground). I can set the Y offset and click These Buildings
button, but nothing changes on the map.
Before change:
After change (the icon in list on right is now single building so it seems the override is present, but no change on map):
EDIT: Merry xmas (:
The thinner wires option is great, and what I would use normally, however it would be useful to have a thicker wires option to help make wires very clearly visible while detailing (eg. connecting 18+ 'wire' networks between 3 different size electricity pylons and a substation, which is a complete PITA). Having thicker wires just makes it easier to see where the wire ends are while endlessely tweaking their positions with Move It.
FYI, wire networks I use are:
Also, how does thinner wires interact with Railway Replacer mod which also has a thin wires option IIRC?
Alternatively, a mod to enable snapping (or somehow autowiring) wire networks to pylon wire connection points lol (:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.