İlk commit: Stepstead Godot istemci (4.6 Mobile)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
commit
6a1706051d
346 changed files with 14415 additions and 0 deletions
14
.gitignore
vendored
Normal file
14
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
# Godot cache / import
|
||||||
|
.godot/
|
||||||
|
.import/
|
||||||
|
|
||||||
|
# Build çıktıları (1.1G+, yeniden üretilir)
|
||||||
|
exports/
|
||||||
|
android/
|
||||||
|
|
||||||
|
# Derlenmiş binary'ler
|
||||||
|
*.aar
|
||||||
|
native/**/build/
|
||||||
|
|
||||||
|
# Mac
|
||||||
|
.DS_Store
|
||||||
74
LORE.md
Normal file
74
LORE.md
Normal file
|
|
@ -0,0 +1,74 @@
|
||||||
|
# Gazamfer — Dünya ve Hikaye
|
||||||
|
|
||||||
|
## Gezegen
|
||||||
|
|
||||||
|
Gazamfer, üç kıtadan oluşan büyük bir gezegendir. Üç ırk yaşar: **arkanlar**, **zirler** ve **insanlar** — bu sırayla var oldular. Arkanlar hep vardı; sonra zirler, en son insanlar.
|
||||||
|
|
||||||
|
### Kıtalar
|
||||||
|
- **Eldoria** — insanların ve zirlerin toprakları
|
||||||
|
- **Meridia** — insanların ve zirlerin toprakları
|
||||||
|
- **Kaldün** — yalnızca arkanların diyarı. Magma ve sıcaklık üzerine kurulu.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Irklar
|
||||||
|
|
||||||
|
### Arkanlar
|
||||||
|
Gezegenin en kadim ve en tehlikeli ırkı; asıl tehdit. Olağanüstü fiziksel boyutları ve üstün mistik güçleri vardır. Çok uzun yaşarlar.
|
||||||
|
|
||||||
|
Güçlerini **magmanın sıcaklığından** alırlar, bu yüzden Kaldün'den uzaklaşmazlar. Ayrıca **10.000 yıl önce** zirlerle olan büyük savaşta, zir şamanlarının büyüleri yüzünden **üreme yeteneklerini kaybettiler**. O günden beri sayıları artmıyor ve Kaldün'ü asla terk etmiyorlar.
|
||||||
|
|
||||||
|
Bugün insanların arkanlardan hiç haberi yok. **Bir arkan görüp hayatta kalan tek bir insan bile yok.**
|
||||||
|
|
||||||
|
### Zirler
|
||||||
|
Genelde düşmanlık göstermeyen ırk. Arkanlar ve insanlarla karşılaştıklarında tepkisiz kalır, zorda kalmadıkça savaşmazlar. İnsanlara göre kısa boylu, doğayla iç içe büyümüşlerdir. Zamanlarının çoğunu yer altında geçirir, güneşliyken pek yüzeye çıkmazlar.
|
||||||
|
|
||||||
|
En büyük özellikleri: **karanlıkta, insanların gündüz gördüğünden çok daha uzağı görebilirler.**
|
||||||
|
|
||||||
|
Çoğunluğu **şaman ve druit**; savaşçıları ve avcıları da vardır. Arkanlarla üreme lanetini büken güç onlardan çıkmıştır.
|
||||||
|
|
||||||
|
İnsanlarla alıp veremedikleri yok — bazıları insan tüccarlarla alışveriş yapar. Ama zir güveni zor kazanılır.
|
||||||
|
|
||||||
|
**Zirler farklı bir dil konuşur, insanlar anlamaz.** Yalnızca **seçilmişler — yani oyuncular — zirceyi anlayabilir.** *(Bu, hikâyede ilerleyen zamanda ortaya çıkacak.)*
|
||||||
|
|
||||||
|
### İnsanlar
|
||||||
|
Üç gruba ayrılırlar:
|
||||||
|
|
||||||
|
- **Soylular** — yalnızca belirli ailelerin kanını taşıyanlardan çıkar
|
||||||
|
- paladin · priest · büyücü
|
||||||
|
- **Halk** — kimse ne olmak isterse onu seçer
|
||||||
|
- hunter · warrior · keşiş
|
||||||
|
- **Lanetliler** — aslında halktan insanlar; yaşayışları ve yaptıkları yüzünden bu üç sınıftan biri olurlar
|
||||||
|
- hırsız · kara büyücü
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Thessa Mor
|
||||||
|
|
||||||
|
Başlangıç köyünün en yaşlı ve bilge kişisi. **Aslında bir arkan.**
|
||||||
|
|
||||||
|
Kadim gücü sayesinde çok önce insanların arasına karışmış. Diğer arkanların yaptıklarını yanlış buluyor. İnsanların arasında yaşadığı ve oranın koşulları yüzünden **fiziksel arkan yapısını kaybetmiş**; mistik gücüyle kendini insan olarak gösteriyor.
|
||||||
|
|
||||||
|
Kimse gerçeğini bilmiyor.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Oyun Mekaniği — Lore Bağı
|
||||||
|
|
||||||
|
Oyuncular **adım atarak Action Point toplar.** Bu AP'ler **Will Power** birikmesini sağlar. Will Power, insanların **aylar sürecek işleri inanılmaz kısa sürelerde** tamamlamasını sağlar. Yürümek = güç biriktirmek.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Merkezî Çatışma
|
||||||
|
|
||||||
|
**Thessa Mor**, seçilmişlere zirceyi ve seçilmiş olmanın yollarını öğretir. Amacı net: **arkanların yok olması.** Başka türlü Gazamfer'de dengenin asla sağlanamayacağına inanır.
|
||||||
|
|
||||||
|
**Arkanlar seçilmişleri uzaktan görebilir.** Yürüyerek güçlenen, Will Power biriktiren insanları fark ederler. Üreme lanetlerine çare ararken bir yol bulduklarını sanırlar: **bu insanların ruhlarını / Will Power'larını emerek** lanetten kurtulmak.
|
||||||
|
|
||||||
|
Yani seçilmişler hem arkanların yok edilmesinin tek umudu, hem de arkanların hayatta kalma planının hedefi. İki taraf da aynı güce — Will Power'a — bakıyor.
|
||||||
|
|
||||||
|
### Kaldün'ün Etkisi
|
||||||
|
Kaldün'de bazı alanlarda duran insanların **Will Power'ı azalmaya başlar.** O bölgelerde yapılan her işlem çok daha fazla Will Power harcar. Arkan diyarı, seçilmişi kendi silahından mahrum bırakır — Kaldün'e ne kadar dalarsan, o kadar güçsüzleşirsin.
|
||||||
|
|
||||||
|
### Son Hedef
|
||||||
|
Thessa Mor, arkanları yok etmek için **seçilmişlerden bir ordu** kuruyor. Tek kader anı değil — yürüyerek güçlenen, zirlerle konuşabilen, Will Power taşıyan seçilmişlerin ortak gücü arkanların sonunu getirecek.
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
XSym
|
||||||
|
0044
|
||||||
|
99be1ba3f1b49f27eaef0cd758c0b70d
|
||||||
|
Versions/Current/GodotApplePluginsCoreMotion
|
||||||
|
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
XSym
|
||||||
|
0026
|
||||||
|
e58c4cf10cc7c8ef7d7167ccb641aeb4
|
||||||
|
Versions/Current/Resources
|
||||||
|
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,46 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>BuildMachineOSBuild</key>
|
||||||
|
<string>25F71</string>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>en</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>GodotApplePluginsCoreMotion</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>godotappleplugins.GodotApplePluginsCoreMotion</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>GodotApplePluginsCoreMotion</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>FMWK</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>1.0</string>
|
||||||
|
<key>CFBundleSupportedPlatforms</key>
|
||||||
|
<array>
|
||||||
|
<string>MacOSX</string>
|
||||||
|
</array>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>1</string>
|
||||||
|
<key>DTCompiler</key>
|
||||||
|
<string>com.apple.compilers.llvm.clang.1_0</string>
|
||||||
|
<key>DTPlatformBuild</key>
|
||||||
|
<string>25E251</string>
|
||||||
|
<key>DTPlatformName</key>
|
||||||
|
<string>macosx</string>
|
||||||
|
<key>DTPlatformVersion</key>
|
||||||
|
<string>26.4</string>
|
||||||
|
<key>DTSDKBuild</key>
|
||||||
|
<string>25E251</string>
|
||||||
|
<key>DTSDKName</key>
|
||||||
|
<string>macosx26.4</string>
|
||||||
|
<key>DTXcode</key>
|
||||||
|
<string>2641</string>
|
||||||
|
<key>DTXcodeBuild</key>
|
||||||
|
<string>17E202</string>
|
||||||
|
<key>LSMinimumSystemVersion</key>
|
||||||
|
<string>14.0</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="CMAbsoluteAltitudeData" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
An absolute (sea-level-referenced) altitude sample from [CMAltimeter].
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
Wraps Apple's [code skip-lint]CMAbsoluteAltitudeData[/code], available on iOS 15 and later. Reports altitude referenced to mean sea level along with accuracy and precision estimates.
|
||||||
|
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmabsolutealtitudedata]CMAbsoluteAltitudeData reference[/url].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
|
||||||
|
</tutorials>
|
||||||
|
<members>
|
||||||
|
<member name="accuracy" type="float" setter="set_accuracy" getter="get_accuracy">
|
||||||
|
Estimated accuracy of [member altitude] in meters.
|
||||||
|
</member>
|
||||||
|
<member name="altitude" type="float" setter="set_altitude" getter="get_altitude">
|
||||||
|
Altitude in meters relative to mean sea level.
|
||||||
|
</member>
|
||||||
|
<member name="precision" type="float" setter="set_precision" getter="get_precision">
|
||||||
|
Estimated precision of [member altitude] in meters.
|
||||||
|
</member>
|
||||||
|
<member name="timestamp" type="float" setter="set_timestamp" getter="get_timestamp">
|
||||||
|
The time at which the sample was taken, in seconds since device boot.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="CMAccelerometerData" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
A single accelerometer sample produced by [CMMotionManager].
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
Wraps Apple's [code skip-lint]CMAccelerometerData[/code]. Provides the raw accelerometer reading in G-forces (1 G = 9.81 m/s²) along each device axis. See Apple's [url=https://developer.apple.com/documentation/coremotion/cmaccelerometerdata]CMAccelerometerData reference[/url].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
|
||||||
|
</tutorials>
|
||||||
|
<members>
|
||||||
|
<member name="acceleration" type="Vector3" setter="set_acceleration" getter="get_acceleration">
|
||||||
|
Acceleration along each axis in G-forces. Includes gravity. To remove gravity, use device-motion updates and read [member CMDeviceMotion.user_acceleration] instead.
|
||||||
|
</member>
|
||||||
|
<member name="timestamp" type="float" setter="set_timestamp" getter="get_timestamp">
|
||||||
|
The time at which the sample was taken, in seconds since device boot.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,79 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="CMAltimeter" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Reports relative and (iOS 15+) absolute altitude from the device barometer.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
Wraps Apple's [code skip-lint]CMAltimeter[/code]. Use [method start_relative_altitude_updates] for change-from-start readings and [method start_absolute_altitude_updates] for sea-level-referenced readings (iOS 15+).
|
||||||
|
[b]Requires the [code]NSMotionUsageDescription[/code] Info.plist key.[/b]
|
||||||
|
[b]Platform availability:[/b] Real implementation on [b]iOS[/b]. On other platforms [code]is_*_available[/code] returns [code]false[/code] and calls to start updates emit [signal altimeter_failed].
|
||||||
|
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmaltimeter]CMAltimeter reference[/url].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
|
||||||
|
</tutorials>
|
||||||
|
<methods>
|
||||||
|
<method name="authorization_status" qualifiers="static">
|
||||||
|
<return type="int" />
|
||||||
|
<description>
|
||||||
|
Returns Apple's [code skip-lint]CMAuthorizationStatus[/code] integer for altimeter access (0 = notDetermined, 1 = restricted, 2 = denied, 3 = authorized).
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="is_absolute_altitude_available" qualifiers="static">
|
||||||
|
<return type="bool" />
|
||||||
|
<description>
|
||||||
|
Returns [code]true[/code] when the device can report absolute (sea-level) altitude. Requires iOS 15 or later.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="is_relative_altitude_available" qualifiers="static">
|
||||||
|
<return type="bool" />
|
||||||
|
<description>
|
||||||
|
Returns [code]true[/code] when the device has a barometer capable of reporting relative altitude.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="start_absolute_altitude_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Begins absolute altitude updates delivered via [signal absolute_altitude_updated]. iOS 15+; emits [signal altimeter_failed] on earlier iOS versions or other platforms.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="start_relative_altitude_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Begins relative altitude updates delivered via [signal relative_altitude_updated].
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="stop_absolute_altitude_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Stops absolute altitude updates.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="stop_relative_altitude_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Stops relative altitude updates.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
</methods>
|
||||||
|
<signals>
|
||||||
|
<signal name="absolute_altitude_updated">
|
||||||
|
<param index="0" name="altitude" type="CMAbsoluteAltitudeData" />
|
||||||
|
<description>
|
||||||
|
Emitted on the main thread when a new absolute altitude sample is available.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="altimeter_failed">
|
||||||
|
<param index="0" name="message" type="String" />
|
||||||
|
<description>
|
||||||
|
Emitted when CoreMotion reports an error or when the API is unavailable on the current platform.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="relative_altitude_updated">
|
||||||
|
<param index="0" name="altitude" type="CMAltitudeData" />
|
||||||
|
<description>
|
||||||
|
Emitted on the main thread when a new relative altitude sample is available.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
</signals>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="CMAltitudeData" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
A relative altitude / barometric pressure sample from [CMAltimeter].
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
Wraps Apple's [code skip-lint]CMAltitudeData[/code]. The altitude is reported relative to the point at which updates were started, not absolute sea level — for absolute readings, use [method CMAltimeter.start_absolute_altitude_updates] and [CMAbsoluteAltitudeData].
|
||||||
|
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmaltitudedata]CMAltitudeData reference[/url].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
|
||||||
|
</tutorials>
|
||||||
|
<members>
|
||||||
|
<member name="pressure" type="float" setter="set_pressure" getter="get_pressure">
|
||||||
|
Barometric pressure in kilopascals (kPa).
|
||||||
|
</member>
|
||||||
|
<member name="relative_altitude" type="float" setter="set_relative_altitude" getter="get_relative_altitude">
|
||||||
|
Change in altitude in meters, relative to the point at which updates were started.
|
||||||
|
</member>
|
||||||
|
<member name="timestamp" type="float" setter="set_timestamp" getter="get_timestamp">
|
||||||
|
The time at which the sample was taken, in seconds since device boot.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,56 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="CMDeviceMotion" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Fused sensor data combining accelerometer, gyroscope and magnetometer into attitude, gravity, user acceleration and bias-corrected rotation rate.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
Wraps Apple's [code skip-lint]CMDeviceMotion[/code]. Use this instead of raw accelerometer/gyro data when you need device attitude, gravity-separated user acceleration, or bias-corrected rotation. Emitted by both [CMMotionManager] (handheld device) and [CMHeadphoneMotionManager] (AirPods).
|
||||||
|
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmdevicemotion]CMDeviceMotion reference[/url].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
|
||||||
|
</tutorials>
|
||||||
|
<members>
|
||||||
|
<member name="attitude_quaternion" type="Quaternion" setter="set_attitude_quaternion" getter="get_attitude_quaternion">
|
||||||
|
Device attitude as a quaternion, relative to the reference frame chosen when starting updates.
|
||||||
|
</member>
|
||||||
|
<member name="attitude_roll_pitch_yaw" type="Vector3" setter="set_attitude_roll_pitch_yaw" getter="get_attitude_roll_pitch_yaw">
|
||||||
|
Device attitude as Euler angles in radians: [code]x[/code] is roll, [code]y[/code] is pitch, [code]z[/code] is yaw.
|
||||||
|
</member>
|
||||||
|
<member name="gravity" type="Vector3" setter="set_gravity" getter="get_gravity">
|
||||||
|
The gravity component of the acceleration, in G-forces, in device coordinates.
|
||||||
|
</member>
|
||||||
|
<member name="heading" type="float" setter="set_heading" getter="get_heading">
|
||||||
|
Heading in degrees, where 0° is the reference attitude. Returns [code]-1[/code] on platforms where heading is not available (e.g. macOS headphone motion, iOS < 11).
|
||||||
|
</member>
|
||||||
|
<member name="magnetic_field" type="Vector3" setter="set_magnetic_field" getter="get_magnetic_field">
|
||||||
|
Bias-corrected magnetic field in microteslas. Check [member magnetic_field_accuracy] to interpret reliability.
|
||||||
|
</member>
|
||||||
|
<member name="magnetic_field_accuracy" type="int" setter="set_magnetic_field_accuracy" getter="get_magnetic_field_accuracy" enum="MagneticFieldCalibrationAccuracy">
|
||||||
|
Calibration accuracy of [member magnetic_field].
|
||||||
|
</member>
|
||||||
|
<member name="rotation_rate" type="Vector3" setter="set_rotation_rate" getter="get_rotation_rate">
|
||||||
|
Bias-corrected rotation rate around each axis in radians per second.
|
||||||
|
</member>
|
||||||
|
<member name="timestamp" type="float" setter="set_timestamp" getter="get_timestamp">
|
||||||
|
The time at which the sample was taken, in seconds since device boot.
|
||||||
|
</member>
|
||||||
|
<member name="user_acceleration" type="Vector3" setter="set_user_acceleration" getter="get_user_acceleration">
|
||||||
|
Acceleration imparted by the user, in G-forces, with gravity removed.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
<constants>
|
||||||
|
<constant name="UNCALIBRATED" value="-1" enum="MagneticFieldCalibrationAccuracy">
|
||||||
|
The magnetometer has not been calibrated; [member magnetic_field] is not reliable.
|
||||||
|
</constant>
|
||||||
|
<constant name="LOW" value="0" enum="MagneticFieldCalibrationAccuracy">
|
||||||
|
Low calibration accuracy.
|
||||||
|
</constant>
|
||||||
|
<constant name="MEDIUM" value="1" enum="MagneticFieldCalibrationAccuracy">
|
||||||
|
Medium calibration accuracy.
|
||||||
|
</constant>
|
||||||
|
<constant name="HIGH" value="2" enum="MagneticFieldCalibrationAccuracy">
|
||||||
|
High calibration accuracy.
|
||||||
|
</constant>
|
||||||
|
</constants>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="CMGyroData" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
A single gyroscope sample produced by [CMMotionManager].
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
Wraps Apple's [code skip-lint]CMGyroData[/code]. Provides the raw rotation rate around each device axis. See Apple's [url=https://developer.apple.com/documentation/coremotion/cmgyrodata]CMGyroData reference[/url].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
|
||||||
|
</tutorials>
|
||||||
|
<members>
|
||||||
|
<member name="rotation_rate" type="Vector3" setter="set_rotation_rate" getter="get_rotation_rate">
|
||||||
|
Rotation rate around each axis in radians per second. Includes bias from gyroscope drift. For a bias-corrected value, use device-motion updates and read [member CMDeviceMotion.rotation_rate] instead.
|
||||||
|
</member>
|
||||||
|
<member name="timestamp" type="float" setter="set_timestamp" getter="get_timestamp">
|
||||||
|
The time at which the sample was taken, in seconds since device boot.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,70 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="CMHeadphoneMotionManager" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Streams fused head motion data from AirPods Pro / AirPods Max / AirPods 3rd gen and later.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
Wraps Apple's [code skip-lint]CMHeadphoneMotionManager[/code]. Provides [CMDeviceMotion] samples representing head pose when compatible headphones are connected. Useful for head-tracked audio, spatial UI, or letting the user look around with their head while their hands are free.
|
||||||
|
[b]Requires the [code]NSMotionUsageDescription[/code] Info.plist key (and on macOS, the matching entitlement).[/b]
|
||||||
|
[b]Platform availability:[/b] Real implementation on [b]iOS 14+[/b] and [b]macOS 14+[/b]. On other platforms [member is_device_motion_available] is [code]false[/code] and [method start_device_motion_updates] emits [signal update_failed].
|
||||||
|
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmheadphonemotionmanager]CMHeadphoneMotionManager reference[/url].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
|
||||||
|
</tutorials>
|
||||||
|
<methods>
|
||||||
|
<method name="authorization_status" qualifiers="static">
|
||||||
|
<return type="int" />
|
||||||
|
<description>
|
||||||
|
Returns Apple's [code skip-lint]CMAuthorizationStatus[/code] integer (0 = notDetermined, 1 = restricted, 2 = denied, 3 = authorized). Available on iOS 17.4 / macOS 14.4 and later; returns 0 on earlier versions.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="start_device_motion_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Begins delivering [CMDeviceMotion] samples for the connected headphones via [signal device_motion_updated]. If no compatible headphones are connected, samples will begin to arrive once a pair connects.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="stop_device_motion_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Stops headphone motion updates.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
</methods>
|
||||||
|
<members>
|
||||||
|
<member name="device_motion" type="CMDeviceMotion" setter="" getter="get_device_motion">
|
||||||
|
The most recent headphone motion sample, or [code]null[/code] if none is available.
|
||||||
|
</member>
|
||||||
|
<member name="is_device_motion_active" type="bool" setter="" getter="get_is_device_motion_active">
|
||||||
|
[code]true[/code] when updates are currently being delivered.
|
||||||
|
</member>
|
||||||
|
<member name="is_device_motion_available" type="bool" setter="" getter="get_is_device_motion_available">
|
||||||
|
[code]true[/code] when compatible headphones are currently connected and providing motion data.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
<signals>
|
||||||
|
<signal name="connected">
|
||||||
|
<description>
|
||||||
|
Emitted when compatible headphones connect and begin providing motion data.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="device_motion_updated">
|
||||||
|
<param index="0" name="deviceMotion" type="CMDeviceMotion" />
|
||||||
|
<description>
|
||||||
|
Emitted on the main thread when a new headphone motion sample is available.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="disconnected">
|
||||||
|
<description>
|
||||||
|
Emitted when the previously connected headphones disconnect.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="update_failed">
|
||||||
|
<param index="0" name="message" type="String" />
|
||||||
|
<description>
|
||||||
|
Emitted when CoreMotion reports an error or when the API is unavailable on the current platform.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
</signals>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="CMMagnetometerData" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
A single magnetometer sample produced by [CMMotionManager].
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
Wraps Apple's [code skip-lint]CMMagnetometerData[/code]. Provides the raw magnetic field reading in microteslas along each device axis. Includes bias from device magnetic interference. For a bias-corrected value, use device-motion updates and read [member CMDeviceMotion.magnetic_field] instead. See Apple's [url=https://developer.apple.com/documentation/coremotion/cmmagnetometerdata]CMMagnetometerData reference[/url].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
|
||||||
|
</tutorials>
|
||||||
|
<members>
|
||||||
|
<member name="magnetic_field" type="Vector3" setter="set_magnetic_field" getter="get_magnetic_field">
|
||||||
|
Magnetic field strength along each axis in microteslas (µT).
|
||||||
|
</member>
|
||||||
|
<member name="timestamp" type="float" setter="set_timestamp" getter="get_timestamp">
|
||||||
|
The time at which the sample was taken, in seconds since device boot.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="CMMotionActivity" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
A user-activity classification (walking, running, automotive, etc.) from the system motion coprocessor.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
Wraps Apple's [code skip-lint]CMMotionActivity[/code]. More than one activity flag may be set simultaneously (e.g. [member walking] and [member automotive] when the user is moving inside a vehicle). The system uses [member confidence] to indicate how certain the classification is.
|
||||||
|
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmmotionactivity]CMMotionActivity reference[/url].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
|
||||||
|
</tutorials>
|
||||||
|
<members>
|
||||||
|
<member name="automotive" type="bool" setter="set_automotive" getter="get_automotive">
|
||||||
|
[code]true[/code] when the user appears to be in a vehicle.
|
||||||
|
</member>
|
||||||
|
<member name="confidence" type="int" setter="set_confidence" getter="get_confidence" enum="Confidence">
|
||||||
|
How confident the system is in this classification.
|
||||||
|
</member>
|
||||||
|
<member name="cycling" type="bool" setter="set_cycling" getter="get_cycling">
|
||||||
|
[code]true[/code] when the user appears to be cycling.
|
||||||
|
</member>
|
||||||
|
<member name="running" type="bool" setter="set_running" getter="get_running">
|
||||||
|
[code]true[/code] when the user appears to be running.
|
||||||
|
</member>
|
||||||
|
<member name="start_date" type="float" setter="set_start_date" getter="get_start_date">
|
||||||
|
Unix-time start of the period for which this activity applies, in seconds.
|
||||||
|
</member>
|
||||||
|
<member name="stationary" type="bool" setter="set_stationary" getter="get_stationary">
|
||||||
|
[code]true[/code] when the user appears to be stationary.
|
||||||
|
</member>
|
||||||
|
<member name="unknown" type="bool" setter="set_unknown" getter="get_unknown">
|
||||||
|
[code]true[/code] when the system cannot classify the user's activity.
|
||||||
|
</member>
|
||||||
|
<member name="walking" type="bool" setter="set_walking" getter="get_walking">
|
||||||
|
[code]true[/code] when the user appears to be walking.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
<constants>
|
||||||
|
<constant name="LOW" value="0" enum="Confidence">
|
||||||
|
Low confidence in the classification.
|
||||||
|
</constant>
|
||||||
|
<constant name="MEDIUM" value="1" enum="Confidence">
|
||||||
|
Medium confidence in the classification.
|
||||||
|
</constant>
|
||||||
|
<constant name="HIGH" value="2" enum="Confidence">
|
||||||
|
High confidence in the classification.
|
||||||
|
</constant>
|
||||||
|
</constants>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,64 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="CMMotionActivityManager" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Classifies the user's current activity (walking, running, automotive, cycling, stationary).
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
Wraps Apple's [code skip-lint]CMMotionActivityManager[/code]. The system continuously classifies user activity in the background while motion permission is granted, so [method query_activity] can return historical data even from before your app launched.
|
||||||
|
[b]Requires the [code]NSMotionUsageDescription[/code] Info.plist key.[/b]
|
||||||
|
[b]Platform availability:[/b] Real implementation on [b]iOS[/b]. On other platforms [method is_activity_available] returns [code]false[/code] and calls report unavailability via the callback or [signal activity_failed].
|
||||||
|
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmmotionactivitymanager]CMMotionActivityManager reference[/url].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
|
||||||
|
</tutorials>
|
||||||
|
<methods>
|
||||||
|
<method name="authorization_status" qualifiers="static">
|
||||||
|
<return type="int" />
|
||||||
|
<description>
|
||||||
|
Returns Apple's [code skip-lint]CMAuthorizationStatus[/code] integer (0 = notDetermined, 1 = restricted, 2 = denied, 3 = authorized).
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="is_activity_available" qualifiers="static">
|
||||||
|
<return type="bool" />
|
||||||
|
<description>
|
||||||
|
Returns [code]true[/code] when the device has a motion coprocessor capable of activity classification.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="query_activity">
|
||||||
|
<return type="void" />
|
||||||
|
<param index="0" name="fromUnixTime" type="float" />
|
||||||
|
<param index="1" name="toUnixTime" type="float" />
|
||||||
|
<param index="2" name="callback" type="Callable" />
|
||||||
|
<description>
|
||||||
|
Returns historical activities recorded between two Unix-time stamps. [param callback] is invoked on the main thread with [code]callback(activities: Array, error: String)[/code]; [param activities] is an array of [CMMotionActivity].
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="start_activity_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Begins live activity updates delivered via [signal activity_updated]. The signal fires whenever the classified activity changes.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="stop_activity_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Stops live activity updates.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
</methods>
|
||||||
|
<signals>
|
||||||
|
<signal name="activity_failed">
|
||||||
|
<param index="0" name="message" type="String" />
|
||||||
|
<description>
|
||||||
|
Emitted when the API is unavailable on the current platform.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="activity_updated">
|
||||||
|
<param index="0" name="activity" type="CMMotionActivity" />
|
||||||
|
<description>
|
||||||
|
Emitted on the main thread when the user's classified activity changes.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
</signals>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,162 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="CMMotionManager" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Streams accelerometer, gyroscope, magnetometer, and fused device-motion data from the device.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
Wraps Apple's [code skip-lint]CMMotionManager[/code]. Configure an update interval, call one of the [code]start_*_updates[/code] methods, and connect to the matching signal to receive samples.
|
||||||
|
Prefer [signal device_motion_updated] over raw [signal accelerometer_updated] / [signal gyro_updated] / [signal magnetometer_updated] when you need gravity-separated user acceleration, bias-corrected rotation, or device attitude.
|
||||||
|
[b]Platform availability:[/b] Real implementation on [b]iOS[/b]. On other platforms the manager exists but [code]is_*_available[/code] returns [code]false[/code] and calling [code]start_*_updates[/code] emits [signal update_failed].
|
||||||
|
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmmotionmanager]CMMotionManager reference[/url].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
|
||||||
|
</tutorials>
|
||||||
|
<methods>
|
||||||
|
<method name="start_accelerometer_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Begins delivering accelerometer samples via [signal accelerometer_updated]. Sampling cadence is controlled by [member accelerometer_update_interval].
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="start_device_motion_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<param index="0" name="referenceFrame" type="int" enum="AttitudeReferenceFrame" />
|
||||||
|
<description>
|
||||||
|
Begins delivering fused [CMDeviceMotion] samples via [signal device_motion_updated]. [param referenceFrame] selects how attitude is referenced. Pass [constant XMAGNETIC_NORTH_Z_VERTICAL] or [constant XTRUE_NORTH_Z_VERTICAL] to align yaw with magnetic or true north (requires the magnetometer).
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="start_gyro_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Begins delivering gyroscope samples via [signal gyro_updated]. Sampling cadence is controlled by [member gyro_update_interval].
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="start_magnetometer_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Begins delivering magnetometer samples via [signal magnetometer_updated]. Sampling cadence is controlled by [member magnetometer_update_interval].
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="stop_accelerometer_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Stops accelerometer updates.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="stop_device_motion_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Stops device-motion updates.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="stop_gyro_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Stops gyroscope updates.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="stop_magnetometer_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Stops magnetometer updates.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
</methods>
|
||||||
|
<members>
|
||||||
|
<member name="accelerometer_data" type="CMAccelerometerData" setter="" getter="get_accelerometer_data">
|
||||||
|
The most recent accelerometer sample, or [code]null[/code] if none is available.
|
||||||
|
</member>
|
||||||
|
<member name="accelerometer_update_interval" type="float" setter="set_accelerometer_update_interval" getter="get_accelerometer_update_interval">
|
||||||
|
Desired interval between accelerometer samples in seconds.
|
||||||
|
</member>
|
||||||
|
<member name="device_motion" type="CMDeviceMotion" setter="" getter="get_device_motion">
|
||||||
|
The most recent device-motion sample, or [code]null[/code] if none is available.
|
||||||
|
</member>
|
||||||
|
<member name="device_motion_update_interval" type="float" setter="set_device_motion_update_interval" getter="get_device_motion_update_interval">
|
||||||
|
Desired interval between device-motion samples in seconds.
|
||||||
|
</member>
|
||||||
|
<member name="gyro_data" type="CMGyroData" setter="" getter="get_gyro_data">
|
||||||
|
The most recent gyroscope sample, or [code]null[/code] if none is available.
|
||||||
|
</member>
|
||||||
|
<member name="gyro_update_interval" type="float" setter="set_gyro_update_interval" getter="get_gyro_update_interval">
|
||||||
|
Desired interval between gyroscope samples in seconds.
|
||||||
|
</member>
|
||||||
|
<member name="is_accelerometer_active" type="bool" setter="" getter="get_is_accelerometer_active">
|
||||||
|
[code]true[/code] when accelerometer updates are currently being delivered.
|
||||||
|
</member>
|
||||||
|
<member name="is_accelerometer_available" type="bool" setter="" getter="get_is_accelerometer_available">
|
||||||
|
[code]true[/code] when the device has an accelerometer available to this binding.
|
||||||
|
</member>
|
||||||
|
<member name="is_device_motion_active" type="bool" setter="" getter="get_is_device_motion_active">
|
||||||
|
[code]true[/code] when device-motion updates are currently being delivered.
|
||||||
|
</member>
|
||||||
|
<member name="is_device_motion_available" type="bool" setter="" getter="get_is_device_motion_available">
|
||||||
|
[code]true[/code] when fused device-motion is available on this device.
|
||||||
|
</member>
|
||||||
|
<member name="is_gyro_active" type="bool" setter="" getter="get_is_gyro_active">
|
||||||
|
[code]true[/code] when gyroscope updates are currently being delivered.
|
||||||
|
</member>
|
||||||
|
<member name="is_gyro_available" type="bool" setter="" getter="get_is_gyro_available">
|
||||||
|
[code]true[/code] when the device has a gyroscope available to this binding.
|
||||||
|
</member>
|
||||||
|
<member name="is_magnetometer_active" type="bool" setter="" getter="get_is_magnetometer_active">
|
||||||
|
[code]true[/code] when magnetometer updates are currently being delivered.
|
||||||
|
</member>
|
||||||
|
<member name="is_magnetometer_available" type="bool" setter="" getter="get_is_magnetometer_available">
|
||||||
|
[code]true[/code] when the device has a magnetometer available to this binding.
|
||||||
|
</member>
|
||||||
|
<member name="magnetometer_data" type="CMMagnetometerData" setter="" getter="get_magnetometer_data">
|
||||||
|
The most recent magnetometer sample, or [code]null[/code] if none is available.
|
||||||
|
</member>
|
||||||
|
<member name="magnetometer_update_interval" type="float" setter="set_magnetometer_update_interval" getter="get_magnetometer_update_interval">
|
||||||
|
Desired interval between magnetometer samples in seconds.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
<signals>
|
||||||
|
<signal name="accelerometer_updated">
|
||||||
|
<param index="0" name="accelerometer" type="CMAccelerometerData" />
|
||||||
|
<description>
|
||||||
|
Emitted on the main thread when a new accelerometer sample is available.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="device_motion_updated">
|
||||||
|
<param index="0" name="deviceMotion" type="CMDeviceMotion" />
|
||||||
|
<description>
|
||||||
|
Emitted on the main thread when a new fused device-motion sample is available.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="gyro_updated">
|
||||||
|
<param index="0" name="gyro" type="CMGyroData" />
|
||||||
|
<description>
|
||||||
|
Emitted on the main thread when a new gyroscope sample is available.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="magnetometer_updated">
|
||||||
|
<param index="0" name="magnetometer" type="CMMagnetometerData" />
|
||||||
|
<description>
|
||||||
|
Emitted on the main thread when a new magnetometer sample is available.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="update_failed">
|
||||||
|
<param index="0" name="message" type="String" />
|
||||||
|
<description>
|
||||||
|
Emitted when CoreMotion reports an error or when the API is unavailable on the current platform.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
</signals>
|
||||||
|
<constants>
|
||||||
|
<constant name="XARBITRARY_Z_VERTICAL" value="1" enum="AttitudeReferenceFrame">
|
||||||
|
Z axis vertical, X axis aligned with an arbitrary direction in the horizontal plane.
|
||||||
|
</constant>
|
||||||
|
<constant name="XARBITRARY_CORRECTED_Z_VERTICAL" value="2" enum="AttitudeReferenceFrame">
|
||||||
|
Same as [constant XARBITRARY_Z_VERTICAL] but corrected for magnetometer drift.
|
||||||
|
</constant>
|
||||||
|
<constant name="XMAGNETIC_NORTH_Z_VERTICAL" value="4" enum="AttitudeReferenceFrame">
|
||||||
|
Z axis vertical, X axis pointing toward magnetic north. Requires the magnetometer.
|
||||||
|
</constant>
|
||||||
|
<constant name="XTRUE_NORTH_Z_VERTICAL" value="8" enum="AttitudeReferenceFrame">
|
||||||
|
Z axis vertical, X axis pointing toward true north. Requires the magnetometer and Location Services.
|
||||||
|
</constant>
|
||||||
|
</constants>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,89 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="CMPedometer" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Step, distance, and floor counts from the system pedometer.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
Wraps Apple's [code skip-lint]CMPedometer[/code]. Supports both historical queries (already-recorded data from the system) and live updates.
|
||||||
|
[b]Requires the [code]NSMotionUsageDescription[/code] Info.plist key.[/b] On iOS the system records pedometer data continuously while motion permission is granted, so [method query_pedometer_data] can return data even from before your app launched.
|
||||||
|
[b]Platform availability:[/b] Real implementation on [b]iOS[/b]. On other platforms the [code]is_*_available[/code] static methods return [code]false[/code] and calls report unavailability through their callback or [signal pedometer_failed].
|
||||||
|
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmpedometer]CMPedometer reference[/url].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
|
||||||
|
</tutorials>
|
||||||
|
<methods>
|
||||||
|
<method name="authorization_status" qualifiers="static">
|
||||||
|
<return type="int" />
|
||||||
|
<description>
|
||||||
|
Returns the current authorization status using Apple's [code skip-lint]CMAuthorizationStatus[/code] integer (0 = notDetermined, 1 = restricted, 2 = denied, 3 = authorized).
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="is_cadence_available" qualifiers="static">
|
||||||
|
<return type="bool" />
|
||||||
|
<description>
|
||||||
|
Returns [code]true[/code] when the device can report cadence.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="is_distance_available" qualifiers="static">
|
||||||
|
<return type="bool" />
|
||||||
|
<description>
|
||||||
|
Returns [code]true[/code] when the device can estimate walked/run distance.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="is_floor_counting_available" qualifiers="static">
|
||||||
|
<return type="bool" />
|
||||||
|
<description>
|
||||||
|
Returns [code]true[/code] when the device can count floors ascended/descended.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="is_pace_available" qualifiers="static">
|
||||||
|
<return type="bool" />
|
||||||
|
<description>
|
||||||
|
Returns [code]true[/code] when the device can report pace.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="is_step_counting_available" qualifiers="static">
|
||||||
|
<return type="bool" />
|
||||||
|
<description>
|
||||||
|
Returns [code]true[/code] when the device can count steps. Step counting is the minimum requirement for any pedometer functionality.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="query_pedometer_data">
|
||||||
|
<return type="void" />
|
||||||
|
<param index="0" name="fromUnixTime" type="float" />
|
||||||
|
<param index="1" name="toUnixTime" type="float" />
|
||||||
|
<param index="2" name="callback" type="Callable" />
|
||||||
|
<description>
|
||||||
|
Queries pedometer data recorded between two Unix-time stamps. [param callback] is invoked on the main thread with [code]callback(data: CMPedometerData, error: String)[/code]; [param data] is [code]null[/code] when [param error] is set.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="start_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<param index="0" name="fromUnixTime" type="float" />
|
||||||
|
<description>
|
||||||
|
Begins live pedometer updates accumulating from [param fromUnixTime] (Unix seconds). Subsequent samples arrive via [signal pedometer_updated]. Use [code]Time.get_unix_time_from_system()[/code] for "now".
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="stop_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Stops live pedometer updates.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
</methods>
|
||||||
|
<signals>
|
||||||
|
<signal name="pedometer_failed">
|
||||||
|
<param index="0" name="message" type="String" />
|
||||||
|
<description>
|
||||||
|
Emitted when CoreMotion reports an error on a live updates stream, or when the API is unavailable on the current platform.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="pedometer_updated">
|
||||||
|
<param index="0" name="data" type="CMPedometerData" />
|
||||||
|
<description>
|
||||||
|
Emitted on the main thread with the latest cumulative pedometer reading since [method start_updates] was called.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
</signals>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="CMPedometerData" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Aggregated pedometer data covering a time window.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
Wraps Apple's [code skip-lint]CMPedometerData[/code]. Optional Apple values (distance, floor counts, pace, cadence) report [code]-1[/code] when the underlying capability is unavailable on the device. See Apple's [url=https://developer.apple.com/documentation/coremotion/cmpedometerdata]CMPedometerData reference[/url].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
|
||||||
|
</tutorials>
|
||||||
|
<members>
|
||||||
|
<member name="average_active_pace" type="float" setter="set_average_active_pace" getter="get_average_active_pace">
|
||||||
|
Average pace across the window in seconds per meter, or [code]-1[/code] when unavailable.
|
||||||
|
</member>
|
||||||
|
<member name="current_cadence" type="float" setter="set_current_cadence" getter="get_current_cadence">
|
||||||
|
Instantaneous cadence in steps per second, or [code]-1[/code] when unavailable.
|
||||||
|
</member>
|
||||||
|
<member name="current_pace" type="float" setter="set_current_pace" getter="get_current_pace">
|
||||||
|
Instantaneous pace in seconds per meter, or [code]-1[/code] when unavailable.
|
||||||
|
</member>
|
||||||
|
<member name="distance" type="float" setter="set_distance" getter="get_distance">
|
||||||
|
Distance walked or run in meters, or [code]-1[/code] when distance estimation is unavailable.
|
||||||
|
</member>
|
||||||
|
<member name="end_date" type="float" setter="set_end_date" getter="get_end_date">
|
||||||
|
Unix-time end of the reporting window in seconds.
|
||||||
|
</member>
|
||||||
|
<member name="floors_ascended" type="int" setter="set_floors_ascended" getter="get_floors_ascended">
|
||||||
|
Approximate number of floors ascended, or [code]-1[/code] when floor counting is unavailable.
|
||||||
|
</member>
|
||||||
|
<member name="floors_descended" type="int" setter="set_floors_descended" getter="get_floors_descended">
|
||||||
|
Approximate number of floors descended, or [code]-1[/code] when floor counting is unavailable.
|
||||||
|
</member>
|
||||||
|
<member name="number_of_steps" type="int" setter="set_number_of_steps" getter="get_number_of_steps">
|
||||||
|
Step count across the reporting window.
|
||||||
|
</member>
|
||||||
|
<member name="start_date" type="float" setter="set_start_date" getter="get_start_date">
|
||||||
|
Unix-time start of the reporting window in seconds.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,271 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>files</key>
|
||||||
|
<dict>
|
||||||
|
<key>Resources/Info.plist</key>
|
||||||
|
<data>
|
||||||
|
V2gXiXYEKthoF+/jfExDDWF93LQ=
|
||||||
|
</data>
|
||||||
|
<key>Resources/doc_classes/CMAbsoluteAltitudeData.xml</key>
|
||||||
|
<data>
|
||||||
|
ruTKO3c2PbLquPxEPjNbxh5Lr0g=
|
||||||
|
</data>
|
||||||
|
<key>Resources/doc_classes/CMAccelerometerData.xml</key>
|
||||||
|
<data>
|
||||||
|
MGhilTq5A7cDDIGlgTeepQ5YnEU=
|
||||||
|
</data>
|
||||||
|
<key>Resources/doc_classes/CMAltimeter.xml</key>
|
||||||
|
<data>
|
||||||
|
Bh8pRJUZzdX38IUZXYxk5xLAOcY=
|
||||||
|
</data>
|
||||||
|
<key>Resources/doc_classes/CMAltitudeData.xml</key>
|
||||||
|
<data>
|
||||||
|
XncwCLUZGKxizsT4d36ImyTAfhc=
|
||||||
|
</data>
|
||||||
|
<key>Resources/doc_classes/CMDeviceMotion.xml</key>
|
||||||
|
<data>
|
||||||
|
7cMBuEKO+J33emlQzGAmUVY+37Y=
|
||||||
|
</data>
|
||||||
|
<key>Resources/doc_classes/CMGyroData.xml</key>
|
||||||
|
<data>
|
||||||
|
BUfMW1Q1pI+HZDTgn7S/kC4RZVY=
|
||||||
|
</data>
|
||||||
|
<key>Resources/doc_classes/CMHeadphoneMotionManager.xml</key>
|
||||||
|
<data>
|
||||||
|
FnOPBnmglv3tUY2/KINv4MwAnUk=
|
||||||
|
</data>
|
||||||
|
<key>Resources/doc_classes/CMMagnetometerData.xml</key>
|
||||||
|
<data>
|
||||||
|
yhze/CizXvHiuOZrD0iiFhB4mTU=
|
||||||
|
</data>
|
||||||
|
<key>Resources/doc_classes/CMMotionActivity.xml</key>
|
||||||
|
<data>
|
||||||
|
2BYkcgbtrEhnKtg4wo2BMIH3pxA=
|
||||||
|
</data>
|
||||||
|
<key>Resources/doc_classes/CMMotionActivityManager.xml</key>
|
||||||
|
<data>
|
||||||
|
i12o0lpE95M+o3cs+BhlMG6+PWA=
|
||||||
|
</data>
|
||||||
|
<key>Resources/doc_classes/CMMotionManager.xml</key>
|
||||||
|
<data>
|
||||||
|
y/QuZavNCtAQp/aFqQpPBsLrwpI=
|
||||||
|
</data>
|
||||||
|
<key>Resources/doc_classes/CMPedometer.xml</key>
|
||||||
|
<data>
|
||||||
|
jXC71Xh81YCrJcTyIk1ZfQ0zrzg=
|
||||||
|
</data>
|
||||||
|
<key>Resources/doc_classes/CMPedometerData.xml</key>
|
||||||
|
<data>
|
||||||
|
ragAg6xgX258zW943jka4RCMk7A=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>files2</key>
|
||||||
|
<dict>
|
||||||
|
<key>Resources/Info.plist</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
RA4KNEUT3BeYQxqO+ChSDfr68XFnxKBqktMIMvNJOKg=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Resources/doc_classes/CMAbsoluteAltitudeData.xml</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
RJbSliCU4rrzZ+Ds73KNMiV2V2hC3kF1vml1r3gVNrg=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Resources/doc_classes/CMAccelerometerData.xml</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
0ZTg5tlk5CebGDj0zvJBOHrNq7MFG5YM+TXXkMpOvXg=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Resources/doc_classes/CMAltimeter.xml</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
wjkXKlnfQlR3FpN4zMszvfAKegJddYZaXaJPcf+5jKo=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Resources/doc_classes/CMAltitudeData.xml</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
MrQBfd0SlC/fnCNRxWozDU2l1kuh6u4krHpUeyNpEDw=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Resources/doc_classes/CMDeviceMotion.xml</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
OGWPjyAOnFUgAUTrNZYuvDDj/QyxAzjJxvzzc9w72GI=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Resources/doc_classes/CMGyroData.xml</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
CauWse7MqNhA3wY+9eK7esh6Hj6s43RlEK4zO46KNkk=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Resources/doc_classes/CMHeadphoneMotionManager.xml</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
8255jnS84Sld2w3fVL5fTl4EOn4zIbMfQE5ArxPScpA=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Resources/doc_classes/CMMagnetometerData.xml</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
f1C6fe6RKz0BiJEeVQ6WQmwuLXyOpQple5yzW1VF59U=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Resources/doc_classes/CMMotionActivity.xml</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
mJtQxqJ5A/FzMfPR6briuOcUhX+TYmQt1tOdzncVFKM=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Resources/doc_classes/CMMotionActivityManager.xml</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
ptSLkSJQIHBOZfAzvavj63f4//29X9S9wqISFndxkcA=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Resources/doc_classes/CMMotionManager.xml</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
k3zhKAXBA0YNQnBIZnf6I1/ZKQWkCSqCan+n4wHqvgI=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Resources/doc_classes/CMPedometer.xml</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
wQfIsk9BMd0ZPyaPfjD2gKMPERVqxuZWa1jjKbCsqJA=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Resources/doc_classes/CMPedometerData.xml</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
pGA4w+NWkL1kO3DCw31Q8wFg+x5b2yL9hgKAWPOfEN8=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>rules</key>
|
||||||
|
<dict>
|
||||||
|
<key>^Resources/</key>
|
||||||
|
<true/>
|
||||||
|
<key>^Resources/.*\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>optional</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1100</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Resources/Base\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1010</real>
|
||||||
|
</dict>
|
||||||
|
<key>^version.plist$</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>rules2</key>
|
||||||
|
<dict>
|
||||||
|
<key>.*\.dSYM($|/)</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>11</real>
|
||||||
|
</dict>
|
||||||
|
<key>^(.*/)?\.DS_Store$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>2000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
|
||||||
|
<dict>
|
||||||
|
<key>nested</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>10</real>
|
||||||
|
</dict>
|
||||||
|
<key>^.*</key>
|
||||||
|
<true/>
|
||||||
|
<key>^Info\.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^PkgInfo$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Resources/</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Resources/.*\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>optional</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1100</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Resources/Base\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1010</real>
|
||||||
|
</dict>
|
||||||
|
<key>^[^/]+$</key>
|
||||||
|
<dict>
|
||||||
|
<key>nested</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>10</real>
|
||||||
|
</dict>
|
||||||
|
<key>^embedded\.provisionprofile$</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^version\.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
XSym
|
||||||
|
0001
|
||||||
|
7fc56270e7a70fa81a5935b72eacbe29
|
||||||
|
A
|
||||||
|
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>AvailableLibraries</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>BinaryPath</key>
|
||||||
|
<string>GodotApplePluginsCoreMotion.framework/GodotApplePluginsCoreMotion</string>
|
||||||
|
<key>LibraryIdentifier</key>
|
||||||
|
<string>ios-arm64</string>
|
||||||
|
<key>LibraryPath</key>
|
||||||
|
<string>GodotApplePluginsCoreMotion.framework</string>
|
||||||
|
<key>SupportedArchitectures</key>
|
||||||
|
<array>
|
||||||
|
<string>arm64</string>
|
||||||
|
</array>
|
||||||
|
<key>SupportedPlatform</key>
|
||||||
|
<string>ios</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>BinaryPath</key>
|
||||||
|
<string>GodotApplePluginsCoreMotion.framework/GodotApplePluginsCoreMotion</string>
|
||||||
|
<key>LibraryIdentifier</key>
|
||||||
|
<string>ios-arm64_x86_64-simulator</string>
|
||||||
|
<key>LibraryPath</key>
|
||||||
|
<string>GodotApplePluginsCoreMotion.framework</string>
|
||||||
|
<key>SupportedArchitectures</key>
|
||||||
|
<array>
|
||||||
|
<string>arm64</string>
|
||||||
|
<string>x86_64</string>
|
||||||
|
</array>
|
||||||
|
<key>SupportedPlatform</key>
|
||||||
|
<string>ios</string>
|
||||||
|
<key>SupportedPlatformVariant</key>
|
||||||
|
<string>simulator</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>XFWK</string>
|
||||||
|
<key>XCFrameworkFormatVersion</key>
|
||||||
|
<string>1.0</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1,101 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>files</key>
|
||||||
|
<dict>
|
||||||
|
<key>Info.plist</key>
|
||||||
|
<data>
|
||||||
|
YATGjz2TdE4R5vbRwDC/UvHPYg0=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>files2</key>
|
||||||
|
<dict/>
|
||||||
|
<key>rules</key>
|
||||||
|
<dict>
|
||||||
|
<key>^.*</key>
|
||||||
|
<true/>
|
||||||
|
<key>^.*\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>optional</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^.*\.lproj/locversion.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1100</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Base\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1010</real>
|
||||||
|
</dict>
|
||||||
|
<key>^version.plist$</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>rules2</key>
|
||||||
|
<dict>
|
||||||
|
<key>.*\.dSYM($|/)</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>11</real>
|
||||||
|
</dict>
|
||||||
|
<key>^(.*/)?\.DS_Store$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>2000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^.*</key>
|
||||||
|
<true/>
|
||||||
|
<key>^.*\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>optional</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^.*\.lproj/locversion.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1100</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Base\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1010</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Info\.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^PkgInfo$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^embedded\.provisionprofile$</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^version\.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1,101 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>files</key>
|
||||||
|
<dict>
|
||||||
|
<key>Info.plist</key>
|
||||||
|
<data>
|
||||||
|
UePO3lMGlX3OnMIwpSjcm5NID5w=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>files2</key>
|
||||||
|
<dict/>
|
||||||
|
<key>rules</key>
|
||||||
|
<dict>
|
||||||
|
<key>^.*</key>
|
||||||
|
<true/>
|
||||||
|
<key>^.*\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>optional</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^.*\.lproj/locversion.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1100</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Base\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1010</real>
|
||||||
|
</dict>
|
||||||
|
<key>^version.plist$</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>rules2</key>
|
||||||
|
<dict>
|
||||||
|
<key>.*\.dSYM($|/)</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>11</real>
|
||||||
|
</dict>
|
||||||
|
<key>^(.*/)?\.DS_Store$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>2000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^.*</key>
|
||||||
|
<true/>
|
||||||
|
<key>^.*\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>optional</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^.*\.lproj/locversion.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1100</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Base\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1010</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Info\.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^PkgInfo$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^embedded\.provisionprofile$</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^version\.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
XSym
|
||||||
|
0044
|
||||||
|
99be1ba3f1b49f27eaef0cd758c0b70d
|
||||||
|
Versions/Current/GodotApplePluginsCoreMotion
|
||||||
|
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
XSym
|
||||||
|
0026
|
||||||
|
e58c4cf10cc7c8ef7d7167ccb641aeb4
|
||||||
|
Versions/Current/Resources
|
||||||
|
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,46 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>BuildMachineOSBuild</key>
|
||||||
|
<string>25F71</string>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>en</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>GodotApplePluginsCoreMotion</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>godotappleplugins.GodotApplePluginsCoreMotion</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>GodotApplePluginsCoreMotion</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>FMWK</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>1.0</string>
|
||||||
|
<key>CFBundleSupportedPlatforms</key>
|
||||||
|
<array>
|
||||||
|
<string>MacOSX</string>
|
||||||
|
</array>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>1</string>
|
||||||
|
<key>DTCompiler</key>
|
||||||
|
<string>com.apple.compilers.llvm.clang.1_0</string>
|
||||||
|
<key>DTPlatformBuild</key>
|
||||||
|
<string>25E251</string>
|
||||||
|
<key>DTPlatformName</key>
|
||||||
|
<string>macosx</string>
|
||||||
|
<key>DTPlatformVersion</key>
|
||||||
|
<string>26.4</string>
|
||||||
|
<key>DTSDKBuild</key>
|
||||||
|
<string>25E251</string>
|
||||||
|
<key>DTSDKName</key>
|
||||||
|
<string>macosx26.4</string>
|
||||||
|
<key>DTXcode</key>
|
||||||
|
<string>2641</string>
|
||||||
|
<key>DTXcodeBuild</key>
|
||||||
|
<string>17E202</string>
|
||||||
|
<key>LSMinimumSystemVersion</key>
|
||||||
|
<string>14.0</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="CMAbsoluteAltitudeData" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
An absolute (sea-level-referenced) altitude sample from [CMAltimeter].
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
Wraps Apple's [code skip-lint]CMAbsoluteAltitudeData[/code], available on iOS 15 and later. Reports altitude referenced to mean sea level along with accuracy and precision estimates.
|
||||||
|
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmabsolutealtitudedata]CMAbsoluteAltitudeData reference[/url].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
|
||||||
|
</tutorials>
|
||||||
|
<members>
|
||||||
|
<member name="accuracy" type="float" setter="set_accuracy" getter="get_accuracy">
|
||||||
|
Estimated accuracy of [member altitude] in meters.
|
||||||
|
</member>
|
||||||
|
<member name="altitude" type="float" setter="set_altitude" getter="get_altitude">
|
||||||
|
Altitude in meters relative to mean sea level.
|
||||||
|
</member>
|
||||||
|
<member name="precision" type="float" setter="set_precision" getter="get_precision">
|
||||||
|
Estimated precision of [member altitude] in meters.
|
||||||
|
</member>
|
||||||
|
<member name="timestamp" type="float" setter="set_timestamp" getter="get_timestamp">
|
||||||
|
The time at which the sample was taken, in seconds since device boot.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="CMAccelerometerData" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
A single accelerometer sample produced by [CMMotionManager].
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
Wraps Apple's [code skip-lint]CMAccelerometerData[/code]. Provides the raw accelerometer reading in G-forces (1 G = 9.81 m/s²) along each device axis. See Apple's [url=https://developer.apple.com/documentation/coremotion/cmaccelerometerdata]CMAccelerometerData reference[/url].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
|
||||||
|
</tutorials>
|
||||||
|
<members>
|
||||||
|
<member name="acceleration" type="Vector3" setter="set_acceleration" getter="get_acceleration">
|
||||||
|
Acceleration along each axis in G-forces. Includes gravity. To remove gravity, use device-motion updates and read [member CMDeviceMotion.user_acceleration] instead.
|
||||||
|
</member>
|
||||||
|
<member name="timestamp" type="float" setter="set_timestamp" getter="get_timestamp">
|
||||||
|
The time at which the sample was taken, in seconds since device boot.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,79 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="CMAltimeter" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Reports relative and (iOS 15+) absolute altitude from the device barometer.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
Wraps Apple's [code skip-lint]CMAltimeter[/code]. Use [method start_relative_altitude_updates] for change-from-start readings and [method start_absolute_altitude_updates] for sea-level-referenced readings (iOS 15+).
|
||||||
|
[b]Requires the [code]NSMotionUsageDescription[/code] Info.plist key.[/b]
|
||||||
|
[b]Platform availability:[/b] Real implementation on [b]iOS[/b]. On other platforms [code]is_*_available[/code] returns [code]false[/code] and calls to start updates emit [signal altimeter_failed].
|
||||||
|
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmaltimeter]CMAltimeter reference[/url].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
|
||||||
|
</tutorials>
|
||||||
|
<methods>
|
||||||
|
<method name="authorization_status" qualifiers="static">
|
||||||
|
<return type="int" />
|
||||||
|
<description>
|
||||||
|
Returns Apple's [code skip-lint]CMAuthorizationStatus[/code] integer for altimeter access (0 = notDetermined, 1 = restricted, 2 = denied, 3 = authorized).
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="is_absolute_altitude_available" qualifiers="static">
|
||||||
|
<return type="bool" />
|
||||||
|
<description>
|
||||||
|
Returns [code]true[/code] when the device can report absolute (sea-level) altitude. Requires iOS 15 or later.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="is_relative_altitude_available" qualifiers="static">
|
||||||
|
<return type="bool" />
|
||||||
|
<description>
|
||||||
|
Returns [code]true[/code] when the device has a barometer capable of reporting relative altitude.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="start_absolute_altitude_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Begins absolute altitude updates delivered via [signal absolute_altitude_updated]. iOS 15+; emits [signal altimeter_failed] on earlier iOS versions or other platforms.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="start_relative_altitude_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Begins relative altitude updates delivered via [signal relative_altitude_updated].
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="stop_absolute_altitude_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Stops absolute altitude updates.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="stop_relative_altitude_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Stops relative altitude updates.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
</methods>
|
||||||
|
<signals>
|
||||||
|
<signal name="absolute_altitude_updated">
|
||||||
|
<param index="0" name="altitude" type="CMAbsoluteAltitudeData" />
|
||||||
|
<description>
|
||||||
|
Emitted on the main thread when a new absolute altitude sample is available.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="altimeter_failed">
|
||||||
|
<param index="0" name="message" type="String" />
|
||||||
|
<description>
|
||||||
|
Emitted when CoreMotion reports an error or when the API is unavailable on the current platform.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="relative_altitude_updated">
|
||||||
|
<param index="0" name="altitude" type="CMAltitudeData" />
|
||||||
|
<description>
|
||||||
|
Emitted on the main thread when a new relative altitude sample is available.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
</signals>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="CMAltitudeData" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
A relative altitude / barometric pressure sample from [CMAltimeter].
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
Wraps Apple's [code skip-lint]CMAltitudeData[/code]. The altitude is reported relative to the point at which updates were started, not absolute sea level — for absolute readings, use [method CMAltimeter.start_absolute_altitude_updates] and [CMAbsoluteAltitudeData].
|
||||||
|
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmaltitudedata]CMAltitudeData reference[/url].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
|
||||||
|
</tutorials>
|
||||||
|
<members>
|
||||||
|
<member name="pressure" type="float" setter="set_pressure" getter="get_pressure">
|
||||||
|
Barometric pressure in kilopascals (kPa).
|
||||||
|
</member>
|
||||||
|
<member name="relative_altitude" type="float" setter="set_relative_altitude" getter="get_relative_altitude">
|
||||||
|
Change in altitude in meters, relative to the point at which updates were started.
|
||||||
|
</member>
|
||||||
|
<member name="timestamp" type="float" setter="set_timestamp" getter="get_timestamp">
|
||||||
|
The time at which the sample was taken, in seconds since device boot.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,56 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="CMDeviceMotion" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Fused sensor data combining accelerometer, gyroscope and magnetometer into attitude, gravity, user acceleration and bias-corrected rotation rate.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
Wraps Apple's [code skip-lint]CMDeviceMotion[/code]. Use this instead of raw accelerometer/gyro data when you need device attitude, gravity-separated user acceleration, or bias-corrected rotation. Emitted by both [CMMotionManager] (handheld device) and [CMHeadphoneMotionManager] (AirPods).
|
||||||
|
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmdevicemotion]CMDeviceMotion reference[/url].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
|
||||||
|
</tutorials>
|
||||||
|
<members>
|
||||||
|
<member name="attitude_quaternion" type="Quaternion" setter="set_attitude_quaternion" getter="get_attitude_quaternion">
|
||||||
|
Device attitude as a quaternion, relative to the reference frame chosen when starting updates.
|
||||||
|
</member>
|
||||||
|
<member name="attitude_roll_pitch_yaw" type="Vector3" setter="set_attitude_roll_pitch_yaw" getter="get_attitude_roll_pitch_yaw">
|
||||||
|
Device attitude as Euler angles in radians: [code]x[/code] is roll, [code]y[/code] is pitch, [code]z[/code] is yaw.
|
||||||
|
</member>
|
||||||
|
<member name="gravity" type="Vector3" setter="set_gravity" getter="get_gravity">
|
||||||
|
The gravity component of the acceleration, in G-forces, in device coordinates.
|
||||||
|
</member>
|
||||||
|
<member name="heading" type="float" setter="set_heading" getter="get_heading">
|
||||||
|
Heading in degrees, where 0° is the reference attitude. Returns [code]-1[/code] on platforms where heading is not available (e.g. macOS headphone motion, iOS < 11).
|
||||||
|
</member>
|
||||||
|
<member name="magnetic_field" type="Vector3" setter="set_magnetic_field" getter="get_magnetic_field">
|
||||||
|
Bias-corrected magnetic field in microteslas. Check [member magnetic_field_accuracy] to interpret reliability.
|
||||||
|
</member>
|
||||||
|
<member name="magnetic_field_accuracy" type="int" setter="set_magnetic_field_accuracy" getter="get_magnetic_field_accuracy" enum="MagneticFieldCalibrationAccuracy">
|
||||||
|
Calibration accuracy of [member magnetic_field].
|
||||||
|
</member>
|
||||||
|
<member name="rotation_rate" type="Vector3" setter="set_rotation_rate" getter="get_rotation_rate">
|
||||||
|
Bias-corrected rotation rate around each axis in radians per second.
|
||||||
|
</member>
|
||||||
|
<member name="timestamp" type="float" setter="set_timestamp" getter="get_timestamp">
|
||||||
|
The time at which the sample was taken, in seconds since device boot.
|
||||||
|
</member>
|
||||||
|
<member name="user_acceleration" type="Vector3" setter="set_user_acceleration" getter="get_user_acceleration">
|
||||||
|
Acceleration imparted by the user, in G-forces, with gravity removed.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
<constants>
|
||||||
|
<constant name="UNCALIBRATED" value="-1" enum="MagneticFieldCalibrationAccuracy">
|
||||||
|
The magnetometer has not been calibrated; [member magnetic_field] is not reliable.
|
||||||
|
</constant>
|
||||||
|
<constant name="LOW" value="0" enum="MagneticFieldCalibrationAccuracy">
|
||||||
|
Low calibration accuracy.
|
||||||
|
</constant>
|
||||||
|
<constant name="MEDIUM" value="1" enum="MagneticFieldCalibrationAccuracy">
|
||||||
|
Medium calibration accuracy.
|
||||||
|
</constant>
|
||||||
|
<constant name="HIGH" value="2" enum="MagneticFieldCalibrationAccuracy">
|
||||||
|
High calibration accuracy.
|
||||||
|
</constant>
|
||||||
|
</constants>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="CMGyroData" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
A single gyroscope sample produced by [CMMotionManager].
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
Wraps Apple's [code skip-lint]CMGyroData[/code]. Provides the raw rotation rate around each device axis. See Apple's [url=https://developer.apple.com/documentation/coremotion/cmgyrodata]CMGyroData reference[/url].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
|
||||||
|
</tutorials>
|
||||||
|
<members>
|
||||||
|
<member name="rotation_rate" type="Vector3" setter="set_rotation_rate" getter="get_rotation_rate">
|
||||||
|
Rotation rate around each axis in radians per second. Includes bias from gyroscope drift. For a bias-corrected value, use device-motion updates and read [member CMDeviceMotion.rotation_rate] instead.
|
||||||
|
</member>
|
||||||
|
<member name="timestamp" type="float" setter="set_timestamp" getter="get_timestamp">
|
||||||
|
The time at which the sample was taken, in seconds since device boot.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,70 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="CMHeadphoneMotionManager" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Streams fused head motion data from AirPods Pro / AirPods Max / AirPods 3rd gen and later.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
Wraps Apple's [code skip-lint]CMHeadphoneMotionManager[/code]. Provides [CMDeviceMotion] samples representing head pose when compatible headphones are connected. Useful for head-tracked audio, spatial UI, or letting the user look around with their head while their hands are free.
|
||||||
|
[b]Requires the [code]NSMotionUsageDescription[/code] Info.plist key (and on macOS, the matching entitlement).[/b]
|
||||||
|
[b]Platform availability:[/b] Real implementation on [b]iOS 14+[/b] and [b]macOS 14+[/b]. On other platforms [member is_device_motion_available] is [code]false[/code] and [method start_device_motion_updates] emits [signal update_failed].
|
||||||
|
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmheadphonemotionmanager]CMHeadphoneMotionManager reference[/url].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
|
||||||
|
</tutorials>
|
||||||
|
<methods>
|
||||||
|
<method name="authorization_status" qualifiers="static">
|
||||||
|
<return type="int" />
|
||||||
|
<description>
|
||||||
|
Returns Apple's [code skip-lint]CMAuthorizationStatus[/code] integer (0 = notDetermined, 1 = restricted, 2 = denied, 3 = authorized). Available on iOS 17.4 / macOS 14.4 and later; returns 0 on earlier versions.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="start_device_motion_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Begins delivering [CMDeviceMotion] samples for the connected headphones via [signal device_motion_updated]. If no compatible headphones are connected, samples will begin to arrive once a pair connects.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="stop_device_motion_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Stops headphone motion updates.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
</methods>
|
||||||
|
<members>
|
||||||
|
<member name="device_motion" type="CMDeviceMotion" setter="" getter="get_device_motion">
|
||||||
|
The most recent headphone motion sample, or [code]null[/code] if none is available.
|
||||||
|
</member>
|
||||||
|
<member name="is_device_motion_active" type="bool" setter="" getter="get_is_device_motion_active">
|
||||||
|
[code]true[/code] when updates are currently being delivered.
|
||||||
|
</member>
|
||||||
|
<member name="is_device_motion_available" type="bool" setter="" getter="get_is_device_motion_available">
|
||||||
|
[code]true[/code] when compatible headphones are currently connected and providing motion data.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
<signals>
|
||||||
|
<signal name="connected">
|
||||||
|
<description>
|
||||||
|
Emitted when compatible headphones connect and begin providing motion data.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="device_motion_updated">
|
||||||
|
<param index="0" name="deviceMotion" type="CMDeviceMotion" />
|
||||||
|
<description>
|
||||||
|
Emitted on the main thread when a new headphone motion sample is available.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="disconnected">
|
||||||
|
<description>
|
||||||
|
Emitted when the previously connected headphones disconnect.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="update_failed">
|
||||||
|
<param index="0" name="message" type="String" />
|
||||||
|
<description>
|
||||||
|
Emitted when CoreMotion reports an error or when the API is unavailable on the current platform.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
</signals>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="CMMagnetometerData" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
A single magnetometer sample produced by [CMMotionManager].
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
Wraps Apple's [code skip-lint]CMMagnetometerData[/code]. Provides the raw magnetic field reading in microteslas along each device axis. Includes bias from device magnetic interference. For a bias-corrected value, use device-motion updates and read [member CMDeviceMotion.magnetic_field] instead. See Apple's [url=https://developer.apple.com/documentation/coremotion/cmmagnetometerdata]CMMagnetometerData reference[/url].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
|
||||||
|
</tutorials>
|
||||||
|
<members>
|
||||||
|
<member name="magnetic_field" type="Vector3" setter="set_magnetic_field" getter="get_magnetic_field">
|
||||||
|
Magnetic field strength along each axis in microteslas (µT).
|
||||||
|
</member>
|
||||||
|
<member name="timestamp" type="float" setter="set_timestamp" getter="get_timestamp">
|
||||||
|
The time at which the sample was taken, in seconds since device boot.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="CMMotionActivity" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
A user-activity classification (walking, running, automotive, etc.) from the system motion coprocessor.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
Wraps Apple's [code skip-lint]CMMotionActivity[/code]. More than one activity flag may be set simultaneously (e.g. [member walking] and [member automotive] when the user is moving inside a vehicle). The system uses [member confidence] to indicate how certain the classification is.
|
||||||
|
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmmotionactivity]CMMotionActivity reference[/url].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
|
||||||
|
</tutorials>
|
||||||
|
<members>
|
||||||
|
<member name="automotive" type="bool" setter="set_automotive" getter="get_automotive">
|
||||||
|
[code]true[/code] when the user appears to be in a vehicle.
|
||||||
|
</member>
|
||||||
|
<member name="confidence" type="int" setter="set_confidence" getter="get_confidence" enum="Confidence">
|
||||||
|
How confident the system is in this classification.
|
||||||
|
</member>
|
||||||
|
<member name="cycling" type="bool" setter="set_cycling" getter="get_cycling">
|
||||||
|
[code]true[/code] when the user appears to be cycling.
|
||||||
|
</member>
|
||||||
|
<member name="running" type="bool" setter="set_running" getter="get_running">
|
||||||
|
[code]true[/code] when the user appears to be running.
|
||||||
|
</member>
|
||||||
|
<member name="start_date" type="float" setter="set_start_date" getter="get_start_date">
|
||||||
|
Unix-time start of the period for which this activity applies, in seconds.
|
||||||
|
</member>
|
||||||
|
<member name="stationary" type="bool" setter="set_stationary" getter="get_stationary">
|
||||||
|
[code]true[/code] when the user appears to be stationary.
|
||||||
|
</member>
|
||||||
|
<member name="unknown" type="bool" setter="set_unknown" getter="get_unknown">
|
||||||
|
[code]true[/code] when the system cannot classify the user's activity.
|
||||||
|
</member>
|
||||||
|
<member name="walking" type="bool" setter="set_walking" getter="get_walking">
|
||||||
|
[code]true[/code] when the user appears to be walking.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
<constants>
|
||||||
|
<constant name="LOW" value="0" enum="Confidence">
|
||||||
|
Low confidence in the classification.
|
||||||
|
</constant>
|
||||||
|
<constant name="MEDIUM" value="1" enum="Confidence">
|
||||||
|
Medium confidence in the classification.
|
||||||
|
</constant>
|
||||||
|
<constant name="HIGH" value="2" enum="Confidence">
|
||||||
|
High confidence in the classification.
|
||||||
|
</constant>
|
||||||
|
</constants>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,64 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="CMMotionActivityManager" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Classifies the user's current activity (walking, running, automotive, cycling, stationary).
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
Wraps Apple's [code skip-lint]CMMotionActivityManager[/code]. The system continuously classifies user activity in the background while motion permission is granted, so [method query_activity] can return historical data even from before your app launched.
|
||||||
|
[b]Requires the [code]NSMotionUsageDescription[/code] Info.plist key.[/b]
|
||||||
|
[b]Platform availability:[/b] Real implementation on [b]iOS[/b]. On other platforms [method is_activity_available] returns [code]false[/code] and calls report unavailability via the callback or [signal activity_failed].
|
||||||
|
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmmotionactivitymanager]CMMotionActivityManager reference[/url].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
|
||||||
|
</tutorials>
|
||||||
|
<methods>
|
||||||
|
<method name="authorization_status" qualifiers="static">
|
||||||
|
<return type="int" />
|
||||||
|
<description>
|
||||||
|
Returns Apple's [code skip-lint]CMAuthorizationStatus[/code] integer (0 = notDetermined, 1 = restricted, 2 = denied, 3 = authorized).
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="is_activity_available" qualifiers="static">
|
||||||
|
<return type="bool" />
|
||||||
|
<description>
|
||||||
|
Returns [code]true[/code] when the device has a motion coprocessor capable of activity classification.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="query_activity">
|
||||||
|
<return type="void" />
|
||||||
|
<param index="0" name="fromUnixTime" type="float" />
|
||||||
|
<param index="1" name="toUnixTime" type="float" />
|
||||||
|
<param index="2" name="callback" type="Callable" />
|
||||||
|
<description>
|
||||||
|
Returns historical activities recorded between two Unix-time stamps. [param callback] is invoked on the main thread with [code]callback(activities: Array, error: String)[/code]; [param activities] is an array of [CMMotionActivity].
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="start_activity_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Begins live activity updates delivered via [signal activity_updated]. The signal fires whenever the classified activity changes.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="stop_activity_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Stops live activity updates.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
</methods>
|
||||||
|
<signals>
|
||||||
|
<signal name="activity_failed">
|
||||||
|
<param index="0" name="message" type="String" />
|
||||||
|
<description>
|
||||||
|
Emitted when the API is unavailable on the current platform.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="activity_updated">
|
||||||
|
<param index="0" name="activity" type="CMMotionActivity" />
|
||||||
|
<description>
|
||||||
|
Emitted on the main thread when the user's classified activity changes.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
</signals>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,162 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="CMMotionManager" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Streams accelerometer, gyroscope, magnetometer, and fused device-motion data from the device.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
Wraps Apple's [code skip-lint]CMMotionManager[/code]. Configure an update interval, call one of the [code]start_*_updates[/code] methods, and connect to the matching signal to receive samples.
|
||||||
|
Prefer [signal device_motion_updated] over raw [signal accelerometer_updated] / [signal gyro_updated] / [signal magnetometer_updated] when you need gravity-separated user acceleration, bias-corrected rotation, or device attitude.
|
||||||
|
[b]Platform availability:[/b] Real implementation on [b]iOS[/b]. On other platforms the manager exists but [code]is_*_available[/code] returns [code]false[/code] and calling [code]start_*_updates[/code] emits [signal update_failed].
|
||||||
|
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmmotionmanager]CMMotionManager reference[/url].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
|
||||||
|
</tutorials>
|
||||||
|
<methods>
|
||||||
|
<method name="start_accelerometer_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Begins delivering accelerometer samples via [signal accelerometer_updated]. Sampling cadence is controlled by [member accelerometer_update_interval].
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="start_device_motion_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<param index="0" name="referenceFrame" type="int" enum="AttitudeReferenceFrame" />
|
||||||
|
<description>
|
||||||
|
Begins delivering fused [CMDeviceMotion] samples via [signal device_motion_updated]. [param referenceFrame] selects how attitude is referenced. Pass [constant XMAGNETIC_NORTH_Z_VERTICAL] or [constant XTRUE_NORTH_Z_VERTICAL] to align yaw with magnetic or true north (requires the magnetometer).
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="start_gyro_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Begins delivering gyroscope samples via [signal gyro_updated]. Sampling cadence is controlled by [member gyro_update_interval].
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="start_magnetometer_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Begins delivering magnetometer samples via [signal magnetometer_updated]. Sampling cadence is controlled by [member magnetometer_update_interval].
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="stop_accelerometer_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Stops accelerometer updates.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="stop_device_motion_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Stops device-motion updates.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="stop_gyro_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Stops gyroscope updates.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="stop_magnetometer_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Stops magnetometer updates.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
</methods>
|
||||||
|
<members>
|
||||||
|
<member name="accelerometer_data" type="CMAccelerometerData" setter="" getter="get_accelerometer_data">
|
||||||
|
The most recent accelerometer sample, or [code]null[/code] if none is available.
|
||||||
|
</member>
|
||||||
|
<member name="accelerometer_update_interval" type="float" setter="set_accelerometer_update_interval" getter="get_accelerometer_update_interval">
|
||||||
|
Desired interval between accelerometer samples in seconds.
|
||||||
|
</member>
|
||||||
|
<member name="device_motion" type="CMDeviceMotion" setter="" getter="get_device_motion">
|
||||||
|
The most recent device-motion sample, or [code]null[/code] if none is available.
|
||||||
|
</member>
|
||||||
|
<member name="device_motion_update_interval" type="float" setter="set_device_motion_update_interval" getter="get_device_motion_update_interval">
|
||||||
|
Desired interval between device-motion samples in seconds.
|
||||||
|
</member>
|
||||||
|
<member name="gyro_data" type="CMGyroData" setter="" getter="get_gyro_data">
|
||||||
|
The most recent gyroscope sample, or [code]null[/code] if none is available.
|
||||||
|
</member>
|
||||||
|
<member name="gyro_update_interval" type="float" setter="set_gyro_update_interval" getter="get_gyro_update_interval">
|
||||||
|
Desired interval between gyroscope samples in seconds.
|
||||||
|
</member>
|
||||||
|
<member name="is_accelerometer_active" type="bool" setter="" getter="get_is_accelerometer_active">
|
||||||
|
[code]true[/code] when accelerometer updates are currently being delivered.
|
||||||
|
</member>
|
||||||
|
<member name="is_accelerometer_available" type="bool" setter="" getter="get_is_accelerometer_available">
|
||||||
|
[code]true[/code] when the device has an accelerometer available to this binding.
|
||||||
|
</member>
|
||||||
|
<member name="is_device_motion_active" type="bool" setter="" getter="get_is_device_motion_active">
|
||||||
|
[code]true[/code] when device-motion updates are currently being delivered.
|
||||||
|
</member>
|
||||||
|
<member name="is_device_motion_available" type="bool" setter="" getter="get_is_device_motion_available">
|
||||||
|
[code]true[/code] when fused device-motion is available on this device.
|
||||||
|
</member>
|
||||||
|
<member name="is_gyro_active" type="bool" setter="" getter="get_is_gyro_active">
|
||||||
|
[code]true[/code] when gyroscope updates are currently being delivered.
|
||||||
|
</member>
|
||||||
|
<member name="is_gyro_available" type="bool" setter="" getter="get_is_gyro_available">
|
||||||
|
[code]true[/code] when the device has a gyroscope available to this binding.
|
||||||
|
</member>
|
||||||
|
<member name="is_magnetometer_active" type="bool" setter="" getter="get_is_magnetometer_active">
|
||||||
|
[code]true[/code] when magnetometer updates are currently being delivered.
|
||||||
|
</member>
|
||||||
|
<member name="is_magnetometer_available" type="bool" setter="" getter="get_is_magnetometer_available">
|
||||||
|
[code]true[/code] when the device has a magnetometer available to this binding.
|
||||||
|
</member>
|
||||||
|
<member name="magnetometer_data" type="CMMagnetometerData" setter="" getter="get_magnetometer_data">
|
||||||
|
The most recent magnetometer sample, or [code]null[/code] if none is available.
|
||||||
|
</member>
|
||||||
|
<member name="magnetometer_update_interval" type="float" setter="set_magnetometer_update_interval" getter="get_magnetometer_update_interval">
|
||||||
|
Desired interval between magnetometer samples in seconds.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
<signals>
|
||||||
|
<signal name="accelerometer_updated">
|
||||||
|
<param index="0" name="accelerometer" type="CMAccelerometerData" />
|
||||||
|
<description>
|
||||||
|
Emitted on the main thread when a new accelerometer sample is available.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="device_motion_updated">
|
||||||
|
<param index="0" name="deviceMotion" type="CMDeviceMotion" />
|
||||||
|
<description>
|
||||||
|
Emitted on the main thread when a new fused device-motion sample is available.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="gyro_updated">
|
||||||
|
<param index="0" name="gyro" type="CMGyroData" />
|
||||||
|
<description>
|
||||||
|
Emitted on the main thread when a new gyroscope sample is available.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="magnetometer_updated">
|
||||||
|
<param index="0" name="magnetometer" type="CMMagnetometerData" />
|
||||||
|
<description>
|
||||||
|
Emitted on the main thread when a new magnetometer sample is available.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="update_failed">
|
||||||
|
<param index="0" name="message" type="String" />
|
||||||
|
<description>
|
||||||
|
Emitted when CoreMotion reports an error or when the API is unavailable on the current platform.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
</signals>
|
||||||
|
<constants>
|
||||||
|
<constant name="XARBITRARY_Z_VERTICAL" value="1" enum="AttitudeReferenceFrame">
|
||||||
|
Z axis vertical, X axis aligned with an arbitrary direction in the horizontal plane.
|
||||||
|
</constant>
|
||||||
|
<constant name="XARBITRARY_CORRECTED_Z_VERTICAL" value="2" enum="AttitudeReferenceFrame">
|
||||||
|
Same as [constant XARBITRARY_Z_VERTICAL] but corrected for magnetometer drift.
|
||||||
|
</constant>
|
||||||
|
<constant name="XMAGNETIC_NORTH_Z_VERTICAL" value="4" enum="AttitudeReferenceFrame">
|
||||||
|
Z axis vertical, X axis pointing toward magnetic north. Requires the magnetometer.
|
||||||
|
</constant>
|
||||||
|
<constant name="XTRUE_NORTH_Z_VERTICAL" value="8" enum="AttitudeReferenceFrame">
|
||||||
|
Z axis vertical, X axis pointing toward true north. Requires the magnetometer and Location Services.
|
||||||
|
</constant>
|
||||||
|
</constants>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,89 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="CMPedometer" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Step, distance, and floor counts from the system pedometer.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
Wraps Apple's [code skip-lint]CMPedometer[/code]. Supports both historical queries (already-recorded data from the system) and live updates.
|
||||||
|
[b]Requires the [code]NSMotionUsageDescription[/code] Info.plist key.[/b] On iOS the system records pedometer data continuously while motion permission is granted, so [method query_pedometer_data] can return data even from before your app launched.
|
||||||
|
[b]Platform availability:[/b] Real implementation on [b]iOS[/b]. On other platforms the [code]is_*_available[/code] static methods return [code]false[/code] and calls report unavailability through their callback or [signal pedometer_failed].
|
||||||
|
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmpedometer]CMPedometer reference[/url].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
|
||||||
|
</tutorials>
|
||||||
|
<methods>
|
||||||
|
<method name="authorization_status" qualifiers="static">
|
||||||
|
<return type="int" />
|
||||||
|
<description>
|
||||||
|
Returns the current authorization status using Apple's [code skip-lint]CMAuthorizationStatus[/code] integer (0 = notDetermined, 1 = restricted, 2 = denied, 3 = authorized).
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="is_cadence_available" qualifiers="static">
|
||||||
|
<return type="bool" />
|
||||||
|
<description>
|
||||||
|
Returns [code]true[/code] when the device can report cadence.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="is_distance_available" qualifiers="static">
|
||||||
|
<return type="bool" />
|
||||||
|
<description>
|
||||||
|
Returns [code]true[/code] when the device can estimate walked/run distance.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="is_floor_counting_available" qualifiers="static">
|
||||||
|
<return type="bool" />
|
||||||
|
<description>
|
||||||
|
Returns [code]true[/code] when the device can count floors ascended/descended.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="is_pace_available" qualifiers="static">
|
||||||
|
<return type="bool" />
|
||||||
|
<description>
|
||||||
|
Returns [code]true[/code] when the device can report pace.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="is_step_counting_available" qualifiers="static">
|
||||||
|
<return type="bool" />
|
||||||
|
<description>
|
||||||
|
Returns [code]true[/code] when the device can count steps. Step counting is the minimum requirement for any pedometer functionality.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="query_pedometer_data">
|
||||||
|
<return type="void" />
|
||||||
|
<param index="0" name="fromUnixTime" type="float" />
|
||||||
|
<param index="1" name="toUnixTime" type="float" />
|
||||||
|
<param index="2" name="callback" type="Callable" />
|
||||||
|
<description>
|
||||||
|
Queries pedometer data recorded between two Unix-time stamps. [param callback] is invoked on the main thread with [code]callback(data: CMPedometerData, error: String)[/code]; [param data] is [code]null[/code] when [param error] is set.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="start_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<param index="0" name="fromUnixTime" type="float" />
|
||||||
|
<description>
|
||||||
|
Begins live pedometer updates accumulating from [param fromUnixTime] (Unix seconds). Subsequent samples arrive via [signal pedometer_updated]. Use [code]Time.get_unix_time_from_system()[/code] for "now".
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="stop_updates">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Stops live pedometer updates.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
</methods>
|
||||||
|
<signals>
|
||||||
|
<signal name="pedometer_failed">
|
||||||
|
<param index="0" name="message" type="String" />
|
||||||
|
<description>
|
||||||
|
Emitted when CoreMotion reports an error on a live updates stream, or when the API is unavailable on the current platform.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="pedometer_updated">
|
||||||
|
<param index="0" name="data" type="CMPedometerData" />
|
||||||
|
<description>
|
||||||
|
Emitted on the main thread with the latest cumulative pedometer reading since [method start_updates] was called.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
</signals>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="CMPedometerData" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Aggregated pedometer data covering a time window.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
Wraps Apple's [code skip-lint]CMPedometerData[/code]. Optional Apple values (distance, floor counts, pace, cadence) report [code]-1[/code] when the underlying capability is unavailable on the device. See Apple's [url=https://developer.apple.com/documentation/coremotion/cmpedometerdata]CMPedometerData reference[/url].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
|
||||||
|
</tutorials>
|
||||||
|
<members>
|
||||||
|
<member name="average_active_pace" type="float" setter="set_average_active_pace" getter="get_average_active_pace">
|
||||||
|
Average pace across the window in seconds per meter, or [code]-1[/code] when unavailable.
|
||||||
|
</member>
|
||||||
|
<member name="current_cadence" type="float" setter="set_current_cadence" getter="get_current_cadence">
|
||||||
|
Instantaneous cadence in steps per second, or [code]-1[/code] when unavailable.
|
||||||
|
</member>
|
||||||
|
<member name="current_pace" type="float" setter="set_current_pace" getter="get_current_pace">
|
||||||
|
Instantaneous pace in seconds per meter, or [code]-1[/code] when unavailable.
|
||||||
|
</member>
|
||||||
|
<member name="distance" type="float" setter="set_distance" getter="get_distance">
|
||||||
|
Distance walked or run in meters, or [code]-1[/code] when distance estimation is unavailable.
|
||||||
|
</member>
|
||||||
|
<member name="end_date" type="float" setter="set_end_date" getter="get_end_date">
|
||||||
|
Unix-time end of the reporting window in seconds.
|
||||||
|
</member>
|
||||||
|
<member name="floors_ascended" type="int" setter="set_floors_ascended" getter="get_floors_ascended">
|
||||||
|
Approximate number of floors ascended, or [code]-1[/code] when floor counting is unavailable.
|
||||||
|
</member>
|
||||||
|
<member name="floors_descended" type="int" setter="set_floors_descended" getter="get_floors_descended">
|
||||||
|
Approximate number of floors descended, or [code]-1[/code] when floor counting is unavailable.
|
||||||
|
</member>
|
||||||
|
<member name="number_of_steps" type="int" setter="set_number_of_steps" getter="get_number_of_steps">
|
||||||
|
Step count across the reporting window.
|
||||||
|
</member>
|
||||||
|
<member name="start_date" type="float" setter="set_start_date" getter="get_start_date">
|
||||||
|
Unix-time start of the reporting window in seconds.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,271 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>files</key>
|
||||||
|
<dict>
|
||||||
|
<key>Resources/Info.plist</key>
|
||||||
|
<data>
|
||||||
|
V2gXiXYEKthoF+/jfExDDWF93LQ=
|
||||||
|
</data>
|
||||||
|
<key>Resources/doc_classes/CMAbsoluteAltitudeData.xml</key>
|
||||||
|
<data>
|
||||||
|
ruTKO3c2PbLquPxEPjNbxh5Lr0g=
|
||||||
|
</data>
|
||||||
|
<key>Resources/doc_classes/CMAccelerometerData.xml</key>
|
||||||
|
<data>
|
||||||
|
MGhilTq5A7cDDIGlgTeepQ5YnEU=
|
||||||
|
</data>
|
||||||
|
<key>Resources/doc_classes/CMAltimeter.xml</key>
|
||||||
|
<data>
|
||||||
|
Bh8pRJUZzdX38IUZXYxk5xLAOcY=
|
||||||
|
</data>
|
||||||
|
<key>Resources/doc_classes/CMAltitudeData.xml</key>
|
||||||
|
<data>
|
||||||
|
XncwCLUZGKxizsT4d36ImyTAfhc=
|
||||||
|
</data>
|
||||||
|
<key>Resources/doc_classes/CMDeviceMotion.xml</key>
|
||||||
|
<data>
|
||||||
|
7cMBuEKO+J33emlQzGAmUVY+37Y=
|
||||||
|
</data>
|
||||||
|
<key>Resources/doc_classes/CMGyroData.xml</key>
|
||||||
|
<data>
|
||||||
|
BUfMW1Q1pI+HZDTgn7S/kC4RZVY=
|
||||||
|
</data>
|
||||||
|
<key>Resources/doc_classes/CMHeadphoneMotionManager.xml</key>
|
||||||
|
<data>
|
||||||
|
FnOPBnmglv3tUY2/KINv4MwAnUk=
|
||||||
|
</data>
|
||||||
|
<key>Resources/doc_classes/CMMagnetometerData.xml</key>
|
||||||
|
<data>
|
||||||
|
yhze/CizXvHiuOZrD0iiFhB4mTU=
|
||||||
|
</data>
|
||||||
|
<key>Resources/doc_classes/CMMotionActivity.xml</key>
|
||||||
|
<data>
|
||||||
|
2BYkcgbtrEhnKtg4wo2BMIH3pxA=
|
||||||
|
</data>
|
||||||
|
<key>Resources/doc_classes/CMMotionActivityManager.xml</key>
|
||||||
|
<data>
|
||||||
|
i12o0lpE95M+o3cs+BhlMG6+PWA=
|
||||||
|
</data>
|
||||||
|
<key>Resources/doc_classes/CMMotionManager.xml</key>
|
||||||
|
<data>
|
||||||
|
y/QuZavNCtAQp/aFqQpPBsLrwpI=
|
||||||
|
</data>
|
||||||
|
<key>Resources/doc_classes/CMPedometer.xml</key>
|
||||||
|
<data>
|
||||||
|
jXC71Xh81YCrJcTyIk1ZfQ0zrzg=
|
||||||
|
</data>
|
||||||
|
<key>Resources/doc_classes/CMPedometerData.xml</key>
|
||||||
|
<data>
|
||||||
|
ragAg6xgX258zW943jka4RCMk7A=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>files2</key>
|
||||||
|
<dict>
|
||||||
|
<key>Resources/Info.plist</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
RA4KNEUT3BeYQxqO+ChSDfr68XFnxKBqktMIMvNJOKg=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Resources/doc_classes/CMAbsoluteAltitudeData.xml</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
RJbSliCU4rrzZ+Ds73KNMiV2V2hC3kF1vml1r3gVNrg=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Resources/doc_classes/CMAccelerometerData.xml</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
0ZTg5tlk5CebGDj0zvJBOHrNq7MFG5YM+TXXkMpOvXg=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Resources/doc_classes/CMAltimeter.xml</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
wjkXKlnfQlR3FpN4zMszvfAKegJddYZaXaJPcf+5jKo=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Resources/doc_classes/CMAltitudeData.xml</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
MrQBfd0SlC/fnCNRxWozDU2l1kuh6u4krHpUeyNpEDw=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Resources/doc_classes/CMDeviceMotion.xml</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
OGWPjyAOnFUgAUTrNZYuvDDj/QyxAzjJxvzzc9w72GI=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Resources/doc_classes/CMGyroData.xml</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
CauWse7MqNhA3wY+9eK7esh6Hj6s43RlEK4zO46KNkk=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Resources/doc_classes/CMHeadphoneMotionManager.xml</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
8255jnS84Sld2w3fVL5fTl4EOn4zIbMfQE5ArxPScpA=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Resources/doc_classes/CMMagnetometerData.xml</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
f1C6fe6RKz0BiJEeVQ6WQmwuLXyOpQple5yzW1VF59U=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Resources/doc_classes/CMMotionActivity.xml</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
mJtQxqJ5A/FzMfPR6briuOcUhX+TYmQt1tOdzncVFKM=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Resources/doc_classes/CMMotionActivityManager.xml</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
ptSLkSJQIHBOZfAzvavj63f4//29X9S9wqISFndxkcA=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Resources/doc_classes/CMMotionManager.xml</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
k3zhKAXBA0YNQnBIZnf6I1/ZKQWkCSqCan+n4wHqvgI=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Resources/doc_classes/CMPedometer.xml</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
wQfIsk9BMd0ZPyaPfjD2gKMPERVqxuZWa1jjKbCsqJA=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>Resources/doc_classes/CMPedometerData.xml</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
pGA4w+NWkL1kO3DCw31Q8wFg+x5b2yL9hgKAWPOfEN8=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>rules</key>
|
||||||
|
<dict>
|
||||||
|
<key>^Resources/</key>
|
||||||
|
<true/>
|
||||||
|
<key>^Resources/.*\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>optional</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1100</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Resources/Base\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1010</real>
|
||||||
|
</dict>
|
||||||
|
<key>^version.plist$</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>rules2</key>
|
||||||
|
<dict>
|
||||||
|
<key>.*\.dSYM($|/)</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>11</real>
|
||||||
|
</dict>
|
||||||
|
<key>^(.*/)?\.DS_Store$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>2000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
|
||||||
|
<dict>
|
||||||
|
<key>nested</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>10</real>
|
||||||
|
</dict>
|
||||||
|
<key>^.*</key>
|
||||||
|
<true/>
|
||||||
|
<key>^Info\.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^PkgInfo$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Resources/</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Resources/.*\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>optional</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1100</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Resources/Base\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1010</real>
|
||||||
|
</dict>
|
||||||
|
<key>^[^/]+$</key>
|
||||||
|
<dict>
|
||||||
|
<key>nested</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>10</real>
|
||||||
|
</dict>
|
||||||
|
<key>^embedded\.provisionprofile$</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^version\.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
XSym
|
||||||
|
0001
|
||||||
|
7fc56270e7a70fa81a5935b72eacbe29
|
||||||
|
A
|
||||||
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1,18 @@
|
||||||
|
[configuration]
|
||||||
|
|
||||||
|
entry_symbol = "godot_apple_plugins_core_motion_start"
|
||||||
|
compatibility_minimum = 4.2
|
||||||
|
|
||||||
|
[libraries]
|
||||||
|
ios = "res://addons/GodotApplePluginsCoreMotion/bin/GodotApplePluginsCoreMotion.xcframework"
|
||||||
|
linux.arm64 = "res://addons/GodotApplePluginsCoreMotion/bin/godot_apple_plugins_core_motion_stub.linux.arm64.so"
|
||||||
|
linux.x86_64 = "res://addons/GodotApplePluginsCoreMotion/bin/godot_apple_plugins_core_motion_stub.linux.x86_64.so"
|
||||||
|
macos.arm64 = "res://addons/GodotApplePluginsCoreMotion/bin/GodotApplePluginsCoreMotion.framework"
|
||||||
|
macos.x86_64 = "res://addons/GodotApplePluginsCoreMotion/bin/GodotApplePluginsCoreMotion_x64.framework"
|
||||||
|
windows.arm64 = "res://addons/GodotApplePluginsCoreMotion/bin/godot_apple_plugins_core_motion_stub.windows.arm64.dll"
|
||||||
|
windows.x86_64 = "res://addons/GodotApplePluginsCoreMotion/bin/godot_apple_plugins_core_motion_stub.windows.x86_64.dll"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
ios = { "res://addons/GodotApplePluginsRuntime/bin/SwiftGodotRuntime.xcframework": "" }
|
||||||
|
macos.arm64 = { "res://addons/GodotApplePluginsRuntime/bin/SwiftGodotRuntime.framework": "" }
|
||||||
|
macos.x86_64 = { "res://addons/GodotApplePluginsRuntime/bin/SwiftGodotRuntime_x64.framework": "" }
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
uid://dhf6qp0offg0b
|
||||||
8
addons/GodotApplePluginsRuntime/README.md
Normal file
8
addons/GodotApplePluginsRuntime/README.md
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
`SwiftGodotRuntime` payload for the split `GodotApplePlugins*` addons.
|
||||||
|
|
||||||
|
The split addon frameworks share the runtime from
|
||||||
|
`res://addons/GodotApplePluginsRuntime/bin`.
|
||||||
|
|
||||||
|
Keep this addon installed when using any split `GodotApplePlugins*` addon. The
|
||||||
|
`.gdextension` manifests declare it as a native dependency so Godot embeds it in
|
||||||
|
iOS exports and preloads it on macOS.
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
XSym
|
||||||
|
0026
|
||||||
|
e58c4cf10cc7c8ef7d7167ccb641aeb4
|
||||||
|
Versions/Current/Resources
|
||||||
|
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
XSym
|
||||||
|
0034
|
||||||
|
d9f38aed87acda872f71f5c9a9f1a0cf
|
||||||
|
Versions/Current/SwiftGodotRuntime
|
||||||
|
|
||||||
|
|
@ -0,0 +1,46 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>BuildMachineOSBuild</key>
|
||||||
|
<string>25F71</string>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>en</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>SwiftGodotRuntime</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>swiftgodot.SwiftGodotRuntime</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>SwiftGodotRuntime</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>FMWK</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>1.0</string>
|
||||||
|
<key>CFBundleSupportedPlatforms</key>
|
||||||
|
<array>
|
||||||
|
<string>MacOSX</string>
|
||||||
|
</array>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>1</string>
|
||||||
|
<key>DTCompiler</key>
|
||||||
|
<string>com.apple.compilers.llvm.clang.1_0</string>
|
||||||
|
<key>DTPlatformBuild</key>
|
||||||
|
<string>25E251</string>
|
||||||
|
<key>DTPlatformName</key>
|
||||||
|
<string>macosx</string>
|
||||||
|
<key>DTPlatformVersion</key>
|
||||||
|
<string>26.4</string>
|
||||||
|
<key>DTSDKBuild</key>
|
||||||
|
<string>25E251</string>
|
||||||
|
<key>DTSDKName</key>
|
||||||
|
<string>macosx26.4</string>
|
||||||
|
<key>DTXcode</key>
|
||||||
|
<string>2641</string>
|
||||||
|
<key>DTXcodeBuild</key>
|
||||||
|
<string>17E202</string>
|
||||||
|
<key>LSMinimumSystemVersion</key>
|
||||||
|
<string>14.0</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,128 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>files</key>
|
||||||
|
<dict>
|
||||||
|
<key>Resources/Info.plist</key>
|
||||||
|
<data>
|
||||||
|
rs4XjH4BXNQu+5tpbh9iAcLOIeo=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>files2</key>
|
||||||
|
<dict>
|
||||||
|
<key>Resources/Info.plist</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
cQ/r/W+7G+K1jNBmCgdhR5xs5WLS21Xc3R3oTeLoeMs=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>rules</key>
|
||||||
|
<dict>
|
||||||
|
<key>^Resources/</key>
|
||||||
|
<true/>
|
||||||
|
<key>^Resources/.*\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>optional</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1100</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Resources/Base\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1010</real>
|
||||||
|
</dict>
|
||||||
|
<key>^version.plist$</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>rules2</key>
|
||||||
|
<dict>
|
||||||
|
<key>.*\.dSYM($|/)</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>11</real>
|
||||||
|
</dict>
|
||||||
|
<key>^(.*/)?\.DS_Store$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>2000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
|
||||||
|
<dict>
|
||||||
|
<key>nested</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>10</real>
|
||||||
|
</dict>
|
||||||
|
<key>^.*</key>
|
||||||
|
<true/>
|
||||||
|
<key>^Info\.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^PkgInfo$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Resources/</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Resources/.*\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>optional</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1100</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Resources/Base\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1010</real>
|
||||||
|
</dict>
|
||||||
|
<key>^[^/]+$</key>
|
||||||
|
<dict>
|
||||||
|
<key>nested</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>10</real>
|
||||||
|
</dict>
|
||||||
|
<key>^embedded\.provisionprofile$</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^version\.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
XSym
|
||||||
|
0001
|
||||||
|
7fc56270e7a70fa81a5935b72eacbe29
|
||||||
|
A
|
||||||
|
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>AvailableLibraries</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>BinaryPath</key>
|
||||||
|
<string>SwiftGodotRuntime.framework/SwiftGodotRuntime</string>
|
||||||
|
<key>LibraryIdentifier</key>
|
||||||
|
<string>ios-arm64</string>
|
||||||
|
<key>LibraryPath</key>
|
||||||
|
<string>SwiftGodotRuntime.framework</string>
|
||||||
|
<key>SupportedArchitectures</key>
|
||||||
|
<array>
|
||||||
|
<string>arm64</string>
|
||||||
|
</array>
|
||||||
|
<key>SupportedPlatform</key>
|
||||||
|
<string>ios</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>BinaryPath</key>
|
||||||
|
<string>SwiftGodotRuntime.framework/SwiftGodotRuntime</string>
|
||||||
|
<key>LibraryIdentifier</key>
|
||||||
|
<string>ios-arm64_x86_64-simulator</string>
|
||||||
|
<key>LibraryPath</key>
|
||||||
|
<string>SwiftGodotRuntime.framework</string>
|
||||||
|
<key>SupportedArchitectures</key>
|
||||||
|
<array>
|
||||||
|
<string>arm64</string>
|
||||||
|
<string>x86_64</string>
|
||||||
|
</array>
|
||||||
|
<key>SupportedPlatform</key>
|
||||||
|
<string>ios</string>
|
||||||
|
<key>SupportedPlatformVariant</key>
|
||||||
|
<string>simulator</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>XFWK</string>
|
||||||
|
<key>XCFrameworkFormatVersion</key>
|
||||||
|
<string>1.0</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1,101 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>files</key>
|
||||||
|
<dict>
|
||||||
|
<key>Info.plist</key>
|
||||||
|
<data>
|
||||||
|
6WsXVY++re9rUkG4Ckg+FZPmp48=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>files2</key>
|
||||||
|
<dict/>
|
||||||
|
<key>rules</key>
|
||||||
|
<dict>
|
||||||
|
<key>^.*</key>
|
||||||
|
<true/>
|
||||||
|
<key>^.*\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>optional</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^.*\.lproj/locversion.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1100</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Base\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1010</real>
|
||||||
|
</dict>
|
||||||
|
<key>^version.plist$</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>rules2</key>
|
||||||
|
<dict>
|
||||||
|
<key>.*\.dSYM($|/)</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>11</real>
|
||||||
|
</dict>
|
||||||
|
<key>^(.*/)?\.DS_Store$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>2000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^.*</key>
|
||||||
|
<true/>
|
||||||
|
<key>^.*\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>optional</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^.*\.lproj/locversion.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1100</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Base\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1010</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Info\.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^PkgInfo$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^embedded\.provisionprofile$</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^version\.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1,101 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>files</key>
|
||||||
|
<dict>
|
||||||
|
<key>Info.plist</key>
|
||||||
|
<data>
|
||||||
|
SVuEmDA5fhoHjDX1OZ8EhAidy0s=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>files2</key>
|
||||||
|
<dict/>
|
||||||
|
<key>rules</key>
|
||||||
|
<dict>
|
||||||
|
<key>^.*</key>
|
||||||
|
<true/>
|
||||||
|
<key>^.*\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>optional</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^.*\.lproj/locversion.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1100</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Base\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1010</real>
|
||||||
|
</dict>
|
||||||
|
<key>^version.plist$</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>rules2</key>
|
||||||
|
<dict>
|
||||||
|
<key>.*\.dSYM($|/)</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>11</real>
|
||||||
|
</dict>
|
||||||
|
<key>^(.*/)?\.DS_Store$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>2000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^.*</key>
|
||||||
|
<true/>
|
||||||
|
<key>^.*\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>optional</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^.*\.lproj/locversion.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1100</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Base\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1010</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Info\.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^PkgInfo$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^embedded\.provisionprofile$</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^version\.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
XSym
|
||||||
|
0026
|
||||||
|
e58c4cf10cc7c8ef7d7167ccb641aeb4
|
||||||
|
Versions/Current/Resources
|
||||||
|
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
XSym
|
||||||
|
0034
|
||||||
|
d9f38aed87acda872f71f5c9a9f1a0cf
|
||||||
|
Versions/Current/SwiftGodotRuntime
|
||||||
|
|
||||||
|
|
@ -0,0 +1,46 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>BuildMachineOSBuild</key>
|
||||||
|
<string>25F71</string>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>en</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>SwiftGodotRuntime</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>swiftgodot.SwiftGodotRuntime</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>SwiftGodotRuntime</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>FMWK</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>1.0</string>
|
||||||
|
<key>CFBundleSupportedPlatforms</key>
|
||||||
|
<array>
|
||||||
|
<string>MacOSX</string>
|
||||||
|
</array>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>1</string>
|
||||||
|
<key>DTCompiler</key>
|
||||||
|
<string>com.apple.compilers.llvm.clang.1_0</string>
|
||||||
|
<key>DTPlatformBuild</key>
|
||||||
|
<string>25E251</string>
|
||||||
|
<key>DTPlatformName</key>
|
||||||
|
<string>macosx</string>
|
||||||
|
<key>DTPlatformVersion</key>
|
||||||
|
<string>26.4</string>
|
||||||
|
<key>DTSDKBuild</key>
|
||||||
|
<string>25E251</string>
|
||||||
|
<key>DTSDKName</key>
|
||||||
|
<string>macosx26.4</string>
|
||||||
|
<key>DTXcode</key>
|
||||||
|
<string>2641</string>
|
||||||
|
<key>DTXcodeBuild</key>
|
||||||
|
<string>17E202</string>
|
||||||
|
<key>LSMinimumSystemVersion</key>
|
||||||
|
<string>14.0</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,128 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>files</key>
|
||||||
|
<dict>
|
||||||
|
<key>Resources/Info.plist</key>
|
||||||
|
<data>
|
||||||
|
rs4XjH4BXNQu+5tpbh9iAcLOIeo=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
<key>files2</key>
|
||||||
|
<dict>
|
||||||
|
<key>Resources/Info.plist</key>
|
||||||
|
<dict>
|
||||||
|
<key>hash2</key>
|
||||||
|
<data>
|
||||||
|
cQ/r/W+7G+K1jNBmCgdhR5xs5WLS21Xc3R3oTeLoeMs=
|
||||||
|
</data>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>rules</key>
|
||||||
|
<dict>
|
||||||
|
<key>^Resources/</key>
|
||||||
|
<true/>
|
||||||
|
<key>^Resources/.*\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>optional</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1100</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Resources/Base\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1010</real>
|
||||||
|
</dict>
|
||||||
|
<key>^version.plist$</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
<key>rules2</key>
|
||||||
|
<dict>
|
||||||
|
<key>.*\.dSYM($|/)</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>11</real>
|
||||||
|
</dict>
|
||||||
|
<key>^(.*/)?\.DS_Store$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>2000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
|
||||||
|
<dict>
|
||||||
|
<key>nested</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>10</real>
|
||||||
|
</dict>
|
||||||
|
<key>^.*</key>
|
||||||
|
<true/>
|
||||||
|
<key>^Info\.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^PkgInfo$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Resources/</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Resources/.*\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>optional</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1000</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>omit</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1100</real>
|
||||||
|
</dict>
|
||||||
|
<key>^Resources/Base\.lproj/</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>1010</real>
|
||||||
|
</dict>
|
||||||
|
<key>^[^/]+$</key>
|
||||||
|
<dict>
|
||||||
|
<key>nested</key>
|
||||||
|
<true/>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>10</real>
|
||||||
|
</dict>
|
||||||
|
<key>^embedded\.provisionprofile$</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
<key>^version\.plist$</key>
|
||||||
|
<dict>
|
||||||
|
<key>weight</key>
|
||||||
|
<real>20</real>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
XSym
|
||||||
|
0001
|
||||||
|
7fc56270e7a70fa81a5935b72eacbe29
|
||||||
|
A
|
||||||
|
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
XSym
|
||||||
|
0042
|
||||||
|
8cedafd2db76746fc7627d87b40dbaa3
|
||||||
|
Versions/Current/GodotApplePluginsStoreKit
|
||||||
|
|
||||||
|
|
@ -0,0 +1,46 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>BuildMachineOSBuild</key>
|
||||||
|
<string>25F71</string>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>en</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>GodotApplePluginsStoreKit</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>godotappleplugins.GodotApplePluginsStoreKit</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>GodotApplePluginsStoreKit</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>FMWK</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>1.0</string>
|
||||||
|
<key>CFBundleSupportedPlatforms</key>
|
||||||
|
<array>
|
||||||
|
<string>MacOSX</string>
|
||||||
|
</array>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>1</string>
|
||||||
|
<key>DTCompiler</key>
|
||||||
|
<string>com.apple.compilers.llvm.clang.1_0</string>
|
||||||
|
<key>DTPlatformBuild</key>
|
||||||
|
<string>25E251</string>
|
||||||
|
<key>DTPlatformName</key>
|
||||||
|
<string>macosx</string>
|
||||||
|
<key>DTPlatformVersion</key>
|
||||||
|
<string>26.4</string>
|
||||||
|
<key>DTSDKBuild</key>
|
||||||
|
<string>25E251</string>
|
||||||
|
<key>DTSDKName</key>
|
||||||
|
<string>macosx26.4</string>
|
||||||
|
<key>DTXcode</key>
|
||||||
|
<string>2641</string>
|
||||||
|
<key>DTXcodeBuild</key>
|
||||||
|
<string>17E202</string>
|
||||||
|
<key>LSMinimumSystemVersion</key>
|
||||||
|
<string>14.0</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
|
@ -0,0 +1,53 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="ProductView" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
A view that displays a single product from the App Store.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
This class represents a view that displays a single product from the App Store. It allows you to configure the product to display, the style of the view, and the icon to use.
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
</tutorials>
|
||||||
|
<methods>
|
||||||
|
<method name="dismiss">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Dismisses the currently presented view.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="present">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Presents the product view on top of the current view hierarchy.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
</methods>
|
||||||
|
<members>
|
||||||
|
<member name="prefers_promotional_icon" type="bool" setter="set_prefers_promotional_icon" getter="get_prefers_promotional_icon" default="false">
|
||||||
|
Whether the view prefers to show the promotional icon for the product.
|
||||||
|
</member>
|
||||||
|
<member name="product_id" type="String" setter="set_product_id" getter="get_product_id" default="""">
|
||||||
|
The product identifier of the product to display.
|
||||||
|
</member>
|
||||||
|
<member name="style" type="int" setter="set_style" getter="get_style" default="0">
|
||||||
|
The style of the product view. See [enum ViewStyle] for available options.
|
||||||
|
</member>
|
||||||
|
<member name="system_icon_name" type="String" setter="set_system_icon_name" getter="get_system_icon_name" default=""cart"">
|
||||||
|
The name of the system icon to use as a placeholder while the product icon loads.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
<constants>
|
||||||
|
<constant name="AUTOMATIC" value="0" enum="ViewStyle">
|
||||||
|
The system automatically chooses the most appropriate style.
|
||||||
|
</constant>
|
||||||
|
<constant name="COMPACT" value="1" enum="ViewStyle">
|
||||||
|
A compact style that displays minimal information.
|
||||||
|
</constant>
|
||||||
|
<constant name="LARGE" value="2" enum="ViewStyle">
|
||||||
|
A large style that displays more detailed information.
|
||||||
|
</constant>
|
||||||
|
<constant name="REGULAR" value="3" enum="ViewStyle">
|
||||||
|
The regular style.
|
||||||
|
</constant>
|
||||||
|
</constants>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,180 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="StoreKitManager" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Manages StoreKit interactions such as requesting products, purchasing, and restoring purchases.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
This class handles the core StoreKit functionality. It provides methods to fetch product information from the App Store, initiate purchases,
|
||||||
|
restore previous purchases and be notified of the current status of the purchase upon startup.
|
||||||
|
|
||||||
|
Once you instantiate this class, connect to the the [signal transaction_updated] signal to
|
||||||
|
get notification related to the status of your purchases - these are delivered to notify
|
||||||
|
your application of what products your user is entitled to at startup. If you are using
|
||||||
|
Apple's PurchaseIntent, you will also want to connect to the [signal purchase_intent].
|
||||||
|
|
||||||
|
The [signal transaction_updated] is only raised for verified transactions.
|
||||||
|
Apple also supports unverified transactions, those are posted to the [signal unverified_transaction_updated] signal
|
||||||
|
and in addition to the transaction they contains a status code from the [enum VerificationError].
|
||||||
|
|
||||||
|
After you have set up your signals, you are ready to receive those events.
|
||||||
|
|
||||||
|
In addition, when you call the [method purchase] or [method purchase_with_options] you will
|
||||||
|
want to setup a handler for the [signal purchase_completed] signal which is raised in
|
||||||
|
response to different events during the purchasing.
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
</tutorials>
|
||||||
|
<methods>
|
||||||
|
<method name="fetch_current_entitlements">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
The current entitlements sequence provides the most recent transaction for each product the customer is entitled to, use this
|
||||||
|
to refresh the list of features the user is entitled to.
|
||||||
|
|
||||||
|
Specifically, it includes:
|
||||||
|
|
||||||
|
* One transaction for each non-consumable In-App Purchase
|
||||||
|
* The latest transaction for each auto-renewable subscription whose Product.SubscriptionInfo.RenewalState is either subscribed or inGracePeriod
|
||||||
|
* The latest transaction for each non-renewing subscription, including those that have ended
|
||||||
|
* Products that have been refunded or revoked by the App Store are excluded from the current entitlements, as are consumable In-App Purchases. To retrieve transactions for unfinished consumables, use the unfinished or all transaction sequences instead.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="purchase">
|
||||||
|
<return type="void" />
|
||||||
|
<param index="0" name="product" type="StoreProduct" />
|
||||||
|
<description>
|
||||||
|
Initiates the purchase of a specific product, e.g. [code]purchase(product)[/code]. This will raise the
|
||||||
|
[signal purchase_completed] signal, either to indicate that an error took place, or the status of the
|
||||||
|
purchase.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="purchase_with_options">
|
||||||
|
<return type="void" />
|
||||||
|
<param index="0" name="product" type="StoreProduct" />
|
||||||
|
<param index="1" name="options" type="Array" />
|
||||||
|
<description>
|
||||||
|
Initiates the purchase of a specific product, e.g. [code]purchase(product)[/code], and allows you to provide additional purchase options.
|
||||||
|
This will raise the
|
||||||
|
[signal purchase_completed] signal, either to indicate that an error took place, or the status of the
|
||||||
|
purchase.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="request_products">
|
||||||
|
<return type="void" />
|
||||||
|
<param index="0" name="productIds" type="PackedStringArray" />
|
||||||
|
<description>
|
||||||
|
Requests product information for a list of product identifiers, e.g. [code]request_products(PackedStringArray(["com.example.product1", "com.example.product2"]))[/code].
|
||||||
|
This method will raise the [signal products_request_completed] signal when the information is retrieved.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="restore_purchases">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Restores previously purchased non-consumable products and auto-renewable subscriptions. This will raise the
|
||||||
|
[signal restore_completed] signal when the product purchased have been restored.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="start">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
</methods>
|
||||||
|
<signals>
|
||||||
|
<signal name="products_request_completed">
|
||||||
|
<param index="0" name="products" type="Array" />
|
||||||
|
<param index="1" name="status" type="int" />
|
||||||
|
<description>
|
||||||
|
Emitted when a product request completes.
|
||||||
|
[param products] is an Array of [StoreProduct]s (or nulls).
|
||||||
|
[param status] indicates success or failure.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="purchase_completed">
|
||||||
|
<param index="0" name="transaction" type="StoreTransaction" />
|
||||||
|
<param index="1" name="status" type="int" />
|
||||||
|
<param index="2" name="error_message" type="String" />
|
||||||
|
<description>
|
||||||
|
Emitted when a purchase completes.
|
||||||
|
[param transaction] is the [StoreTransaction] on success.
|
||||||
|
[param status] indicates the result (OK, cancelled, invalid product, etc.).
|
||||||
|
[param error_message] contains error details if failed.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="purchase_intent">
|
||||||
|
<param index="0" name="product" type="StoreProduct" />
|
||||||
|
<description>
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="restore_completed">
|
||||||
|
<param index="0" name="status" type="int" />
|
||||||
|
<param index="1" name="error_message" type="String" />
|
||||||
|
<description>
|
||||||
|
Emitted when the restore process completes. `arg1` is the [enum StoreKitStatus], and `arg2` is an error message if applicable.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="supscription_update">
|
||||||
|
<param index="0" name="status" type="StoreSubscriptionInfoStatus" />
|
||||||
|
<description>
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="transaction_updated">
|
||||||
|
<param index="0" name="transaction" type="StoreTransaction" />
|
||||||
|
<description>
|
||||||
|
Emitted when a transaction is updated (e.g., a subscription renews or a purchase is approved externally). `transaction` is the updated [StoreTransaction].
|
||||||
|
|
||||||
|
You must call the finished method on the transaction once you have made sure that you have delivered the content to the user.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="unverified_transaction_updated">
|
||||||
|
<param index="0" name="transaction" type="StoreTransaction" />
|
||||||
|
<param index="1" name="verification_error" type="int" />
|
||||||
|
<description>
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
</signals>
|
||||||
|
<constants>
|
||||||
|
<constant name="OK" value="0" enum="StoreKitStatus">
|
||||||
|
The operation completed successfully.
|
||||||
|
</constant>
|
||||||
|
<constant name="INVALID_PRODUCT" value="1" enum="StoreKitStatus">
|
||||||
|
The product identifier is invalid.
|
||||||
|
</constant>
|
||||||
|
<constant name="CANCELLED" value="2" enum="StoreKitStatus">
|
||||||
|
The operation was cancelled.
|
||||||
|
</constant>
|
||||||
|
<constant name="UNVERIFIED_TRANSACTION" value="3" enum="StoreKitStatus">
|
||||||
|
The transaction could not be verified.
|
||||||
|
</constant>
|
||||||
|
<constant name="USER_CANCELLED" value="4" enum="StoreKitStatus">
|
||||||
|
The user cancelled the operation.
|
||||||
|
</constant>
|
||||||
|
<constant name="PURCHASE_PENDING" value="5" enum="StoreKitStatus">
|
||||||
|
The purchase is pending (e.g., waiting for parental approval).
|
||||||
|
</constant>
|
||||||
|
<constant name="UNKNOWN_STATUS" value="6" enum="StoreKitStatus">
|
||||||
|
An unknown status occurred.
|
||||||
|
</constant>
|
||||||
|
<constant name="REVOKED_CERTIFICATE" value="0" enum="VerificationError">
|
||||||
|
The certificate chain was parsable, but was invalid due to one or more revoked certificates.
|
||||||
|
</constant>
|
||||||
|
<constant name="INVALID_CERTIFICATE_CHAIN" value="1" enum="VerificationError">
|
||||||
|
The certificate chain was parsable, but it was invalid for signing this data.
|
||||||
|
</constant>
|
||||||
|
<constant name="INVALID_DEVICE_VERIFICATION" value="2" enum="VerificationError">
|
||||||
|
The device verification properties were invalid for this device.
|
||||||
|
</constant>
|
||||||
|
<constant name="INVALID_ENCODING" value="3" enum="VerificationError">
|
||||||
|
Th JWS header and any data included in it or it's certificate chain had an invalid encoding.
|
||||||
|
</constant>
|
||||||
|
<constant name="INVALID_SIGNATURE" value="4" enum="VerificationError">
|
||||||
|
The certificate chain was valid for signing this data, but the leaf's public key was invalid for the JWS signature.
|
||||||
|
</constant>
|
||||||
|
<constant name="MISSING_REQUIRED_PROPERTIES" value="5" enum="VerificationError">
|
||||||
|
Either the JWS header or any certificate in the chain was missing necessary properties for verification.
|
||||||
|
</constant>
|
||||||
|
<constant name="OTHER" value="6" enum="VerificationError">
|
||||||
|
A new error code was introduced that was not previously handled.
|
||||||
|
</constant>
|
||||||
|
</constants>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="StoreProduct" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Represents a product available for purchase in the App Store.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
This class contains information about a product, such as its ID, display name, description, and price. It is returned by [method StoreKitManager.request_products].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
</tutorials>
|
||||||
|
<members>
|
||||||
|
<member name="description_value" type="String" setter="" getter="get_description_value" default="""">
|
||||||
|
The description of the product, used for display in the UI.
|
||||||
|
</member>
|
||||||
|
<member name="display_name" type="String" setter="" getter="get_display_name" default="""">
|
||||||
|
The localized display name of the product.
|
||||||
|
</member>
|
||||||
|
<member name="display_price" type="String" setter="" getter="get_display_price" default="""">
|
||||||
|
The formatted price of the product, including the currency symbol (e.g. "$0.99").
|
||||||
|
</member>
|
||||||
|
<member name="is_family_shareable" type="bool" setter="" getter="get_is_family_shareable" default="false">
|
||||||
|
Indicates whether the product can be shared with family members.
|
||||||
|
</member>
|
||||||
|
<member name="json_representation" type="String" setter="" getter="get_json_representation" default="""">
|
||||||
|
A JSON debug representation of the product.
|
||||||
|
</member>
|
||||||
|
<member name="price" type="float" setter="" getter="get_price" default="0.0">
|
||||||
|
The price of the product in the local currency.
|
||||||
|
</member>
|
||||||
|
<member name="product_id" type="String" setter="" getter="get_product_id" default="""">
|
||||||
|
The unique identifier for the product.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="StoreProductPaymentMode" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
The payment modes for subscription offers that apply to a transaction.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
</tutorials>
|
||||||
|
<methods>
|
||||||
|
<method name="get_free_trial" qualifiers="static">
|
||||||
|
<return type="StoreProductPaymentMode" />
|
||||||
|
<description>
|
||||||
|
Returns a payment mode representing a free trial.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="get_pay_as_you_go" qualifiers="static">
|
||||||
|
<return type="StoreProductPaymentMode" />
|
||||||
|
<description>
|
||||||
|
Returns a payment mode where the user pays as they go (e.g. monthly for 3 months).
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="pay_up_front" qualifiers="static">
|
||||||
|
<return type="StoreProductPaymentMode" />
|
||||||
|
<description>
|
||||||
|
Returns a payment mode where the user pays the entire amount up front.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
</methods>
|
||||||
|
<members>
|
||||||
|
<member name="localized_description" type="String" setter="" getter="get_localized_description" default="""">
|
||||||
|
The localized description of the payment mode.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="StoreProductPurchaseOption" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Represents an option that can be supplied when purchasing a [StoreProduct].
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
You create instances of this class and you can pass those to [method StoreKitManager.purchase_with_options].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
</tutorials>
|
||||||
|
<methods>
|
||||||
|
<method name="app_account_token" qualifiers="static">
|
||||||
|
<return type="StoreProductPurchaseOption" />
|
||||||
|
<param index="0" name="stringUuidToken" type="String" />
|
||||||
|
<description>
|
||||||
|
Creates a purchase option with an app account token. This token should be a UUID string that associates the transaction with a user account on your service.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="introductory_offer_elligibility" qualifiers="static">
|
||||||
|
<return type="StoreProductPurchaseOption" />
|
||||||
|
<param index="0" name="jws" type="String" />
|
||||||
|
<description>
|
||||||
|
Creates a purchase option with a specific introductory offer eligibility. This requires the signed JWS string from the App Store.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="quantity" qualifiers="static">
|
||||||
|
<return type="StoreProductPurchaseOption" />
|
||||||
|
<param index="0" name="value" type="int" />
|
||||||
|
<description>
|
||||||
|
Creates a purchase option specifying the quantity of the product to purchase.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="simulate_ask_to_buy_in_sandbox" qualifiers="static">
|
||||||
|
<return type="StoreProductPurchaseOption" />
|
||||||
|
<param index="0" name="enabled" type="bool" />
|
||||||
|
<description>
|
||||||
|
Creates a purchase option to simulate the "Ask to Buy" flow in the sandbox environment.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="win_back_offer" qualifiers="static">
|
||||||
|
<return type="StoreProductPurchaseOption" />
|
||||||
|
<param index="0" name="offer" type="StoreProductSubscriptionOffer" />
|
||||||
|
<description>
|
||||||
|
Creates a purchase option for a win-back offer.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
</methods>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="StoreProductSubscriptionOffer" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Represents a subscription offer for a [StoreProduct].
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
You configure these in AppStore Connect. See [url=https://developer.apple.com/documentation/storekit/product/subscriptionoffer]Apple's documentation[/url] for additional information
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
</tutorials>
|
||||||
|
<constants>
|
||||||
|
<constant name="INTRODUCTORY" value="0" enum="OfferType">
|
||||||
|
An introductory offer for new subscribers.
|
||||||
|
</constant>
|
||||||
|
<constant name="PROMOTIONAL" value="1" enum="OfferType">
|
||||||
|
A promotional offer for existing or lapsed subscribers.
|
||||||
|
</constant>
|
||||||
|
<constant name="WIN_BACK" value="2" enum="OfferType">
|
||||||
|
A win-back offer for lapsed subscribers.
|
||||||
|
</constant>
|
||||||
|
<constant name="UNKNOWN" value="3" enum="OfferType">
|
||||||
|
An unknown offer type.
|
||||||
|
</constant>
|
||||||
|
</constants>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="StoreProductSubscriptionPeriod" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Values that represent the duration of time between subscription renewals.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
</tutorials>
|
||||||
|
<constants>
|
||||||
|
<constant name="DAY" value="0" enum="Unit">
|
||||||
|
A subscription period of one day.
|
||||||
|
</constant>
|
||||||
|
<constant name="MONTH" value="1" enum="Unit">
|
||||||
|
A subscription period of one month.
|
||||||
|
</constant>
|
||||||
|
<constant name="WEEK" value="2" enum="Unit">
|
||||||
|
A subscription period of one week.
|
||||||
|
</constant>
|
||||||
|
<constant name="YEAR" value="3" enum="Unit">
|
||||||
|
A subscription period of one year.
|
||||||
|
</constant>
|
||||||
|
</constants>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,49 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="StoreSubscriptionInfo" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Provides subscription group metadata and status queries.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
This class wraps StoreKit subscription information and exposes the subscription group metadata for a product.
|
||||||
|
Use the status methods to query the current subscription status for a product, subscription group, or transaction ID.
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
</tutorials>
|
||||||
|
<methods>
|
||||||
|
<method name="getStatus">
|
||||||
|
<return type="void" />
|
||||||
|
<param index="0" name="callback" type="Callable" />
|
||||||
|
<description>
|
||||||
|
Fetches the current status entries for this subscription. The callback receives a [code skip-lint]Array[StoreSubscriptionInfoStatus][/code] on success, or a [code skip-lint]String[/code] describing the error.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="status_for_group_id">
|
||||||
|
<return type="void" />
|
||||||
|
<param index="0" name="group_id" type="String" />
|
||||||
|
<param index="1" name="status" type="Callable" />
|
||||||
|
<description>
|
||||||
|
Fetches status entries for the subscription group identifier. The callback receives a [code skip-lint]Array[StoreSubscriptionInfoStatus][/code] on success, or a [code skip-lint]String[/code] describing the error.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="status_for_transaction">
|
||||||
|
<return type="void" />
|
||||||
|
<param index="0" name="transaction_id" type="int" />
|
||||||
|
<param index="1" name="status" type="Callable" />
|
||||||
|
<description>
|
||||||
|
Fetches the status entry for the provided transaction identifier. The callback receives a [code skip-lint]StoreSubscriptionInfoStatus[/code] when available, an empty [code skip-lint]Array[StoreSubscriptionInfoStatus][/code] when no status is found, or a [code skip-lint]String[/code] describing the error.
|
||||||
|
On macOS, this requires macOS 15.4 or newer; earlier versions perform no action.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
</methods>
|
||||||
|
<members>
|
||||||
|
<member name="group_display_name" type="String" setter="" getter="get_group_display_name" default="""">
|
||||||
|
The localized display name of the subscription group. Returns an empty string if unavailable.
|
||||||
|
</member>
|
||||||
|
<member name="group_level" type="int" setter="" getter="get_group_level" default="-1">
|
||||||
|
The subscription group level used for upgrade/downgrade ranking. Returns [code]-1[/code] when unavailable.
|
||||||
|
</member>
|
||||||
|
<member name="subscription_group_id" type="String" setter="" getter="get_subscription_group_id" default="""">
|
||||||
|
The subscription group identifier from App Store Connect. Returns an empty string if unavailable.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="StoreSubscriptionInfoRenewalInfo" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Contains verified renewal metadata for a subscription.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
This class wraps StoreKit renewal information and is only created from verified renewal data.
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
</tutorials>
|
||||||
|
<members>
|
||||||
|
<member name="app_account_token" type="String" setter="" getter="get_app_account_token" default="""">
|
||||||
|
The app account token used when purchasing, as a UUID string. Returns an empty string when not set.
|
||||||
|
</member>
|
||||||
|
<member name="app_transaction_id" type="String" setter="" getter="get_app_transaction_id" default="""">
|
||||||
|
The app transaction identifier associated with the subscription. Returns an empty string when unavailable.
|
||||||
|
</member>
|
||||||
|
<member name="current_product_id" type="String" setter="" getter="get_current_product_id" default="""">
|
||||||
|
The current product identifier for the subscription group.
|
||||||
|
</member>
|
||||||
|
<member name="original_transaction_id" type="int" setter="" getter="get_original_transaction_id" default="0">
|
||||||
|
The original transaction identifier for the subscription. Returns [code]0[/code] when unavailable.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,42 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="StoreSubscriptionInfoStatus" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Describes the status of a subscription in a subscription group.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
This class wraps StoreKit's subscription status information, including renewal state, verified renewal info, and the latest verified transaction.
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
</tutorials>
|
||||||
|
<members>
|
||||||
|
<member name="renewal_info" type="StoreSubscriptionInfoRenewalInfo" setter="" getter="get_renewal_info" default="null">
|
||||||
|
Verified renewal info for the subscription, or [code]null[/code] if it is missing or unverified.
|
||||||
|
</member>
|
||||||
|
<member name="state" type="int" setter="" getter="get_state" default="0">
|
||||||
|
The current renewal state. Use the [enum RenewalState] constants.
|
||||||
|
</member>
|
||||||
|
<member name="transaction" type="StoreTransaction" setter="" getter="get_transaction" default="null">
|
||||||
|
The latest verified transaction for the subscription, or [code]null[/code] if it is missing or unverified.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
<constants>
|
||||||
|
<constant name="UNKNOWN" value="0" enum="RenewalState">
|
||||||
|
The renewal state is unknown or not available.
|
||||||
|
</constant>
|
||||||
|
<constant name="EXPIRED" value="1" enum="RenewalState">
|
||||||
|
The subscription has expired.
|
||||||
|
</constant>
|
||||||
|
<constant name="SUBSCRIBED" value="2" enum="RenewalState">
|
||||||
|
The subscription is currently active.
|
||||||
|
</constant>
|
||||||
|
<constant name="IN_BILLING_RETRY_PERIOD" value="3" enum="RenewalState">
|
||||||
|
The subscription is in the billing retry period after a failed renewal.
|
||||||
|
</constant>
|
||||||
|
<constant name="IN_GRACE_PERIOD" value="4" enum="RenewalState">
|
||||||
|
The subscription is in the grace period after a failed renewal.
|
||||||
|
</constant>
|
||||||
|
<constant name="REVOKED" value="5" enum="RenewalState">
|
||||||
|
The subscription was revoked by Apple.
|
||||||
|
</constant>
|
||||||
|
</constants>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,56 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="StoreTransaction" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Represents a successful purchase transaction.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
This class contains details about a purchase, such as the product ID, purchase date, and expiration date (for subscriptions).
|
||||||
|
|
||||||
|
When you receive a transaction update, you must call the [method finish] method on the transaction once you have made sure
|
||||||
|
that you have delivered the content to the user.
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
</tutorials>
|
||||||
|
<methods>
|
||||||
|
<method name="finish">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
The finish method notifies the App Store that the app has successfully provided the purchased content or
|
||||||
|
activated the purchased service, allowing the transaction to be completed.
|
||||||
|
|
||||||
|
Call [method finish] only after your app has delivered the content or enabled the service. If the purchase
|
||||||
|
includes on-demand resources, wait to finish the transaction until the download is complete or the
|
||||||
|
resources have otherwise been fully delivered.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
</methods>
|
||||||
|
<members>
|
||||||
|
<member name="expiration_date" type="float" setter="" getter="get_expiration_date" default="0.0">
|
||||||
|
The date when the subscription expires, as a Unix timestamp. Returns 0 if not applicable.
|
||||||
|
</member>
|
||||||
|
<member name="is_upgraded" type="bool" setter="" getter="get_is_upgraded" default="false">
|
||||||
|
Whether this transaction is an upgrade of another transaction.
|
||||||
|
</member>
|
||||||
|
<member name="jws_representation" type="String" setter="" getter="get_jws_representation" default="""">
|
||||||
|
The JWS (JSON Web Signature) representation of the signed transaction, suitable for server-side receipt validation (for example the App Store Server API or a third-party validator such as RevenueCat). Empty when the transaction was not constructed from a verification result.
|
||||||
|
</member>
|
||||||
|
<member name="original_id" type="int" setter="" getter="get_original_id" default="0">
|
||||||
|
The transaction identifier of the original purchase.
|
||||||
|
</member>
|
||||||
|
<member name="ownership_type" type="String" setter="" getter="get_ownership_type" default=""unknown"">
|
||||||
|
The type of ownership (e.g., "purchased", "familyShared", "unknown").
|
||||||
|
</member>
|
||||||
|
<member name="product_id" type="String" setter="" getter="get_product_id" default="""">
|
||||||
|
The unique identifier of the purchased product.
|
||||||
|
</member>
|
||||||
|
<member name="purchase_date" type="float" setter="" getter="get_purchase_date" default="0.0">
|
||||||
|
The date when the purchase was made, as a Unix timestamp.
|
||||||
|
</member>
|
||||||
|
<member name="revocation_date" type="float" setter="" getter="get_revocation_date" default="0.0">
|
||||||
|
The date when the transaction was revoked, as a Unix timestamp. Returns 0 if not revoked.
|
||||||
|
</member>
|
||||||
|
<member name="transaction_id" type="int" setter="" getter="get_transaction_id" default="0">
|
||||||
|
The unique identifier of the transaction.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="StoreView" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
A view that displays a collection of products.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
This class represents a view that displays multiple products from the App Store. It is useful for creating a storefront or a list of available items.
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
</tutorials>
|
||||||
|
<methods>
|
||||||
|
<method name="dismiss">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Dismisses the currently presented view.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="present">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Presents the store view on top of the current view hierarchy.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
</methods>
|
||||||
|
<members>
|
||||||
|
<member name="product_ids" type="PackedStringArray" setter="set_product_ids" getter="get_product_ids" default="PackedStringArray()">
|
||||||
|
A list of product identifiers to display in the store view.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="SubscriptionOfferView" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
A view for redeeming subscription offers.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
This class provides a view for users to redeem subscription offer codes. It handles the UI flow for entering and verifying offer codes.
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
</tutorials>
|
||||||
|
<methods>
|
||||||
|
<method name="dismiss">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Dismisses the currently presented view.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="present">
|
||||||
|
<return type="void" />
|
||||||
|
<param index="0" name="callback" type="Callable" />
|
||||||
|
<description>
|
||||||
|
Presents the offer code redemption view. note: The `callback` parameter is currently unused; use the [signal success] and [signal error] signals to handle the result.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
</methods>
|
||||||
|
<members>
|
||||||
|
<member name="title" type="String" setter="set_title" getter="get_title" default=""Redeeming Offer..."">
|
||||||
|
The title displayed on the view.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
<signals>
|
||||||
|
<signal name="error">
|
||||||
|
<param index="0" name="message" type="String" />
|
||||||
|
<description>
|
||||||
|
Emitted when the offer redemption fails. `arg1` contains the error message.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="success">
|
||||||
|
<description>
|
||||||
|
Emitted when the offer redemption is successful.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
</signals>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,59 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="SubscriptionStoreView" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
A view for displaying subscription options.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
This class presents a standard StoreKit subscription view. It can be configured to show a specific subscription group or a list of specific products. The visual style of the controls is also customizable.
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
</tutorials>
|
||||||
|
<methods>
|
||||||
|
<method name="dismiss">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Dismisses the currently presented view.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="present">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Presents the subscription store view on top of the current view hierarchy.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
</methods>
|
||||||
|
<members>
|
||||||
|
<member name="control_style" type="int" setter="set_control_style" getter="get_control_style" default="0">
|
||||||
|
The visual style of the subscription controls. See [enum ControlStyle] for options.
|
||||||
|
</member>
|
||||||
|
<member name="group_id" type="String" setter="set_group_id" getter="get_group_id" default="""">
|
||||||
|
The identifier of the subscription group to display. If set, this takes precedence over [member product_i_ds].
|
||||||
|
</member>
|
||||||
|
<member name="product_i_ds" type="PackedStringArray" setter="set_product_i_ds" getter="get_product_i_ds" default="PackedStringArray()">
|
||||||
|
A list of specific product identifiers to display. Ignored if [member group_id] is set.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
<constants>
|
||||||
|
<constant name="AUTOMATIC" value="0" enum="ControlStyle">
|
||||||
|
The system automatically chooses the most appropriate style.
|
||||||
|
</constant>
|
||||||
|
<constant name="PICKER" value="1" enum="ControlStyle">
|
||||||
|
A picker style.
|
||||||
|
</constant>
|
||||||
|
<constant name="BUTTONS" value="2" enum="ControlStyle">
|
||||||
|
A button-based style.
|
||||||
|
</constant>
|
||||||
|
<constant name="COMPACT_PICKER" value="3" enum="ControlStyle">
|
||||||
|
A compact picker style.
|
||||||
|
</constant>
|
||||||
|
<constant name="PROMINENT_PICKER" value="4" enum="ControlStyle">
|
||||||
|
A prominent picker style.
|
||||||
|
</constant>
|
||||||
|
<constant name="PAGED_PICKER" value="5" enum="ControlStyle">
|
||||||
|
A paged picker style.
|
||||||
|
</constant>
|
||||||
|
<constant name="PAGED_PROMINENT_PICKER" value="6" enum="ControlStyle">
|
||||||
|
A prominent paged picker style.
|
||||||
|
</constant>
|
||||||
|
</constants>
|
||||||
|
</class>
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,46 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>BuildMachineOSBuild</key>
|
||||||
|
<string>25F71</string>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>en</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>GodotApplePluginsStoreKit</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>godotappleplugins.GodotApplePluginsStoreKit</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>GodotApplePluginsStoreKit</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>FMWK</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>1.0</string>
|
||||||
|
<key>CFBundleSupportedPlatforms</key>
|
||||||
|
<array>
|
||||||
|
<string>MacOSX</string>
|
||||||
|
</array>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>1</string>
|
||||||
|
<key>DTCompiler</key>
|
||||||
|
<string>com.apple.compilers.llvm.clang.1_0</string>
|
||||||
|
<key>DTPlatformBuild</key>
|
||||||
|
<string>25E251</string>
|
||||||
|
<key>DTPlatformName</key>
|
||||||
|
<string>macosx</string>
|
||||||
|
<key>DTPlatformVersion</key>
|
||||||
|
<string>26.4</string>
|
||||||
|
<key>DTSDKBuild</key>
|
||||||
|
<string>25E251</string>
|
||||||
|
<key>DTSDKName</key>
|
||||||
|
<string>macosx26.4</string>
|
||||||
|
<key>DTXcode</key>
|
||||||
|
<string>2641</string>
|
||||||
|
<key>DTXcodeBuild</key>
|
||||||
|
<string>17E202</string>
|
||||||
|
<key>LSMinimumSystemVersion</key>
|
||||||
|
<string>14.0</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
|
@ -0,0 +1,53 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="ProductView" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
A view that displays a single product from the App Store.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
This class represents a view that displays a single product from the App Store. It allows you to configure the product to display, the style of the view, and the icon to use.
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
</tutorials>
|
||||||
|
<methods>
|
||||||
|
<method name="dismiss">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Dismisses the currently presented view.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="present">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Presents the product view on top of the current view hierarchy.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
</methods>
|
||||||
|
<members>
|
||||||
|
<member name="prefers_promotional_icon" type="bool" setter="set_prefers_promotional_icon" getter="get_prefers_promotional_icon" default="false">
|
||||||
|
Whether the view prefers to show the promotional icon for the product.
|
||||||
|
</member>
|
||||||
|
<member name="product_id" type="String" setter="set_product_id" getter="get_product_id" default="""">
|
||||||
|
The product identifier of the product to display.
|
||||||
|
</member>
|
||||||
|
<member name="style" type="int" setter="set_style" getter="get_style" default="0">
|
||||||
|
The style of the product view. See [enum ViewStyle] for available options.
|
||||||
|
</member>
|
||||||
|
<member name="system_icon_name" type="String" setter="set_system_icon_name" getter="get_system_icon_name" default=""cart"">
|
||||||
|
The name of the system icon to use as a placeholder while the product icon loads.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
<constants>
|
||||||
|
<constant name="AUTOMATIC" value="0" enum="ViewStyle">
|
||||||
|
The system automatically chooses the most appropriate style.
|
||||||
|
</constant>
|
||||||
|
<constant name="COMPACT" value="1" enum="ViewStyle">
|
||||||
|
A compact style that displays minimal information.
|
||||||
|
</constant>
|
||||||
|
<constant name="LARGE" value="2" enum="ViewStyle">
|
||||||
|
A large style that displays more detailed information.
|
||||||
|
</constant>
|
||||||
|
<constant name="REGULAR" value="3" enum="ViewStyle">
|
||||||
|
The regular style.
|
||||||
|
</constant>
|
||||||
|
</constants>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,180 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="StoreKitManager" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Manages StoreKit interactions such as requesting products, purchasing, and restoring purchases.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
This class handles the core StoreKit functionality. It provides methods to fetch product information from the App Store, initiate purchases,
|
||||||
|
restore previous purchases and be notified of the current status of the purchase upon startup.
|
||||||
|
|
||||||
|
Once you instantiate this class, connect to the the [signal transaction_updated] signal to
|
||||||
|
get notification related to the status of your purchases - these are delivered to notify
|
||||||
|
your application of what products your user is entitled to at startup. If you are using
|
||||||
|
Apple's PurchaseIntent, you will also want to connect to the [signal purchase_intent].
|
||||||
|
|
||||||
|
The [signal transaction_updated] is only raised for verified transactions.
|
||||||
|
Apple also supports unverified transactions, those are posted to the [signal unverified_transaction_updated] signal
|
||||||
|
and in addition to the transaction they contains a status code from the [enum VerificationError].
|
||||||
|
|
||||||
|
After you have set up your signals, you are ready to receive those events.
|
||||||
|
|
||||||
|
In addition, when you call the [method purchase] or [method purchase_with_options] you will
|
||||||
|
want to setup a handler for the [signal purchase_completed] signal which is raised in
|
||||||
|
response to different events during the purchasing.
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
</tutorials>
|
||||||
|
<methods>
|
||||||
|
<method name="fetch_current_entitlements">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
The current entitlements sequence provides the most recent transaction for each product the customer is entitled to, use this
|
||||||
|
to refresh the list of features the user is entitled to.
|
||||||
|
|
||||||
|
Specifically, it includes:
|
||||||
|
|
||||||
|
* One transaction for each non-consumable In-App Purchase
|
||||||
|
* The latest transaction for each auto-renewable subscription whose Product.SubscriptionInfo.RenewalState is either subscribed or inGracePeriod
|
||||||
|
* The latest transaction for each non-renewing subscription, including those that have ended
|
||||||
|
* Products that have been refunded or revoked by the App Store are excluded from the current entitlements, as are consumable In-App Purchases. To retrieve transactions for unfinished consumables, use the unfinished or all transaction sequences instead.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="purchase">
|
||||||
|
<return type="void" />
|
||||||
|
<param index="0" name="product" type="StoreProduct" />
|
||||||
|
<description>
|
||||||
|
Initiates the purchase of a specific product, e.g. [code]purchase(product)[/code]. This will raise the
|
||||||
|
[signal purchase_completed] signal, either to indicate that an error took place, or the status of the
|
||||||
|
purchase.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="purchase_with_options">
|
||||||
|
<return type="void" />
|
||||||
|
<param index="0" name="product" type="StoreProduct" />
|
||||||
|
<param index="1" name="options" type="Array" />
|
||||||
|
<description>
|
||||||
|
Initiates the purchase of a specific product, e.g. [code]purchase(product)[/code], and allows you to provide additional purchase options.
|
||||||
|
This will raise the
|
||||||
|
[signal purchase_completed] signal, either to indicate that an error took place, or the status of the
|
||||||
|
purchase.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="request_products">
|
||||||
|
<return type="void" />
|
||||||
|
<param index="0" name="productIds" type="PackedStringArray" />
|
||||||
|
<description>
|
||||||
|
Requests product information for a list of product identifiers, e.g. [code]request_products(PackedStringArray(["com.example.product1", "com.example.product2"]))[/code].
|
||||||
|
This method will raise the [signal products_request_completed] signal when the information is retrieved.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="restore_purchases">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
Restores previously purchased non-consumable products and auto-renewable subscriptions. This will raise the
|
||||||
|
[signal restore_completed] signal when the product purchased have been restored.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="start">
|
||||||
|
<return type="void" />
|
||||||
|
<description>
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
</methods>
|
||||||
|
<signals>
|
||||||
|
<signal name="products_request_completed">
|
||||||
|
<param index="0" name="products" type="Array" />
|
||||||
|
<param index="1" name="status" type="int" />
|
||||||
|
<description>
|
||||||
|
Emitted when a product request completes.
|
||||||
|
[param products] is an Array of [StoreProduct]s (or nulls).
|
||||||
|
[param status] indicates success or failure.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="purchase_completed">
|
||||||
|
<param index="0" name="transaction" type="StoreTransaction" />
|
||||||
|
<param index="1" name="status" type="int" />
|
||||||
|
<param index="2" name="error_message" type="String" />
|
||||||
|
<description>
|
||||||
|
Emitted when a purchase completes.
|
||||||
|
[param transaction] is the [StoreTransaction] on success.
|
||||||
|
[param status] indicates the result (OK, cancelled, invalid product, etc.).
|
||||||
|
[param error_message] contains error details if failed.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="purchase_intent">
|
||||||
|
<param index="0" name="product" type="StoreProduct" />
|
||||||
|
<description>
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="restore_completed">
|
||||||
|
<param index="0" name="status" type="int" />
|
||||||
|
<param index="1" name="error_message" type="String" />
|
||||||
|
<description>
|
||||||
|
Emitted when the restore process completes. `arg1` is the [enum StoreKitStatus], and `arg2` is an error message if applicable.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="supscription_update">
|
||||||
|
<param index="0" name="status" type="StoreSubscriptionInfoStatus" />
|
||||||
|
<description>
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="transaction_updated">
|
||||||
|
<param index="0" name="transaction" type="StoreTransaction" />
|
||||||
|
<description>
|
||||||
|
Emitted when a transaction is updated (e.g., a subscription renews or a purchase is approved externally). `transaction` is the updated [StoreTransaction].
|
||||||
|
|
||||||
|
You must call the finished method on the transaction once you have made sure that you have delivered the content to the user.
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
<signal name="unverified_transaction_updated">
|
||||||
|
<param index="0" name="transaction" type="StoreTransaction" />
|
||||||
|
<param index="1" name="verification_error" type="int" />
|
||||||
|
<description>
|
||||||
|
</description>
|
||||||
|
</signal>
|
||||||
|
</signals>
|
||||||
|
<constants>
|
||||||
|
<constant name="OK" value="0" enum="StoreKitStatus">
|
||||||
|
The operation completed successfully.
|
||||||
|
</constant>
|
||||||
|
<constant name="INVALID_PRODUCT" value="1" enum="StoreKitStatus">
|
||||||
|
The product identifier is invalid.
|
||||||
|
</constant>
|
||||||
|
<constant name="CANCELLED" value="2" enum="StoreKitStatus">
|
||||||
|
The operation was cancelled.
|
||||||
|
</constant>
|
||||||
|
<constant name="UNVERIFIED_TRANSACTION" value="3" enum="StoreKitStatus">
|
||||||
|
The transaction could not be verified.
|
||||||
|
</constant>
|
||||||
|
<constant name="USER_CANCELLED" value="4" enum="StoreKitStatus">
|
||||||
|
The user cancelled the operation.
|
||||||
|
</constant>
|
||||||
|
<constant name="PURCHASE_PENDING" value="5" enum="StoreKitStatus">
|
||||||
|
The purchase is pending (e.g., waiting for parental approval).
|
||||||
|
</constant>
|
||||||
|
<constant name="UNKNOWN_STATUS" value="6" enum="StoreKitStatus">
|
||||||
|
An unknown status occurred.
|
||||||
|
</constant>
|
||||||
|
<constant name="REVOKED_CERTIFICATE" value="0" enum="VerificationError">
|
||||||
|
The certificate chain was parsable, but was invalid due to one or more revoked certificates.
|
||||||
|
</constant>
|
||||||
|
<constant name="INVALID_CERTIFICATE_CHAIN" value="1" enum="VerificationError">
|
||||||
|
The certificate chain was parsable, but it was invalid for signing this data.
|
||||||
|
</constant>
|
||||||
|
<constant name="INVALID_DEVICE_VERIFICATION" value="2" enum="VerificationError">
|
||||||
|
The device verification properties were invalid for this device.
|
||||||
|
</constant>
|
||||||
|
<constant name="INVALID_ENCODING" value="3" enum="VerificationError">
|
||||||
|
Th JWS header and any data included in it or it's certificate chain had an invalid encoding.
|
||||||
|
</constant>
|
||||||
|
<constant name="INVALID_SIGNATURE" value="4" enum="VerificationError">
|
||||||
|
The certificate chain was valid for signing this data, but the leaf's public key was invalid for the JWS signature.
|
||||||
|
</constant>
|
||||||
|
<constant name="MISSING_REQUIRED_PROPERTIES" value="5" enum="VerificationError">
|
||||||
|
Either the JWS header or any certificate in the chain was missing necessary properties for verification.
|
||||||
|
</constant>
|
||||||
|
<constant name="OTHER" value="6" enum="VerificationError">
|
||||||
|
A new error code was introduced that was not previously handled.
|
||||||
|
</constant>
|
||||||
|
</constants>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="StoreProduct" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Represents a product available for purchase in the App Store.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
This class contains information about a product, such as its ID, display name, description, and price. It is returned by [method StoreKitManager.request_products].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
</tutorials>
|
||||||
|
<members>
|
||||||
|
<member name="description_value" type="String" setter="" getter="get_description_value" default="""">
|
||||||
|
The description of the product, used for display in the UI.
|
||||||
|
</member>
|
||||||
|
<member name="display_name" type="String" setter="" getter="get_display_name" default="""">
|
||||||
|
The localized display name of the product.
|
||||||
|
</member>
|
||||||
|
<member name="display_price" type="String" setter="" getter="get_display_price" default="""">
|
||||||
|
The formatted price of the product, including the currency symbol (e.g. "$0.99").
|
||||||
|
</member>
|
||||||
|
<member name="is_family_shareable" type="bool" setter="" getter="get_is_family_shareable" default="false">
|
||||||
|
Indicates whether the product can be shared with family members.
|
||||||
|
</member>
|
||||||
|
<member name="json_representation" type="String" setter="" getter="get_json_representation" default="""">
|
||||||
|
A JSON debug representation of the product.
|
||||||
|
</member>
|
||||||
|
<member name="price" type="float" setter="" getter="get_price" default="0.0">
|
||||||
|
The price of the product in the local currency.
|
||||||
|
</member>
|
||||||
|
<member name="product_id" type="String" setter="" getter="get_product_id" default="""">
|
||||||
|
The unique identifier for the product.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="StoreProductPaymentMode" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
The payment modes for subscription offers that apply to a transaction.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
</tutorials>
|
||||||
|
<methods>
|
||||||
|
<method name="get_free_trial" qualifiers="static">
|
||||||
|
<return type="StoreProductPaymentMode" />
|
||||||
|
<description>
|
||||||
|
Returns a payment mode representing a free trial.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="get_pay_as_you_go" qualifiers="static">
|
||||||
|
<return type="StoreProductPaymentMode" />
|
||||||
|
<description>
|
||||||
|
Returns a payment mode where the user pays as they go (e.g. monthly for 3 months).
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="pay_up_front" qualifiers="static">
|
||||||
|
<return type="StoreProductPaymentMode" />
|
||||||
|
<description>
|
||||||
|
Returns a payment mode where the user pays the entire amount up front.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
</methods>
|
||||||
|
<members>
|
||||||
|
<member name="localized_description" type="String" setter="" getter="get_localized_description" default="""">
|
||||||
|
The localized description of the payment mode.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="StoreProductPurchaseOption" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Represents an option that can be supplied when purchasing a [StoreProduct].
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
You create instances of this class and you can pass those to [method StoreKitManager.purchase_with_options].
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
</tutorials>
|
||||||
|
<methods>
|
||||||
|
<method name="app_account_token" qualifiers="static">
|
||||||
|
<return type="StoreProductPurchaseOption" />
|
||||||
|
<param index="0" name="stringUuidToken" type="String" />
|
||||||
|
<description>
|
||||||
|
Creates a purchase option with an app account token. This token should be a UUID string that associates the transaction with a user account on your service.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="introductory_offer_elligibility" qualifiers="static">
|
||||||
|
<return type="StoreProductPurchaseOption" />
|
||||||
|
<param index="0" name="jws" type="String" />
|
||||||
|
<description>
|
||||||
|
Creates a purchase option with a specific introductory offer eligibility. This requires the signed JWS string from the App Store.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="quantity" qualifiers="static">
|
||||||
|
<return type="StoreProductPurchaseOption" />
|
||||||
|
<param index="0" name="value" type="int" />
|
||||||
|
<description>
|
||||||
|
Creates a purchase option specifying the quantity of the product to purchase.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="simulate_ask_to_buy_in_sandbox" qualifiers="static">
|
||||||
|
<return type="StoreProductPurchaseOption" />
|
||||||
|
<param index="0" name="enabled" type="bool" />
|
||||||
|
<description>
|
||||||
|
Creates a purchase option to simulate the "Ask to Buy" flow in the sandbox environment.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="win_back_offer" qualifiers="static">
|
||||||
|
<return type="StoreProductPurchaseOption" />
|
||||||
|
<param index="0" name="offer" type="StoreProductSubscriptionOffer" />
|
||||||
|
<description>
|
||||||
|
Creates a purchase option for a win-back offer.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
</methods>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="StoreProductSubscriptionOffer" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Represents a subscription offer for a [StoreProduct].
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
You configure these in AppStore Connect. See [url=https://developer.apple.com/documentation/storekit/product/subscriptionoffer]Apple's documentation[/url] for additional information
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
</tutorials>
|
||||||
|
<constants>
|
||||||
|
<constant name="INTRODUCTORY" value="0" enum="OfferType">
|
||||||
|
An introductory offer for new subscribers.
|
||||||
|
</constant>
|
||||||
|
<constant name="PROMOTIONAL" value="1" enum="OfferType">
|
||||||
|
A promotional offer for existing or lapsed subscribers.
|
||||||
|
</constant>
|
||||||
|
<constant name="WIN_BACK" value="2" enum="OfferType">
|
||||||
|
A win-back offer for lapsed subscribers.
|
||||||
|
</constant>
|
||||||
|
<constant name="UNKNOWN" value="3" enum="OfferType">
|
||||||
|
An unknown offer type.
|
||||||
|
</constant>
|
||||||
|
</constants>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="StoreProductSubscriptionPeriod" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Values that represent the duration of time between subscription renewals.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
</tutorials>
|
||||||
|
<constants>
|
||||||
|
<constant name="DAY" value="0" enum="Unit">
|
||||||
|
A subscription period of one day.
|
||||||
|
</constant>
|
||||||
|
<constant name="MONTH" value="1" enum="Unit">
|
||||||
|
A subscription period of one month.
|
||||||
|
</constant>
|
||||||
|
<constant name="WEEK" value="2" enum="Unit">
|
||||||
|
A subscription period of one week.
|
||||||
|
</constant>
|
||||||
|
<constant name="YEAR" value="3" enum="Unit">
|
||||||
|
A subscription period of one year.
|
||||||
|
</constant>
|
||||||
|
</constants>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,49 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="StoreSubscriptionInfo" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Provides subscription group metadata and status queries.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
This class wraps StoreKit subscription information and exposes the subscription group metadata for a product.
|
||||||
|
Use the status methods to query the current subscription status for a product, subscription group, or transaction ID.
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
</tutorials>
|
||||||
|
<methods>
|
||||||
|
<method name="getStatus">
|
||||||
|
<return type="void" />
|
||||||
|
<param index="0" name="callback" type="Callable" />
|
||||||
|
<description>
|
||||||
|
Fetches the current status entries for this subscription. The callback receives a [code skip-lint]Array[StoreSubscriptionInfoStatus][/code] on success, or a [code skip-lint]String[/code] describing the error.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="status_for_group_id">
|
||||||
|
<return type="void" />
|
||||||
|
<param index="0" name="group_id" type="String" />
|
||||||
|
<param index="1" name="status" type="Callable" />
|
||||||
|
<description>
|
||||||
|
Fetches status entries for the subscription group identifier. The callback receives a [code skip-lint]Array[StoreSubscriptionInfoStatus][/code] on success, or a [code skip-lint]String[/code] describing the error.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
<method name="status_for_transaction">
|
||||||
|
<return type="void" />
|
||||||
|
<param index="0" name="transaction_id" type="int" />
|
||||||
|
<param index="1" name="status" type="Callable" />
|
||||||
|
<description>
|
||||||
|
Fetches the status entry for the provided transaction identifier. The callback receives a [code skip-lint]StoreSubscriptionInfoStatus[/code] when available, an empty [code skip-lint]Array[StoreSubscriptionInfoStatus][/code] when no status is found, or a [code skip-lint]String[/code] describing the error.
|
||||||
|
On macOS, this requires macOS 15.4 or newer; earlier versions perform no action.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
|
</methods>
|
||||||
|
<members>
|
||||||
|
<member name="group_display_name" type="String" setter="" getter="get_group_display_name" default="""">
|
||||||
|
The localized display name of the subscription group. Returns an empty string if unavailable.
|
||||||
|
</member>
|
||||||
|
<member name="group_level" type="int" setter="" getter="get_group_level" default="-1">
|
||||||
|
The subscription group level used for upgrade/downgrade ranking. Returns [code]-1[/code] when unavailable.
|
||||||
|
</member>
|
||||||
|
<member name="subscription_group_id" type="String" setter="" getter="get_subscription_group_id" default="""">
|
||||||
|
The subscription group identifier from App Store Connect. Returns an empty string if unavailable.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</class>
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<class name="StoreSubscriptionInfoRenewalInfo" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
|
||||||
|
<brief_description>
|
||||||
|
Contains verified renewal metadata for a subscription.
|
||||||
|
</brief_description>
|
||||||
|
<description>
|
||||||
|
This class wraps StoreKit renewal information and is only created from verified renewal data.
|
||||||
|
</description>
|
||||||
|
<tutorials>
|
||||||
|
</tutorials>
|
||||||
|
<members>
|
||||||
|
<member name="app_account_token" type="String" setter="" getter="get_app_account_token" default="""">
|
||||||
|
The app account token used when purchasing, as a UUID string. Returns an empty string when not set.
|
||||||
|
</member>
|
||||||
|
<member name="app_transaction_id" type="String" setter="" getter="get_app_transaction_id" default="""">
|
||||||
|
The app transaction identifier associated with the subscription. Returns an empty string when unavailable.
|
||||||
|
</member>
|
||||||
|
<member name="current_product_id" type="String" setter="" getter="get_current_product_id" default="""">
|
||||||
|
The current product identifier for the subscription group.
|
||||||
|
</member>
|
||||||
|
<member name="original_transaction_id" type="int" setter="" getter="get_original_transaction_id" default="0">
|
||||||
|
The original transaction identifier for the subscription. Returns [code]0[/code] when unavailable.
|
||||||
|
</member>
|
||||||
|
</members>
|
||||||
|
</class>
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue