Page 34 of 35

Re: Oolite Wiki

Posted: Sun Jul 17, 2022 11:18 pm
by phkb
Cholmondely wrote: Tue Jul 05, 2022 6:00 am
Suggestion: add date of version & platform details (AppleMac etc) to the wiki page.
I was trying to avoid splitting the zip files, to keep them the same as the Google Drive versions. But it might not be possible.
Cholmondely wrote: Tue Jul 05, 2022 6:00 am
For coding reference purposes I doubt that we need all 3 versions, but I'm just a dumb pilot!
Given the coding differences that exist between the different platforms, we actually do need all 3 versions.

Re: Oolite Wiki

Posted: Wed Sep 14, 2022 11:50 am
by Cholmondely
Addition to Concepts category

NPC concept page now up on our wiki! (Crew has been up for some time now)



Corrections/Additions eagerly welcomed...

Re: Oolite Wiki

Posted: Sun Dec 18, 2022 11:53 am
by Cholmondely
We have two seemingly identical categories on our wiki:

Category:Broken OXPs

and

Category:Deprecated OXPs


Is there some sort of significant difference between these which I should know about?

Re: Oolite Wiki

Posted: Sun Dec 18, 2022 1:15 pm
by montana05
Cholmondely wrote: Sun Dec 18, 2022 11:53 am
We have two seemingly identical categories on our wiki:

Category:Broken OXPs

and

Category:Deprecated OXPs


Is there some sort of significant difference between these which I should know about?
Personal view of mine, just merge them and keep it under Broken OXP's so that non-native English visitors understand it.

Re: Oolite Wiki

Posted: Sun Dec 18, 2022 4:31 pm
by Cholmondely
montana05 wrote: Sun Dec 18, 2022 1:15 pm
Cholmondely wrote: Sun Dec 18, 2022 11:53 am
We have two seemingly identical categories on our wiki:

Category:Broken OXPs

and

Category:Deprecated OXPs


Is there some sort of significant difference between these which I should know about?
Personal view of mine, just merge them and keep it under Broken OXP's so that non-native English visitors understand it.
Excellent point. I intend to follow it if nobody else argues against. But is there a significant difference?

Re: Oolite Wiki

Posted: Wed Dec 21, 2022 5:04 pm
by Switeck
Deprecated OXPs might work just fine either on older versions of Oolite OR the current version of Oolite using soon-to-be-removed features.

Re: Oolite Wiki

Posted: Thu Jan 19, 2023 11:15 am
by Cholmondely
A problem I can't seem to solve

1) I've fixed the "Norman Mosser" red links (there were 9 of them), but this "red link" remains: https://wiki.alioth.net/index.php/Speci ... man_Mosser

I don't see anything at all on the page (https://wiki.alioth.net/index.php/Elite ... d_Articles) with this supposed red link.

Any ideas?

Re: Oolite Wiki

Posted: Mon Jan 23, 2023 2:25 pm
by Cholmondely
New Wiki page up: Humour

Re: Oolite Wiki

Posted: Sat Mar 04, 2023 9:38 pm
by Cholmondely
Just to say, I've added the following into the [urlhttps://wiki.alioth.net/index.php/Oolite_JavaScript_Reference:_Player]Oolite JavaScript Reference: Player wiki page.[/url]

I realise that there are going to be oodles of them. I can also see looming issues of duplication (criminal_hate_score might tally to some extent with a pro-GalCop stance). Suggestions for more are eagerly welcomed!
Random Hits
missionVariables.random_hits_criminal_hate_score

LitF
_litf.LITF_cmdStats.health
_litf.LITF_cmdStats.sickness
_litf.LITF_cmdStats.strength
_litf.LITF_cmdStats.reputation
_litf.LITF_cmdStats.stance
Don't forget that I'm just a dumb pilot whose trying to be helpful!

Re: Oolite Wiki

Posted: Sun Mar 05, 2023 1:29 pm
by Alnivel
Cholmondely wrote: Sat Mar 04, 2023 9:38 pm
Just to say, I've added the following into the Oolite JavaScript Reference: Player wiki page.

I realise that there are going to be oodles of them. I can also see looming issues of duplication (criminal_hate_score might tally to some extent with a pro-GalCop stance). Suggestions for more are eagerly welcomed!
Random Hits
missionVariables.random_hits_criminal_hate_score

LitF
_litf.LITF_cmdStats.health
_litf.LITF_cmdStats.sickness
_litf.LITF_cmdStats.strength
_litf.LITF_cmdStats.reputation
_litf.LITF_cmdStats.stance
Don't forget that I'm just a dumb pilot whose trying to be helpful!
I don't think that it belongs to that wiki page - sure, those variables is about player, but they have nothing to deal with the global variable player, the instance of the Player class. random_hits_criminal_hate_score is mission variable, _litf.* is properties of LitF's world script.

You probably have seen the list of the non-standard properties for the Planet class, but they are listed there because they are added by OXPs directly to Oolite objects - you can check system.mainPlanet.isGasGiant in same way as you would check standart system.mainPlanet.hasAtmosphere . However, in the case of, for example, _litf.LITF_cmdStats.health, it is not property of player, so you can't use it as player._litf.LITF_cmdStats.health

Perhaps it makes sense to gather the various points of possible interaction with OXPs, but they should be placed on their own page.

Re: Oolite Wiki

Posted: Mon Mar 13, 2023 5:15 pm
by Cholmondely
hiran wrote: Sun Apr 11, 2021 10:18 am
While creating a parser with all such exceptions is not impossible (actually I just did it) I am still wondering how all these nice OXPs actually work in Oolite. It must have a very forgiving parser, and I hope to meet the same kind of forgiveness...
I think that I may need to come back to you over your .plist editor!

I've been trying to rehabilitate the Hathor station. But this shipdata.plist does not work:

Code: Select all

{
"hathor" = 
	{
	ai_type = "stationAI.plist";
	beacon = "TSBEACON";
	auto_ai = yes;
	aft_eject_position = "0.0 13.0 0.0";
	energy_recharge_rate = 4;	
	max_cargo = 2;
	has_ecm = "true";
	has_escape_pod = "true";
	heat_insulation = 1.0;
	has_scoop = "true";
	name = "Hathor Station";
	model = "2xhath.dat"; 
	roles = "station(0) KW_hathor inquirer_station"; //added inquirer_station
 	thrust = 50;	
	smooth = "false";	
	frangible = "false";

	market_capacity = 150;
	market_definition = (
		{
		"type" = "class";
		"name" = "oolite-farming";
		"price_multiplier" = 0.7;
		"price_randomiser" = 0.2;
		"quantity_multiplier" = 1.5;
		"quantity_randomiser" = 0.5;
		}, 			
		{
		"type" = "default";
		"capacity" = 0;
		};
			);
	market_monitored = no;


subentities =
   (
      {
         subentity_key = "hath-dock";
         type = "standard";
        is_dock = true;
		position = (0, -120, 125);
      },
      {
         subentity_key = "hath-tunnel";
         type = "standard";
      },

	  {
         subentity_key = "hath-power";
         type = "standard";
      },
	  
      {
       subentity_key = "hath-flasher2";
         type = "flasher";
		 position = (-96.2, 3455, -713.4);
		 color = yellowColor;
		 frequency = 1;
		 size = 40;
      },
      {
         subentity_key = "hath-flasher1";
         type = "flasher";
		 position = (116, 3913, -857.4);
		 color = redColor;
		 frequency = 2;
		 size = 40;
      }


	);	
	
shaders = 
		{ 
            "kwhathortex.png" = 
			{ 
                vertex_shader = "kwhathshaderv.vertex"; 
                fragment_shader = "kwhathshaderf.fragment"; 
                textures = 
						(
							"kwhathortex.png", 
							"kwhathornormals.png",
							"kwhathoreffects.png",
							"kwhathorlites.png",
						);
				uniforms =
						{
						uColorMap = { type = texture; value = 0; }; 
						uNormalMap = { type = texture; value = 1; }; 
						uEffectsMap = { type = texture; value = 2; };
						uGlowMap = { type = texture; value = 3; };	
						uTime = "universalTime";
						nearly_dead = "throwingSparks";	
						hull_heat_level = "hullHeatLevel";	 				
						engine_power = "speedFactor"; 
						}; 	
			}; 
		};

	};
	
"hath-dock" =  
	{
	ai_type = "nullAI.plist";
	name = "Hathor Dock";
	model = "hdockarea.dat"; 
	roles = "KWhath-dock"; 
	};
	
	"hath-tunnel" =  
	{
	ai_type = "nullAI.plist";
	name = "Hathor";
	model = "2xhathtunnel.dat"; 
	roles = "hath-subent"; 
		materials = 
				{ 
					"kwhdocktex.png" = 
					{ 
						diffuse_map = "kwhdocktex.png"; 
						specular_color = ( 0.2, 0.2, 0.2 );  // Applies when specular map is not used (no shaders) 
						shininess = 2; 
					}; 
				};
	shaders = 
			{ 
				"kwhdocktex.png" = 
				{ 
					vertex_shader = "kwhathshaderv.vertex"; 
					fragment_shader = "kwhathdockf.fragment"; 
					textures = 
							(
								"kwhdocktex.png", 
								"kwhdocknormals.png",
								{name = "kwhdockeffects.png"; repeat_s = "yes";}
							);
					uniforms =
							{
							uColorMap = { type = texture; value = 0; };
							uNormalMap = { type = texture; value = 1; };
							uEffectsMap = { type = texture; value = 2; };
							uTime = "universalTime";					
							hull_heat_level = "hullHeatLevel";							
							}; 	
				}; 
			};	

	};

	
"hath-power" =  
	{
	ai_type = "nullAI.plist";
	name = "Hathor";
	model = "2xhathpower.dat"; 
	roles = "hath-subent"; 
			shaders = 
		{ 
            "kwhpowertex.png" = 
			{ 
                vertex_shader = "kwhathshaderv.vertex"; 
                fragment_shader = "kwhathshaderf.fragment"; 
                textures = 
						(
							"kwhpowertex.png", 
							"kwhpowernormals.png",
							"kwhpowereffects.png",
							"kwhpowerlites.png",
						);
				uniforms =
						{
						uColorMap = { type = texture; value = 0; }; 
						uNormalMap = { type = texture; value = 1; }; 
						uEffectsMap = { type = texture; value = 2; };
						uGlowMap = { type = texture; value = 3; };	
						uTime = "universalTime";
						nearly_dead = "throwingSparks";	
						hull_heat_level = "hullHeatLevel";	 				
						engine_power = "speedFactor"; 
						}; 	
			}; 
		};

	};
	

}
But this does (Market definitions commented out):

Code: Select all

{
"hathor" = 
	{
	ai_type = "stationAI.plist";
	beacon = "TSBEACON";
	auto_ai = yes;
	aft_eject_position = "0.0 13.0 0.0";
	energy_recharge_rate = 4;	
	max_cargo = 2;
	has_ecm = "true";
	has_escape_pod = "true";
	heat_insulation = 1.0;
	has_scoop = "true";
	name = "Hathor Station";
	model = "2xhath.dat"; 
	roles = "station(0) KW_hathor inquirer_station"; //added inquirer_station
 	thrust = 50;	
	smooth = "false";	
	frangible = "false";

//	market_capacity = 150;
//	market_definition = (
//		{
//		"type" = "class";
//		"name" = "oolite-farming";
//		"price_multiplier" = 0.7;
//		"price_randomiser" = 0.2;
//		"quantity_multiplier" = 1.5;
//		"quantity_randomiser" = 0.5;
//		}, 			
//		{
//		"type" = "default";
//		"capacity" = 0;
//		};
//			);
//	market_monitored = no;


subentities =
   (
      {
         subentity_key = "hath-dock";
         type = "standard";
        is_dock = true;
		position = (0, -120, 125);
      },
      {
         subentity_key = "hath-tunnel";
         type = "standard";
      },

	  {
         subentity_key = "hath-power";
         type = "standard";
      },
	  
      {
       subentity_key = "hath-flasher2";
         type = "flasher";
		 position = (-96.2, 3455, -713.4);
		 color = yellowColor;
		 frequency = 1;
		 size = 40;
      },
      {
         subentity_key = "hath-flasher1";
         type = "flasher";
		 position = (116, 3913, -857.4);
		 color = redColor;
		 frequency = 2;
		 size = 40;
      }


	);	
	
shaders = 
		{ 
            "kwhathortex.png" = 
			{ 
                vertex_shader = "kwhathshaderv.vertex"; 
                fragment_shader = "kwhathshaderf.fragment"; 
                textures = 
						(
							"kwhathortex.png", 
							"kwhathornormals.png",
							"kwhathoreffects.png",
							"kwhathorlites.png",
						);
				uniforms =
						{
						uColorMap = { type = texture; value = 0; }; 
						uNormalMap = { type = texture; value = 1; }; 
						uEffectsMap = { type = texture; value = 2; };
						uGlowMap = { type = texture; value = 3; };	
						uTime = "universalTime";
						nearly_dead = "throwingSparks";	
						hull_heat_level = "hullHeatLevel";	 				
						engine_power = "speedFactor"; 
						}; 	
			}; 
		};

	};
	
"hath-dock" =  
	{
	ai_type = "nullAI.plist";
	name = "Hathor Dock";
	model = "hdockarea.dat"; 
	roles = "KWhath-dock"; 
	};
	
	"hath-tunnel" =  
	{
	ai_type = "nullAI.plist";
	name = "Hathor";
	model = "2xhathtunnel.dat"; 
	roles = "hath-subent"; 
		materials = 
				{ 
					"kwhdocktex.png" = 
					{ 
						diffuse_map = "kwhdocktex.png"; 
						specular_color = ( 0.2, 0.2, 0.2 );  // Applies when specular map is not used (no shaders) 
						shininess = 2; 
					}; 
				};
	shaders = 
			{ 
				"kwhdocktex.png" = 
				{ 
					vertex_shader = "kwhathshaderv.vertex"; 
					fragment_shader = "kwhathdockf.fragment"; 
					textures = 
							(
								"kwhdocktex.png", 
								"kwhdocknormals.png",
								{name = "kwhdockeffects.png"; repeat_s = "yes";}
							);
					uniforms =
							{
							uColorMap = { type = texture; value = 0; };
							uNormalMap = { type = texture; value = 1; };
							uEffectsMap = { type = texture; value = 2; };
							uTime = "universalTime";					
							hull_heat_level = "hullHeatLevel";							
							}; 	
				}; 
			};	

	};

	
"hath-power" =  
	{
	ai_type = "nullAI.plist";
	name = "Hathor";
	model = "2xhathpower.dat"; 
	roles = "hath-subent"; 
			shaders = 
		{ 
            "kwhpowertex.png" = 
			{ 
                vertex_shader = "kwhathshaderv.vertex"; 
                fragment_shader = "kwhathshaderf.fragment"; 
                textures = 
						(
							"kwhpowertex.png", 
							"kwhpowernormals.png",
							"kwhpowereffects.png",
							"kwhpowerlites.png",
						);
				uniforms =
						{
						uColorMap = { type = texture; value = 0; }; 
						uNormalMap = { type = texture; value = 1; }; 
						uEffectsMap = { type = texture; value = 2; };
						uGlowMap = { type = texture; value = 3; };	
						uTime = "universalTime";
						nearly_dead = "throwingSparks";	
						hull_heat_level = "hullHeatLevel";	 				
						engine_power = "speedFactor"; 
						}; 	
			}; 
		};

	};
	

}
Al I get from the AppleMac's plutil is gubbins/Oolite/AddOns/oolite.oxp.Killer Wolf.hathor_station.oxp/Config/shipdata.plist: Unexpected character { at line 1

I have been ogling braces, staring at semi-colons and peeking at commas - and am utterly fed up. All I can find on the subject is this:
The round brackets are arrays in OpenStep, and are used to group information for a given key. Examples are the exhaust (if one has multiple ones for a given ship), the individual custom views and sub-entities...

The curly brackets make up dictionaries, which tie together different keys on the same subject. The two main examples there are the overall entries themselves (each ship is made up of a dictionary of keys describing it) and the external views (a dictionary of individual views, each of which is defined as an array of keys describing that given view). (Thargoid 2011)
Nothing about when one uses a comma or a semi-colon - and since I don't even comprehend the difference between a dictionary and an array, I am floundering and feeling frustrated!

Re: Oolite Wiki

Posted: Mon Mar 13, 2023 8:14 pm
by hiran
Cholmondely wrote: Mon Mar 13, 2023 5:15 pm
Al I get from the AppleMac's plutil is gubbins/Oolite/AddOns/oolite.oxp.Killer Wolf.hathor_station.oxp/Config/shipdata.plist: Unexpected character { at line 1

I have been ogling braces, staring at semi-colons and peeking at commas - and am utterly fed up.
Yes, that can happen with unfortunate syntax and without tools providing good error messages. I'd not even try looking for the issue manually/optically. Have you tried using my parser?
Cholmondely wrote: Mon Mar 13, 2023 5:15 pm
All I can find on the subject is this:
The round brackets are arrays in OpenStep, and are used to group information for a given key. Examples are the exhaust (if one has multiple ones for a given ship), the individual custom views and sub-entities...

The curly brackets make up dictionaries, which tie together different keys on the same subject. The two main examples there are the overall entries themselves (each ship is made up of a dictionary of keys describing it) and the external views (a dictionary of individual views, each of which is defined as an array of keys describing that given view). (Thargoid 2011)
Nothing about when one uses a comma or a semi-colon - and since I don't even comprehend the difference between a dictionary and an array, I am floundering and feeling frustrated!
So to shed some light here:
In a dictionary, every value has a name. To markup a dictionary you need to use curly braces, and it would look like this:

{
"name1" = "value1";
"name2" = "value2";
}

Not all names have to go into quotes, and not all values require them. But you now need to watch out where you place them and where not.
Note that after every key/value pair there is a semicolon.

For arrays, you have several values without name, and they are grouped using round brackets:

(
value1,
value2,
value3
)

Later the values are just accessed by numbers: The first, the second, the next, the last, ...
Note that between two values there is a comma.

Now the part that can make plist files really complex:
Wherever you place a value, it can be a primitive one (a number, a string, a boolean value like true/false) or a complex value such as an array or a dictionary. And with this you can create all the complex structures you perceive when looking at Oolite's plist files.

There is some stuff written on Wikipedia, but a more precise definition is required for parsers:
https://en.wikipedia.org/wiki/Property_list

So again: Try to run parsers/linters - but those that give good error messages. The example you gave is not really helping.
If you are out of suitable software, try the PList tester contained in https://github.com/HiranChaudhuri/OoliteAddonScanner

Re: Oolite Wiki

Posted: Thu Apr 20, 2023 11:49 pm
by Cholmondely
New Wiki page up: Ethics

Any suggestions for improvement are more than welcome!

Re: Oolite Wiki

Posted: Mon Apr 24, 2023 8:19 pm
by hiran
Cholmondely wrote: Thu Apr 20, 2023 11:49 pm
Any suggestions for improvement are more than welcome!
One important improvement, IMHO would be to save the work invested so far. If oolite.org can break away that easily I have a hunch this might as well happen to the wiki and the forum. With timer's work we might have a chance to collect it all under one stable umbrella, yet this work needs to be done. Who can help?

Re: Oolite Wiki

Posted: Thu May 04, 2023 10:40 pm
by Cholmondely
Alnivel wrote: Fri Jan 13, 2023 8:34 pm
it should be considered a feature
Just seen your recent addition to the Planetinfo.plist page - goodness! It really gets the imaginative juices flowing!

Apologies for the lack of contact re your work on TCA. My first Jameson elicited no response once the mission was completed (docked some 20 or so times), and I wonder if I know why. So I've started a second - but have yet to see any of the final mission screens despite visiting Tionisla Main Station, TOGY, Isinor, Isinor RH, Qutiri and just now, Ensoreus. Will do another 5 dockings or so before I bug you again!