Problem with LSYSTEM and with the workshop

Chiyu

Prince
Joined
Jun 9, 2006
Messages
412
Location
Limburg, The Netherlands
Hey, I have two problems with modding.

I'm making a new coastal (harbour-like) building and I want it to appear in the water properly.. When I give it LSYSTEM_COAST, it will cause a bug with the Arcology Shields (they will blow up, for some reason). When I give it LSYSTEM_HARBOR or something, it will get exactly the same graphics as the Harbor. How do I fix it, so it appears as it should?

And there's another bug I have in my mod since the last few upgrades. The Workshops seem to disappear from the world map after a while. Has anyone else experienced this and knows what causes it?


(for more information go to http://forums.civfanatics.com/showthread.php?t=234906)

Thanks in advance!
 
For the workshops, could it be they disappear when a new graphic era starts? If so, you probably haven't included this era in your xml for the workshop.

No idea on your coastal building.
 
Thanks for your tip GeoModder. It wasn't exactly the xml file that was missing or incomplete, but rather the art files themselves. The workshop problem is finished :).

Now about the LSYSTEM thing.. hmm.. help please :p.
 
Look closely at the code for each LSystem type...

For example, here is the harbor:
Code:
		<ArtRef Name="building:LSYSTEM_HARBOR">
			[B]<Attribute Class="Era">ERA_ANCIENT,ERA_CLASSICAL,ERA_MEDIEVAL,ERA_RENAISSANCE</Attribute>[/B]
			<Attribute Class="Scalar">bNoWaterTest:1</Attribute>
			<!-- this bypasses water testing -->
			<Attribute Class="Scalar">szSpecialLayout:Coast</Attribute>
			<Attribute Class="Scalar">bHasNoShadow:1</Attribute>
			<Attribute Class="Scalar">bUseCostAligner:1</Attribute>
			<Attribute Class="Scalar">fAlignerBoxSize:10</Attribute>
			<Attribute Class="Scalar">fPushX:0</Attribute>
			<!-- To debug the placement of the alignpoints, set next line to 0.0 -->
			<Attribute Class="Scalar">fAlignerOverride:-1.0</Attribute>
			<Attribute Class="ScalarList">lAlignerPointsX: -5, -5, -5, -5, -5, -3, -3, -3, -3, -3, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 5, 5, 5, 5, 5</Attribute>
			<Attribute Class="ScalarList">lAlignerPointsY: -6, -3, 0, 3, 6, -6, -3, 0, 3, 6, -6, -3, 0, 3, 6, -6, -3, 0, 3, 6, -6, -3, 0, 3, 6, -6, -3, 0, 3, 6</Attribute>
			<Attribute Class="ScalarList">lAlignerPointsWet: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1</Attribute>
			<Attribute Class="ScalarList">lAlignerPointsWeight: 1, 2, 3, 2, 1, 2, 4, 6, 4, 2, 3, 6, 9, 6, 3, 3, 6, 9, 6, 3, 2, 4, 6, 4, 2, 1, 2, 3, 2, 1</Attribute>
			<Attribute Class="Scalar">bForceWaterHeight:1</Attribute>
			<Rotate>-45</Rotate>
			<Scale>2.5</Scale>
		</ArtRef>
		<ArtRef Name="building:LSYSTEM_HARBOR">
			[B]<Attribute Class="Scalar">szNIF:Art/Structures/Buildings/Harbor/HarborModern.nif</Attribute>
			<Attribute Class="Era">ERA_INDUSTRIAL,ERA_MODERN,ERA_FUTURE</Attribute>[/B]
			<Attribute Class="Scalar">bNoWaterTest:1</Attribute>
			<!-- this bypasses water testing -->
			<Attribute Class="Scalar">szSpecialLayout:Coast</Attribute>
			<Attribute Class="Scalar">bHasNoShadow:1</Attribute>
			<Attribute Class="Scalar">bUseCostAligner:1</Attribute>
			<Attribute Class="Scalar">fAlignerBoxSize:10</Attribute>
			<Attribute Class="Scalar">fPushX:0</Attribute>
			<!-- To debug the placement of the alignpoints, set next line to 0.0 -->
			<Attribute Class="Scalar">fAlignerOverride:-1.0</Attribute>
			<Attribute Class="ScalarList">lAlignerPointsX: -5, -5, -5, -5, -5, -3, -3, -3, -3, -3, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 5, 5, 5, 5, 5</Attribute>
			<Attribute Class="ScalarList">lAlignerPointsY: -6, -3, 0, 3, 6, -6, -3, 0, 3, 6, -6, -3, 0, 3, 6, -6, -3, 0, 3, 6, -6, -3, 0, 3, 6, -6, -3, 0, 3, 6</Attribute>
			<Attribute Class="ScalarList">lAlignerPointsWet: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1</Attribute>
			<Attribute Class="ScalarList">lAlignerPointsWeight: 1, 2, 3, 2, 1, 2, 4, 6, 4, 2, 3, 6, 9, 6, 3, 3, 6, 9, 6, 3, 2, 4, 6, 4, 2, 1, 2, 3, 2, 1</Attribute>
			<Attribute Class="Scalar">bForceWaterHeight:1</Attribute>
			<Rotate>-45</Rotate>
			<Scale>1.1</Scale>
		</ArtRef>
There are two occurances of LSYSTEM_HARBOR, the first uses the building nif defined in your artstyles xml file during the listed eras, the second uses the 'modern' harbor nif file without regard to what is defined by the artstyle for anything using this LSYSTEM.

To get around this you can create your own LSYSTEM type by using a copy of the first LSYSTEM_HARBOR with a new name and the appropriate eras defined (or simply remove that line entirely to use the same nif for all eras).

Hope that helps get you started in the right direction.
 
Rotatation is used on a lot of the LSystem objects to change from a '2x1' leaf to a '1x2' leaf for one example. Other than that I haven't played with it much, you can always change it around and see what happens :)
 
Top Bottom