Have a great day!
Maybe the current addon developers don't have free time to port the old addon.
Maybe they have a lot of work to do.
The only quick way to port quickly using automated tools.
If someone on the forum has a problem with the SDK V1
You can direct them here
If what they are looking for is not there, they can ask for it in a Reply post with the addon SDK v1 link.
Porting to Addon SDK v2 (Automatic)
This porting process is very fast, taking only seconds.
No monitoring, no testing.
Once the porting is complete, the result will be automatically pushed to: https://github.com/EMIINDO?tab=repositories
Not all Addon SDK V1s that are ported will be 100% successful or functional.
Success depends on how the original developer created it.
If it does not follow the standard documentation or The SDK API makes changes to the logic, it may fail.
Example 1
Combination of plugin and behavior instances in 1 addon, must make changes manually.
ProUI
Example 2
As drawingPlugin or
editorTextPlugin makes changes to the function logic, which must be handled manually, this porting will ignore the logic.
This automatic porting will not affect any function logic.
The porting logic only adjusts the necessary changes according to: porting-addon-sdk-v2
It is not possible for me to download each addon one by one to distinguish between SDK V1 and SDK V2.
So, if you have an issue, you need to provide the addon link for porting.
The tool is still under testing.
In about 1–2 weeks, the process of porting Behavior from SDK V1 to SDK V2 will begin.
SDK V2 plugin list
Check All: https://github.com/EMIINDO?tab=repositories
Below that require no changes to the singleGlobalPlugin logic, and domMessagingPlugin and customImporterPlugin
- advancedlog
- csv-array-c3-runtime
- qr-code
- touch-plus
- greengrinds
- bubbly-background
- remote-image
- forge-c3-runtimeworkers
- copyclip
- simple-virtual-keyboard-c3
- drag-drop-files
- console-screenlog-js-c3
- rexpause-c3runtime
- photon-engine-c3
- moment-js-c3-runtime
- discord-rich-presence
- jszip-c3-runtime
- text-editor
- cordova-screenlock-c3-runtime
- vs-code-plugin
- sse
- numeral-js-c3-runtime
- securedata-c3runtime
- showdownjs
- app-review
- app-tracking-idfa-aaid
- app-version
- audio-url
- bilibili-danmaku-helper
- cjs
- Fontanus_I18Next
- EMI_INDO_ConsentReset
- mcAutoTiling
- EMI_INDO_CheckInternetAccess
- Sparsha_CloudflareTrace
- Colyseus_SDK
- MohammadHadi_CordovaToast
- StraniAnelli_InjectCSS_v2
- EMI_INDO_Diagnostic
- intch_discordwebhook
- ValerypopoffEase
- Flikes_EasyVariable
- Sparsha_ErudaConsole
- MassiveCube_FacebookInstantExtended
- MassiveCube_DrawBackground
- EMI_INDO_AnalyticsBasic
- EMI_INDO_WebAuthentication
- EMI_INDO_WebAuthentication
- EMI_INDO_CloudFirestore
- EMI_INDO_WebCloudStorage
- EMI_INDO_Firebase_In_App_Messaging
- EMI_INDO_RemoteConfigBasic
- EMI_INDO_Crashlytics
- GameAnalytics
- GM_SDK
- Mikal_GameSparksMinimal
- AtheiosTeam_AtheiosModule
- c3IDE_GHTA_iziToast
- Mikal_GIFPlayer
- Mikal_GithubLink
- Globals
- PaulPlay_HideHomebutton
- EMI_INDO_plugin_android_imei
- EMI_INDO_in_app_update
- EMI_INDO_inappbrowser
- SmugRainbowPony_INK
Process porting SDK V1 to SDK v2
Creating a c3addon file
This is not duplicate documentation, but from some of the porting test results there are errors in the browser, finding error lines from the v1 SDK, which may be able to be fixed manually as below.
GetAssetManager
sdk v1 error
await this.GetRuntime().GetAssetManager().LoadProjectFileUrl(nameFile);
sdk v2 fix
await this.runtime.assets.getProjectFileUrl(nameFile);
Changes in Naming Conventions
// SDK v1
let myinstance = this._inst.GetWorldInfo();
myinstance.SetXY(x, y);
// SDK v2
// Access the position property directly or use the methods provided
this.x = x;
this.y = y;
this.setBboxChanged();
Access Object Information
// SDK v1
const imageInfo = this._objectClass.GetImageInfo();
const texture = imageInfo.GetTexture();
// SDK v2
const imageInfo = this.objectType.getImageInfo();
const texture = imageInfo.getTexture(renderer);
// SDK v1
renderer.SetTexture(texture);
renderer.Quad3(quad, rcTex);
// SDK v2
renderer.setTexture(texture);
renderer.quad3(quad, rcTex);
// SDK v1
if (this._runtime.IsPixelRoundingEnabled())
{
// offset calculation
}
// SDK v2
if (this.runtime.isPixelRoundingEnabled)
{
// offset calculation
}
Quad Bounding Processing Adjustment
// SDK v1
const wi = this.GetWorldInfo();
const quad = wi.GetBoundingQuad();
// ... offset calculation
tempQuad.copy(quad);
tempQuad.offset(ox, oy);
renderer.Quad3(tempQuad, rcTex);
// SDK v2
let quad = this.getBoundingQuad();
// ... offset calculation
if (ox !== 0 && oy !== 0)
{
quad = new DOMQuad(
new DOMPoint(quad.p1.x + ox, quad.p1.y + oy),
new DOMPoint(quad.p2.x + ox, quad.p2.y + oy),
new DOMPoint(quad.p3.x + ox, quad.p3.y + oy),
new DOMPoint(quad.p4.x + ox, quad.p4.y + oy)
);
}
renderer.quad3(quad, rcTex);